1.模具领料出库单和模具领料退库单添加选择模具功能
2.模具领料退库领料人默认取用户绑定职员,往来单位等可以存入缓存信息
3.模具可以扫多个模具,有模具列表的功能
4.模具退库新增列表新增修改
5个文件已修改
1758 ■■■■■ 已修改文件
components/BillListPopup/BillListPopup.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/ZLGL/BadReasonPopup.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/mujulingliaochukudan/MouldProdOutBill.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/mujulingliaotuikudan/Sc_MouldProdBackBill.vue 1636 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/common.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/BillListPopup/BillListPopup.vue
@@ -25,31 +25,35 @@
                    <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['物料名称']"
                            :extra="`数量: ${bill['数量']}`" @tap="clickCard(bill['HSourceInterID'], bill['单据号'], index, bill['HSourceEntryID'])">
                            <view class="item">
                                <view class="left">单据号: </view>
                                <view class="right">{{bill['单据号']}}</view>
                            :extra="`数量: ${bill['数量']}`"
                            @tap="clickCard(bill['HSourceInterID'], bill['单据号'], index, bill['HSourceEntryID'])">
                            <view class="item" v-for="(field, index) in HFieldList" :key="index">
                                <view class="left">{{ field.ColmCols}}: </view>
                                <view class="right" v-if="field.ColmType == 'DateTime'">{{
                                    dayjs(bill[field.ColmCols]).format("YYYY-MM-DD")
                                }}</view>
                                <view class="right" v-else>{{bill[field.ColmCols]}}</view>
                            </view>
                            <view class="item">
                            <!-- <view class="item">
                                <view class="left">物料代码: </view>
                                <view class="right">{{bill['物料代码']}}</view>
                            </view>
                            </view> -->
                            <!-- <view class="item">
                                <view class="left">物料名称: </view>
                                <view class="right">{{}}</view>
                            </view> -->
                            <view class="item">
                            <!-- <view class="item">
                                <view class="left">规格型号: </view>
                                <view class="right">{{bill['规格型号']}}</view>
                            </view>
                            <view class="item" v-if="bill['生产任务单号']">
                            </view> -->
                            <!-- <view class="item" v-if="bill['生产任务单号']">
                                <view class="left">生产订单号: </view>
                                <view class="right">{{bill['生产任务单号']}}</view>
                            </view>
                            <view class="item" v-if="bill['款号']">
                            </view> -->
                            <!-- <view class="item" v-if="bill['款号']">
                                <view class="left">款号: </view>
                                <view class="right">{{bill['款号']}}</view>
                            </view>
                            </view> -->
                        </uni-card>
                    </view>
                    <view class="over" v-show="HBillList.length == 0">暂无数据</view>
@@ -66,10 +70,12 @@
    import {
        CommonUtils
    } from '../../utils/common';
    import dayjs from 'dayjs';
    export default {
        name: "BillListPopup",
        data() {
            return {
                dayjs,
                enablefocus: false,
                size: 20,
                curPage: 1,
@@ -79,6 +85,7 @@
                HMater: '',
                HCustom: '',
                HBillList: [],
                HFieldList: [], // 表单对应字段
                panelHeight: 0,
                multiSouceBillList: []
@@ -101,7 +108,7 @@
                type: Boolean,
                default: false,
                required: false
            }
            },
        },
        model: {
            prop: "HSourceBill",
@@ -152,9 +159,9 @@
                        enableMultiSourceBill: this.MultiSourceBill,
                        HEntryID: entryid || 0
                    })
                    // 父子组件之间传递数据
                    this.$emit("BillSelectComplete",  {
                    this.$emit("BillSelectComplete", {
                        HInterID: interid,
                        HBillNo: billno,
                        enableMultiSourceBill: this.MultiSourceBill,
@@ -188,7 +195,7 @@
                        // 如果对应单据传入的是否激活数是false,则计数器-1
                        this.multiSouceBillList[index]['count']--;
                    }
                    if(this.multiSouceBillList[index]['count'] == 0){
                    if (this.multiSouceBillList[index]['count'] == 0) {
                        // 没有选中的单据,则移除缓存中的数据
                        this.multiSouceBillList.splice(index, 1)
                    }
@@ -200,12 +207,12 @@
                this.length = 0
                this.page = 0
                this.curPage = 1
                console.log("1",this.HBillType)
                console.log("2",this.HSourceBillType)
                console.log("3",this.HStockOrgID)
                console.log("4",this.HSourceBillNo)
                console.log("5",this.HMater)
                console.log("6",this.HCustom)
                console.log("1", this.HBillType)
                console.log("2", this.HSourceBillType)
                console.log("3", this.HStockOrgID)
                console.log("4", this.HSourceBillNo)
                console.log("5", this.HMater)
                console.log("6", this.HCustom)
                CommonUtils.doRequest(
                    "/WEBSController/GetSourceBillList_Json", {
                        HBilltype: this.HBillType,
@@ -219,11 +226,27 @@
                        let {
                            data,
                            count,
                            Message
                            Message,
                            list
                        } = res.data
                        if (count == 1) {
                            this.length = Array.from(data).length
                            const result = [];
                            let fieldList = CommonUtils.fieldListFilterRole({
                                ExcludeKeys: ['物料名称', '数量'],
                                FieldList: list
                            })
                            if (fieldList.status == false) {
                                CommonUtils.showTips({
                                    title: '温馨提示',
                                    message: `获取表单结构失败: ${fieldList.Message}`
                                })
                            }
                            this.HFieldList = fieldList.data
                            for (let i = 0; i < data.length; i += this.size) {
                                result.push(data.slice(i, i + this.size));
                            }
components/ZLGL/BadReasonPopup.vue
@@ -17,7 +17,7 @@
                </view>
                <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
                    <view class="card-item" v-show="HBillList.length != 0">
                        <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
                        <uni-card
                            v-for="(bill, index) in HBillList[curPage-1]" :key="index" @tap="clickCard(bill, index)">
                                <view class="card-detail" v-for="(HBillField, index) in emptyValueFilter(bill,HBillFieldsList).slice(0,10)" :key="index">
                                    <template v-if="HBillField.ColmType == 'DateTime'"><text>{{ HBillField.ColmCols }}:</text>{{  bill[HBillField.ColmCols] ? dayjs(bill[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }} </template>    
pages/MJGL/mujulingliaochukudan/MouldProdOutBill.vue
@@ -10,6 +10,15 @@
                    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" @click="searchModule">
                <view class="title">器具</view>
                <view class="righton" style="width: 350rpx;">
                    <input  placeholder="请选择器具" />
                </view>
                <uni-icons type="search"
                    style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                    size="20" ></uni-icons>
            </view>
            <view class="form-item">
                <view class="title">仓库:</view>
                <view class="right">
@@ -171,6 +180,7 @@
        </view>    
        <BillListPopupVue ref="billList" :HBillType="hform.HBillType" :HSourceBillType="hform.HMainSourceBillType"
            :HStockOrgID="hform.HStockOrgID"></BillListPopupVue>
        <BillListPopupMouldVue @BillSelectComplete="MouldBillHandler" ref="billListMould"></BillListPopupMouldVue>
    </view>
</template>
 
@@ -181,6 +191,7 @@
    } from "@/utils/auth.js";
    import { CommonUtils } from '@/utils/common';
    import BillListPopupVue from '../../../components/BillListPopup/BillListPopup.vue';
    import BillListPopupMouldVue from '../../../components/BillListPopup/BillListPopup_Mould.vue';
    export default {
        data() {
            return {
@@ -254,9 +265,21 @@
            }
        },
        components: {
            BillListPopupVue
            BillListPopupVue,
            BillListPopupMouldVue
        },
        methods: {
            searchModule() {
                this.$refs['billListMould'].showPopup()
            },
            MouldBillHandler(mould) {
                if(!mould.enableMultiSourceBill){
                    let val = mould.val[0]
                    this.hform.HBarCode = val['条码编号']
                    this.getCode(this.hform.HBarCode)
                }
                this.$refs['billListMould'].exit()
            },
            HSupNameChange(e) {
                let index = this.arrayHSelectType.findIndex(el => el == e)
                let HSupInfo = this.HSelectTypeList[index]
@@ -1089,6 +1112,7 @@
                this.getHEmpList()
                this.getHDeptList()
                this.getHSupList()
                setTimeout(() => {
                  this.HSelectTypeChange(this.hform.TypeName)
                  //初始化往来单位
@@ -1198,10 +1222,13 @@
        }
 
        .righton {
            width: 450rpx;
            // width: 450rpx;
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
            position: relative;
            display: flex;
        }
 
        input {
pages/MJGL/mujulingliaotuikudan/Sc_MouldProdBackBill.vue
@@ -1,73 +1,142 @@
<template>
    <view>
        <view class="form">
            <view class="form-item">
                <view class="title">条码</view>
                <view class="right" style="width: 350rpx;">
                    <input v-model="hform.HBarCode" placeholder="请扫描(或输入)条码" @confirm="getCode(hform.HBarCode)" @blur="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="toScanCode"></uni-icons>
            </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="showHStockPlaceName">
                    <uni-combox :candidates="arrayHStockPlaceName" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"></uni-combox>
                </view>
                <view class="righton" v-show="!showHStockPlaceName">
                    <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName"
                        placeholder="不可操作" /></view>
            </view>
            <view class="form-item">
                <view class="title">发料:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHEmpName" placeholder="请输入(或扫描)发料人" v-model="hform.HSactterUser"
                        @input="HScatterUserChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">领料:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHEmpName" placeholder="请输入(或扫描)领料人" v-model="hform.HCollectUser"
                        @input="HCollectUserChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">部门:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHDeptName" placeholder="请选择部门" v-model="hform.HDeptName"
                        @input="HDeptNameChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">往来类型:</view>
                <view class="right">
                    <uni-combox :candidates="['供应商','客户','部门']" placeholder="请选择类型" v-model="hform.TypeName"
                        @input="HSelectTypeChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">往来单位:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHSelectType" placeholder="请选择" v-model="hform.Selection"
                        @input=""></uni-combox>
                </view>
            </view>
            <view class="tabs">
                <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">表头信息</view>
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">模具信息</view>
            </view>
            <view v-if="tabs == 0">
                <view class="form-item">
    <view>
        <view class="form">
            <view class="form-item">
                <view class="title">条码</view>
                <view class="right" style="width: 350rpx;">
                    <input v-model="hform.HBarCode" placeholder="请扫描(或输入)条码" @confirm="getCode(hform.HBarCode)"
                        @blur="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="toScanCode"></uni-icons>
            </view>
            <view class="form-item" @click="searchModule">
                <view class="title">器具</view>
                <view class="righton" style="width: 350rpx;">
                    <input placeholder="请选择器具" />
                </view>
                <uni-icons type="search"
                    style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                    size="20"></uni-icons>
            </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="showHStockPlaceName">
                    <uni-combox :candidates="arrayHStockPlaceName" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"></uni-combox>
                </view>
                <view class="righton" v-show="!showHStockPlaceName">
                    <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                </view>
            </view>
            <view class="form-item">
                <view class="title">发料:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHEmpName" placeholder="请输入(或扫描)发料人" v-model="hform.HKeeperName"
                        @input="HScatterUserChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">领料:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHEmpName" placeholder="请输入(或扫描)领料人" v-model="hform.HSecManagerName"
                        @input="HCollectUserChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">部门:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHDeptName" placeholder="请选择部门" v-model="hform.HDeptName"
                        @input="HDeptNameChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">往来类型:</view>
                <view class="right">
                    <uni-combox :candidates="['供应商','客户','部门']" placeholder="请选择类型" v-model="hform.TypeName"
                        @input="HSelectTypeChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">往来单位:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHSelectType" placeholder="请选择" v-model="hform.HSupName"
                        @input="HSupNameChange"></uni-combox>
                </view>
            </view>
            <view class="tabs">
                <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">表头信息</view>
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">模具信息</view>
            </view>
            <view v-if="tabs == 0">
                <view class="form-item">
                    <view class="title">日期:</view>
                    <view class="right">
                        <picker mode="date" v-model="hform.HDate" @change="HDateChange">
                            <view class="picker-overlay"></view>
                            <input disabled v-model="hform.HDate" placeholder="请选择日期" />
                        </picker>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">源单类型:</view>
                    <view class="right" v-show="showHMainSourceBillType">
                        <picker :range="arrayHMainSourceBillType" v-model="HMainSourceBillType"
                            @change="HMainSourceBillTypeChange">
                            <input name="HMainSourceBillType" disabled v-model="HMainSourceBillType"
                                placeholder="请选择源单类型" />
                            <view class="picker-overlay"></view>
                        </picker>
                    </view>
                    <view class="righton" v-show="!showHMainSourceBillType">
                        <input name="HMainSourceBillType" disabled v-model="HMainSourceBillType"
                            placeholder="请选择源单类型" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">源单单号:</view>
                    <view class="right" v-show="showHSourceBillNo">
                        <!-- <uni-combox v-if="reHSourceBillNo" :candidates="arrayHSourceBillNo" placeholder="请输入源单单号"
                            v-model="hform.HSourceBillNo" @input="HSourceBillNoChange"></uni-combox> -->
                        <input :focus="HSourceBillNoFocus" type="text" name="HSourceBillNo"
                            v-model="hform.HSourceBillNo" @confirm="onSourceBillBlurHandler" placeholder="请输入源单单号" />
                    </view>
                    <view class="icon-wrapper" v-show="showHSourceBillNo" :disabled="hform.HMainSourceBillType === -1">
                        <uni-icons type="search" size="20" @click="showBillList"></uni-icons>
                    </view>
                    <view class="righton" v-show="!showHSourceBillNo">
                        <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
                    </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="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="right">
                        <picker mode="date" v-model="hform.HDate" @change="HDateChange">
@@ -93,654 +162,792 @@
                    <view class="righton">
                        <input name="HInterID" disabled v-model="hform.HInterID" />
                    </view>
                </view>
            </view>
            <view v-if="tabs==1">
                <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.HMouldName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具号:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMouldID_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">数量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMouldCount_B" />
                    </view>
                </view>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
            </view>
        </view>
    </view>
                </view> -->
            </view>
            <view v-if="tabs==1">
                <view class="list" v-for="(item,index) in HMouldList" :key="index">
                    <uni-card :title="item.器具名称" style="margin: 10px;" @tap="delMater(item, $event)">
                        <!-- 器具代码作为可点击链接 -->
                        <view class="card-header">
                            <text class="link-text">器具号:{{item.器具号}}</text>
                        </view>
                        <view class="card-detail">
                            <view class="detail">
                                <text>数量:</text>{{item.数量}}
                            </view>
                            <view class="detail">
                                <text>器具条码:</text>{{item.器具条码}}
                            </view>
                        </view>
                    </uni-card>
                </view>
                <view class="over" v-if="HMouldList.length == 0">暂无数据</view>
                <!-- <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.HMouldName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具号:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMouldID_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">数量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMouldCount_B" />
                    </view>
                </view> -->
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
            </view>
        </view>
        <BillListPopupVue ref="billList" :HBillType="hform.HBillType" :HSourceBillType="hform.HMainSourceBillType"
            :HStockOrgID="hform.HStockOrgID"></BillListPopupVue>
        <BillListPopupMouldVue @BillSelectComplete="MouldBillHandler" ref="billListMould"></BillListPopupMouldVue>
    </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',
                tabs: 0,
                arrayHEmpName: [],
                HEmpNameList: [],
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                arrayHDeptName: [], //部门
                HDeptNameList: [],
                arrayHSupName: [], //客户
                HSupNameList: [],
                arrayHSupplierName:[],//供应商
                HSuplierList:[],
                linterid: '',
                HBillNo: '',
                arrayHSelectType: [], // 往来单位下拉列表
                HSelectTypeList: [], // 往来单位完整数据列表
                showHStockPlaceName: true,
                HMouldList:[],
                hform: {
                    HBarCode: '',
                    HInterID: '',
                    HBillType: 3802,
                    HWHName: getUserInfo().HWHName,
                    HWHID: getUserInfo().HWhID,
                    HStockPlaceName: getUserInfo().HSPName,
                    HStockPlaceID: getUserInfo().HSPID,
                    HSactterUserName: getUserInfo().User,
                    HSactterUserID: getUserInfo().User,
                    HCollectUserName: getUserInfo().User,
                    HCollectUserID: getUserInfo().User,
                    HDeptName: getUserInfo().HDept,
                    HDeptID: getUserInfo().HDeptID,
                    HSupName:'',
                    HSupID:'',
                    HSecManagerID:'',
                    HKeeperID:'',
                    //往来类型
                    TypeName:'',
                    TypeID:'',
                    Selection: '', // 往来单位选中的值
                    SelectionID: '' ,// 往来单位对应的ID
                    HSupTypeID:'',
                    HDate: getDateTime.dateTimeStr('y-m-d'),
                    HMaker: uni.getStorageSync('HUserName'),
                    HRedBlueFlag:'false',
                    HStockOrgName: uni.getStorageSync('Organization'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                    HStockOutOrgID:uni.getStorageSync('OrganizationID'),
                    HBarCode_B:'',
                    HMouldName_B:'',
                    HMouldID_B:'',
                    HMouldCount_B:''
                }
            }
        },
        methods: {
            //扫码
            toScanCode() {
                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
                    }
    import getDateTime from '@/utils/getdateTime.js';
    import {
        getUserInfo
    } from "@/utils/auth.js";
    import {
        CommonUtils
    } from '@/utils/common';
    import BillListPopupVue from '../../../components/BillListPopup/BillListPopup.vue';
    import BillListPopupMouldVue from '../../../components/BillListPopup/BillListPopup_Mould.vue';
                    this.getCode(this.hform.HBarCode)
                })
            },
            getNewData() {
                CommonUtils.doRequest("/WEBSController/GetMaxBillNoAndID_Json", {
                        HBillType: this.hform.HBillType
                    },
                    (res) => {
                        let res1 = res.data;
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.hform.HInterID = data[0].HInterID
                            this.hform.HBillNo = data[0].HBillNo
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    })
            },
            getCode(HBarCode) {
                //仓库、仓位文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                var sHWHID = this.hform.HWHID
                var sHSPID = this.hform.HStockPlaceID
                var sOldBarCode = HBarCode;
                var HDeleteFlag = sOldBarCode.substring(0, 1); //取条码第一个字符
                var sBarCode = sOldBarCode.slice(1); //获取第一个字符以外的全部字符
                var sSourceBillNo =""
                var sSourceBillType ="-1"
                if (HDeleteFlag == '*') {
                    if (sBarCode == "") {
                        uni.showToast({
                            title: '请输入要删除的条码',
                            icon: 'none'
                        });
                    } else {
                        uni.request({
                            url: this.serverUrl + '/MouldController/set_DelMouldStockBillMain_Temp_Json',
                            data: {
                                HInterID: this.hform.HInterID,
                                HBillType: this.hform.HBillType,
                                HBarCode: sBarCode
                            },
                            success: (res) => {
                                console.log('删除条码', res.data);
                                this.hform.HBarCode = '';
                                if (res.data.count == 1) {
                                    this.hform.HQty = ''
                                } else {
                                    uni.showToast({
                                        title: res.data.Message,
                                        icon: 'none'
                                    })
                                }
                            },
                            fail: (res) => {
                                console.log(res);
                                uni.showToast({
                                    title: '接口请求失败',
                                    icon: 'none'
                                })
                            },
                        });
                    }
                }else
                {
                    var sBarCode = this.hform.HBarCode
                    uni.request({
                        url: this.serverUrl + '/MouldController/Get_CheckTypeByMouldBarCode_Json',
                        data:{
                            sBarCode: sBarCode,
                            HInterID: this.hform.HInterID,
                            HBillType: this.hform.HBillType,
                            HBillNo: this.hform.HBillNo,
                            HMaker: this.hform.HMaker,
                            HWhID: sHWHID,
                            HSPID: sHSPID,
                            HSCWhID:0,
                            HSCSPID: 0,
                            HRedBlueFlag: this.hform.HRedBlueFlag,
                            HSourceBillNo: sSourceBillNo,
                            HSourceBillType: sSourceBillType,
                            HStockOrgID: this.hform.HStockOrgID,
                            HStockOutOrgID: this.hform.HStockOutOrgID,
                        },
                        success:(res)=> {
                            console.log('检查扫码返回的数据', res.data);
                            this.hform.HBarCode=''
                            if(res.data.count==1){
                                this.tabs = 1
                                this.DisBillEntryList()
                            }
                            else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        },
                        fail: (res) => {
                            console.log(res);
                            uni.showToast({
                                title: '接口请求失败',
                                icon: 'none'
                            })
                        },
                    })
                }
            },
            //仓库监听事件
            HWHNameChange(e) {
                for (var i = 0; i < this.HWHNameList.length; i++) {
                    if (this.HWHNameList[i]["HName"] == e) {
                        this.hform.HWHName = this.HWHNameList[i]["HName"]
                        this.hform.HWHID = this.HWHNameList[i].HItemID
    export default {
        components: {
            BillListPopupVue,
            BillListPopupMouldVue
        },
        data() {
            return {
                HSourceBillNoFocus: false,
                barCodeFocus: true, //条码光标
                userInfo: getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                tabs: 0,
                arrayHEmpName: [],
                HEmpNameList: [],
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                arrayHDeptName: [], //部门
                HDeptNameList: [],
                arrayHCusName: [],
                HCusNameList: [],
                arrayHSupName: [], //客户
                HSupNameList: [],
                arrayHSupplierName: [], //供应商
                HSuplierList: [],
                linterid: '',
                HBillNo: '',
                arrayHSelectType: [], // 往来单位下拉列表
                HSelectTypeList: [], // 往来单位完整数据列表
                showHStockPlaceName: true,
                HMouldList: [],
                isEdit: false,
                        this.showHStockPlaceName = this.HWHNameList[i].HIsStockMgr
                    }
                }
            },
            HStockPlaceNameChange(e) {
                for (var i = 0; i < this.HStockPlaceNameList.length; i++) {
                    if (this.HStockPlaceNameList[i]["HWhName"] == e) {
                        this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID
                        this.hform.HStockPlaceName = this.HStockPlaceNameList[i]["HWhName"]
                    }
                }
            },
            HScatterUserChange(e) {
                for (var i = 0; i < this.HEmpNameList.length; i++) {
                    if (this.HEmpNameList[i].HName == e) {
                        this.hform.HSactterUserID = this.HEmpNameList[i].HItemID
                        this.hform.HSactterUserName = this.HEmpNameList[i].HName
                        this.hform.HSecManagerID = this.HEmpNameList[i].HItemID
                    }
                }
            },
            HCollectUserChange(e) {
                for (var i = 0; i < this.HEmpNameList.length; i++) {
                    if (this.HEmpNameList[i].HName == e) {
                        this.hform.HCollectUserID = this.HEmpNameList[i].HItemID
                        this.hform.HCollectUserName = this.HEmpNameList[i].HName
                        this.hform.HKeeperID = this.HEmpNameList[i].HItemID
                    }
                }
            },
            /* #region 仓库仓位获取下拉框 */
            getHBaseList() {
                CommonUtils.doRequest(
                    "/Web/GetWarehouseList_Json_New", {
                        Warehouse: "",
                        HOrgID: uni.getStorageSync('OrganizationID')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HWHNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHWHName[i] = data[i]["HName"]
                            }
                        } else {
                            uni.showToast({
                                title: '仓库数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
                CommonUtils.doRequest(
                    "/WEBSController/GetStockPlaceList_Json", {
                        StockPlace: '',
                        HWhID: this.hform.HWHID,
                        HStockOrgID: uni.getStorageSync('OrganizationID')
                    },
                    (res) => {
                        let res1 = res.data
                        console.log(res1)
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HStockPlaceNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHStockPlaceName[i] = data[i]["HWhName"]
                            }
                        } else {
                            uni.showToast({
                                title: '仓位数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
            },
            /* #endregion */
            getHEmpList() {
                CommonUtils.doRequest("/Web/GetEmployeeList_Json", {
                        Employee: '',
                        HGroupID: 0
                    },
                    (res) => {
                        if (res.data.count == 1) {
                            this.HEmpNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHEmpName[i] = res.data.data[i].HName
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: '人员数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
            },
            //获取使用部门数据
            getHDeptList() {
                uni.request({
                    url: this.serverUrl + '/Gy_Department/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HDeptNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHDeptName[i] = res.data.data[i].部门名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: '部门数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            getHSupList() {
                CommonUtils.doRequest(
                    "/Gy_Customer/list", {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HSupNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHSupName[i] = data[i].客户名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    }
                )
            },
            getSupplier()
            {
                CommonUtils.doRequest(
                    "/WEBSController/GetSupplier_Json", {
                        HBarCode: uni.getStorageSync(''),
                        Organization: uni.getStorageSync('Organization')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HSupNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHSupName[i] = data[i].客户名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    }
                )
            },
            //选择使用部门
            HDeptNameChange(e) {
                for (var i = 0; i < this.HDeptNameList.length; i++) {
                    if (this.HDeptNameList[i].部门名称 == e) {
                        this.hform.HDeptID = this.HDeptNameList[i].HItemID
                        this.hform.HDeptName = this.HDeptNameList[i].部门名称
                    }
                }
            },
            //选择客户
            HSupNameChange(e) {
                for (var i = 0; i < this.HSupNameList.length; i++) {
                    if (this.HSupNameList[i].客户名称 == e) {
                        this.hform.HSupID = this.HSupNameList[i].HItemID
                        this.hform.HSupName = this.HSupNameList[i].客户名称
                    }
                }
            },
            HDateChange(e) {
                console.log(e.detail.value)
                this.hform.HDate = e.detail.value
            },
            HSelectTypeChange(e)
            {
                this.hform.TypeName=e;
                this.hform.Selection = ''; // 清空往来单位选择
                this.hform.SelectionID = '';
                if(e=='部门')
                {
                    this.hform.HSupTypeID=3;
                    this.arrayHSelectType = this.arrayHDeptName;
                    this.HSelectTypeList = this.HDeptNameList;
                }
                else if(e === '供应商') {
                    this.hform.HSupTypeID=1;
                    this.arrayHSelectType = [];
                    this.HSelectTypeList = [];
                } else if(e === '客户') {
                    this.hform.HSupTypeID=2;
                    this.arrayHSelectType =this.arrayHSupName;
                    this.HSelectTypeList = this.HSupNameList;
                } else {
                    this.arrayHSelectType = [];
                    this.HSelectTypeList = [];
                }
            },
            //器具信息
            DisBillEntryList() {
                CommonUtils.doRequest(
                    "/MouldController/GetMouldBillEntryTmpList_Json", {
                        HInterID: this.hform.HInterID,
                        HBillNo: this.hform.HBillNo,
                        HBillType: this.hform.HBillType
                    },
                    (res) => {
                        console.log('器具', res.data)
                        var data = res.data.data
                        this.HMouldList = data.HMouldList
                        if (data.count==0) {
                            this.hform.HMouldCount_B = ''
                            this.hform.HMouldID_B = ''
                            this.hform.HMouldName_B = ''
                        } else {
                            this.hform.HMouldCount_B = data[0].HQty
                            this.hform.HMouldID_B = data[0].HMouldID
                            this.hform.HMouldName_B = data[0].HMouldName
                            this.hform.HBarCode_B=data[0].HBarCode
                        }
                    },
                )
            },
            goBack() {
                uni.showModal({
                    title: '提示',
                    content: '确认要退出当前页面吗?',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.redirectTo({
                                url: '/pages/MJGL/mujulingliaochukudan/MouldProdOutBillList'
                            })
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
            submit() {
                //仓库、仓位、保管、验收、部门、供应商文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                if (!this.hform.HSactterUserName) {
                    this.hform.HSactterUserID = 0
                }
                else
                {
                    this.HSecManagerID=this.hform.HSactterUserID
                }
                if (!this.hform.HCollectUserName) {
                    this.hform.HCollectUserID = 0
                }
                else
                {
                    this.HKeeperID=this.hform.HCollectUserID
                }
                if (!this.hform.HDeptName) {
                    this.hform.HDeptID = 0
                }
                if (!this.hform.HSupName) {
                    this.hform.HSupID = 0
                }
                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.hform.HMouldID_B == 0||this.hform.HMouldID_B ==null) {
                        uni.showToast({
                            title: '没有扫描器具条码,请先扫描器具条码,确认无误后再提交!',
                            icon: 'none'
                        })
                    } else {
                        uni.showLoading({
                            title: '请稍候'
                        })
                        let sMainStr = JSON.stringify(this.hform);
                        console.log("主表:" + sMainStr)
                        CommonUtils.doRequest(
                            '/MouldController/set_SaveMouldProdBackBill_Json', {
                                oMain: sMainStr
                            },
                            (res) => {
                                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/caigouruku/POStockInBill?OperationType=1'
                                                })
                                            } else if (res.cancel) {
                                                console.log('用户点击取消');
                                                setTimeout(() => {
                                                    uni.navigateBack();
                                                }, 50)
                                            }
                                        }
                                    });
                                } else {
                                    // uni.showToast({
                                    //     title: res.data.Message,
                                    //     icon: 'none'
                                    // })
                                    uni.showModal({
                                        content: res.data.Message,
                                        showCancel: false,
                                        complete() {
                                            uni.hideLoading()
                                        }
                                    })
                                }
                            },
                            null,
                            "POST"
                        )
                    }
                }
            },
            onLoad(e) {
                console.log(e, this.userInfo)
                if (e.HInterID) {
                    // this.HInterID_Temp = e.HInterID
                    // this.btnType = 1
                    this.RoadBillMain(e.HInterID)
                } else {
                    this.getNewData()
                }
                this.getHBaseList()
                this.getHSupList()
                this.getHEmpList()
                this.getHDeptList()
                //this.getHEmpList()
            }
        }
    }
                showHMainSourceBillType: true,
                showHSourceBillNo: true,
                HMainSourceBillType: uni.getStorageSync('billTypeName_3803') ? uni.getStorageSync('billTypeName_3803') :
                    '手工录入',
                arrayHMainSourceBillType: ['手工录入'],
                arrayHMainSourceBillValue: ['-1'],
                hform: {
                    HBarCode: '',
                    HInterID: '',
                    HBillType: 3803,
                    HWHName: getUserInfo().HWHName,
                    HWHID: getUserInfo().HWhID,
                    HStockPlaceName: getUserInfo().HSPName,
                    HStockPlaceID: getUserInfo().HSPID,
                    HSactterUserName: getUserInfo().User,
                    HSactterUserID: getUserInfo().User,
                    HCollectUserName: getUserInfo().HEmpName,
                    HCollectUserID: getUserInfo().HEmpID,
                    HDeptName: getUserInfo().HDept,
                    HDeptID: getUserInfo().HDeptID,
                    HSupName: '',
                    HSupID: '',
                    HSecManagerID: getUserInfo().HEmpID,
                    HSecManagerName:  getUserInfo().HEmpName,
                    HKeeperID: 0,
                    HKeeperName: '',
                    //源单信息
                    HMainSourceBillType: uni.getStorageSync('billType_3803') ? uni.getStorageSync('billType_3803') :
                        3849,
                    HSourceBillNo: '', //CGDD000200
                    //往来类型
                    TypeName: uni.getStorageSync('typeName_3803'),
                    HSupName: '', // 往来单位选中的值
                    HSupID: '', // 往来单位对应的ID
                    HSupTypeID: uni.getStorageSync('typeID_3803') ? uni.getStorageSync('typeID_3803') : 0,
                    HDate: getDateTime.dateTimeStr('y-m-d'),
                    HMaker: uni.getStorageSync('HUserName'),
                    HRedBlueFlag: 'false',
                    HStockOrgName: uni.getStorageSync('Organization'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                    HStockOutOrgID: uni.getStorageSync('OrganizationID'),
                    HBarCode_B: '',
                    HMouldName_B: '',
                    HMouldID_B: '',
                    HMouldCount_B: ''
                }
            }
        },
        methods: {
            searchModule() {
                this.$refs['billListMould'].showPopup()
            },
            MouldBillHandler(mould) {
                if (!mould.enableMultiSourceBill) {
                    let val = mould.val[0]
                    this.hform.HBarCode = val['条码编号']
                    this.getCode(this.hform.HBarCode)
                }
                this.$refs['billListMould'].exit()
            },
            HSupNameChange(e) {
                let index = this.arrayHSelectType.findIndex(el => el == e)
                let HSupInfo = this.HSelectTypeList[index]
                console.log('HSupInfo: ', HSupInfo);
                this.hform.HSupID = HSupInfo.HItemID
                this.hform.HSupName = HSupInfo['部门名称'] || HSupInfo['客户名称'] || HSupInfo['供应商名称']
                const pages = getCurrentPages()
                // 获取页面栈中的最后一个元素,也就是当前显示的页面
                const currentPage = pages[pages.length - 1]
                // 选择源单类型后 缓存当前页面选择
                uni.setStorageSync(`${currentPage.route.split("/").pop()}_${this.hform.HBillType}`, {
                    HSupName: HSupInfo['部门名称'] || HSupInfo['客户名称'] || HSupInfo['供应商名称'],
                    HSupID: HSupInfo.HItemID
                })
            },
            loadCache() {
                const pages = getCurrentPages()
                // 获取页面栈中的最后一个元素,也就是当前显示的页面
                const currentPage = pages[pages.length - 1]
                // 选择源单类型后 缓存当前页面选择
                let cache = uni.getStorageSync(`${currentPage.route.split("/").pop()}_${this.hform.HBillType}`)
                this.hform.HSupID = cache.HSupID
                this.hform.HSupName = cache.HSupName
            },
            //扫码
            toScanCode() {
                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.getCode(this.hform.HBarCode)
                })
            },
            getNewData() {
                CommonUtils.doRequest("/WEBSController/GetMaxBillNoAndID_Json", {
                        HBillType: this.hform.HBillType
                    },
                    (res) => {
                        let res1 = res.data;
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.hform.HInterID = data[0].HInterID
                            this.hform.HBillNo = data[0].HBillNo
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    })
            },
            getCode(HBarCode) {
                //仓库、仓位文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                var sHWHID = this.hform.HWHID
                var sHSPID = this.hform.HStockPlaceID
                var sOldBarCode = HBarCode;
                var HDeleteFlag = sOldBarCode.substring(0, 1); //取条码第一个字符
                var sBarCode = sOldBarCode.slice(1); //获取第一个字符以外的全部字符
                var sSourceBillNo = ""
                var sSourceBillType = "-1"
                if (HDeleteFlag == '*') {
                    if (sBarCode == "") {
                        uni.showToast({
                            title: '请输入要删除的条码',
                            icon: 'none'
                        });
                    } else {
                        uni.request({
                            url: this.serverUrl + '/MouldController/set_DelMouldStockBillMain_Temp_Json',
                            data: {
                                HInterID: this.hform.HInterID,
                                HBillType: this.hform.HBillType,
                                HBarCode: sBarCode
                            },
                            success: (res) => {
                                console.log('删除条码', res.data);
                                this.hform.HBarCode = '';
                                if (res.data.count == 1) {
                                    this.hform.HQty = ''
                                } else {
                                    uni.showToast({
                                        title: res.data.Message,
                                        icon: 'none'
                                    })
                                }
                            },
                            fail: (res) => {
                                console.log(res);
                                uni.showToast({
                                    title: '接口请求失败',
                                    icon: 'none'
                                })
                            },
                        });
                    }
                } else {
                    var sBarCode = this.hform.HBarCode
                    uni.request({
                        url: this.serverUrl + '/MouldController/Get_CheckTypeByMouldBarCode_Json',
                        data: {
                            sBarCode: sBarCode,
                            HInterID: this.hform.HInterID,
                            HBillType: this.hform.HBillType,
                            HBillNo: this.hform.HBillNo,
                            HMaker: this.hform.HMaker,
                            HWhID: sHWHID,
                            HSPID: sHSPID,
                            HSCWhID: 0,
                            HSCSPID: 0,
                            HRedBlueFlag: this.hform.HRedBlueFlag,
                            HSourceBillNo: sSourceBillNo,
                            HSourceBillType: sSourceBillType,
                            HStockOrgID: this.hform.HStockOrgID,
                            HStockOutOrgID: this.hform.HStockOutOrgID,
                        },
                        success: (res) => {
                            console.log('检查扫码返回的数据', res.data);
                            this.hform.HBarCode = ''
                            if (res.data.count == 1) {
                                this.tabs = 1
                                this.DisBillEntryList()
                            } else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        },
                        fail: (res) => {
                            console.log(res);
                            uni.showToast({
                                title: '接口请求失败',
                                icon: 'none'
                            })
                        },
                    })
                }
            },
            //仓库监听事件
            HWHNameChange(e) {
                for (var i = 0; i < this.HWHNameList.length; i++) {
                    if (this.HWHNameList[i]["HName"] == e) {
                        this.hform.HWHName = this.HWHNameList[i]["HName"]
                        this.hform.HWHID = this.HWHNameList[i].HItemID
                        this.showHStockPlaceName = this.HWHNameList[i].HIsStockMgr
                    }
                }
            },
            HStockPlaceNameChange(e) {
                for (var i = 0; i < this.HStockPlaceNameList.length; i++) {
                    if (this.HStockPlaceNameList[i]["HWhName"] == e) {
                        this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID
                        this.hform.HStockPlaceName = this.HStockPlaceNameList[i]["HWhName"]
                    }
                }
            },
            HScatterUserChange(e) {
                for (var i = 0; i < this.HEmpNameList.length; i++) {
                    if (this.HEmpNameList[i].HName == e) {
                        this.hform.HKeeperID = this.HEmpNameList[i].HItemID
                        this.hform.HKeeperName = this.HEmpNameList[i].HName
                    }
                }
            },
            HCollectUserChange(e) {
                for (var i = 0; i < this.HEmpNameList.length; i++) {
                    if (this.HEmpNameList[i].HName == e) {
                        this.hform.HSecManagerID = this.HEmpNameList[i].HItemID
                        this.hform.HSecManagerName = this.HEmpNameList[i].HName
                    }
                }
            },
            /* #region 仓库仓位获取下拉框 */
            getHBaseList() {
                CommonUtils.doRequest(
                    "/Web/GetWarehouseList_Json_New", {
                        Warehouse: "",
                        HOrgID: uni.getStorageSync('OrganizationID')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HWHNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHWHName[i] = data[i]["HName"]
                            }
                        } else {
                            uni.showToast({
                                title: '仓库数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
                CommonUtils.doRequest(
                    "/WEBSController/GetStockPlaceList_Json", {
                        StockPlace: '',
                        HWhID: this.hform.HWHID,
                        HStockOrgID: uni.getStorageSync('OrganizationID')
                    },
                    (res) => {
                        let res1 = res.data
                        console.log(res1)
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HStockPlaceNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHStockPlaceName[i] = data[i]["HWhName"]
                            }
                        } else {
                            uni.showToast({
                                title: '仓位数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
            },
            /* #endregion */
            getHEmpList() {
                CommonUtils.doRequest("/Web/GetEmployeeList_Json", {
                        Employee: '',
                        HGroupID: 0
                    },
                    (res) => {
                        if (res.data.count == 1) {
                            this.HEmpNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHEmpName[i] = res.data.data[i].HName
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: '人员数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                )
            },
            //获取使用部门数据
            getHDeptList() {
                uni.request({
                    url: this.serverUrl + '/Gy_Department/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HDeptNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHDeptName[i] = res.data.data[i].部门名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: '部门数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            getHSupList() {
                CommonUtils.doRequest(
                    "/Gy_Customer/list", {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HSupNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHSupName[i] = data[i].客户名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    }
                )
            },
            getSupplier() {
                CommonUtils.doRequest(
                    "/WEBSController/GetSupplier_Json", {
                        HBarCode: uni.getStorageSync(''),
                        Organization: uni.getStorageSync('Organization')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HSupNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHSupName[i] = data[i].客户名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    }
                )
            },
            //选择使用部门
            HDeptNameChange(e) {
                for (var i = 0; i < this.HDeptNameList.length; i++) {
                    if (this.HDeptNameList[i].部门名称 == e) {
                        this.hform.HDeptID = this.HDeptNameList[i].HItemID
                        this.hform.HDeptName = this.HDeptNameList[i].部门名称
                    }
                }
            },
            //选择客户
            // HSupNameChange(e) {
            //     for (var i = 0; i < this.HSupNameList.length; i++) {
            //         if (this.HSupNameList[i].客户名称 == e) {
            //             this.hform.HSupID = this.HSupNameList[i].HItemID
            //             this.hform.HSupName = this.HSupNameList[i].客户名称
            //         }
            //     }
            // },
            HDateChange(e) {
                console.log(e.detail.value)
                this.hform.HDate = e.detail.value
            },
            HSelectTypeChange(e) {
                this.hform.TypeName=e;
                this.hform.HSupName = ''; // 清空往来单位选择
                this.hform.HSupID = '';
                uni.setStorageSync("typeName_3803",e);
                if(e=='部门')
                {
                    this.hform.HSupTypeID=3;
                    uni.setStorageSync("typeID_3803",3);
                    this.arrayHSelectType = this.arrayHDeptName;
                    this.HSelectTypeList = this.HDeptNameList;
                }
                else if(e === '供应商') {
                    this.hform.HSupTypeID=1;
                    uni.setStorageSync("typeID_3803",1);
                    this.arrayHSelectType = this.arrayHSupplierName;
                    this.HSelectTypeList = this.HSuplierList;
                } else if(e === '客户') {
                // 客户数据 - 这里留空,后续添加获取客户数据的逻辑
                    this.hform.HSupTypeID=2;
                    uni.setStorageSync("typeID_3803",2);
                    this.arrayHSelectType =this.arrayHCusName;
                    this.HSelectTypeList = this.HCusNameList;
                } else {
                    uni.setStorageSync("typeID_3803",0);
                    this.arrayHSelectType = [];
                    this.HSelectTypeList = [];
                }
            },
            //器具信息
            DisBillEntryList() {
                CommonUtils.doRequest(
                    "/MouldController/GetMouldBillEntryTmpList_Json", {
                        HInterID: this.hform.HInterID,
                        HBillNo: this.hform.HBillNo,
                        HBillType: this.hform.HBillType
                    },
                    (res) => {
                        console.log('器具', res.data)
                        var data = res.data.data
                        this.HMouldList = data;
                        if (res.data.count == 0) {
                            this.HMouldList = [];
                            this.hform.HMouldCount_B = ''
                            this.hform.HMouldID_B = ''
                            this.hform.HMouldName_B = ''
                        } else {
                            this.hform.HMouldCount_B = data[0].HQty
                            this.hform.HMouldID_B = data[0].HMouldID
                            this.hform.HMouldName_B = data[0].HMouldName
                            this.hform.HBarCode_B = data[0].HBarCode
                        }
                    },
                )
            },
            goBack() {
                uni.showModal({
                    title: '提示',
                    content: '确认要退出当前页面吗?',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.redirectTo({
                                url: '/pages/MJGL/mujulingliaochukudan/MouldProdOutBillList'
                            })
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
            submit() {
                //仓库、仓位、保管、验收、部门、供应商文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                if (!this.hform.HSactterUserName) {
                    this.hform.HSactterUserID = 0
                } else {
                    this.HSecManagerID = this.hform.HSactterUserID
                }
                if (!this.hform.HCollectUserName) {
                    this.hform.HCollectUserID = 0
                } else {
                    this.HKeeperID = this.hform.HCollectUserID
                }
                if (!this.hform.HDeptName) {
                    this.hform.HDeptID = 0
                }
                if (!this.hform.HSupName) {
                    this.hform.HSupID = 0
                }
                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.hform.HMouldID_B == 0 || this.hform.HMouldID_B == null) {
                        uni.showToast({
                            title: '没有扫描器具条码,请先扫描器具条码,确认无误后再提交!',
                            icon: 'none'
                        })
                    } else {
                        uni.showLoading({
                            title: '请稍候'
                        })
                        let sMainStr = JSON.stringify(this.hform);
                        console.log("主表:" + sMainStr)
                        CommonUtils.doRequest(
                            '/MouldController/set_SaveMouldProdBackBill_Json', {
                                oMain: sMainStr
                            },
                            (res) => {
                                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/caigouruku/POStockInBill?OperationType=1'
                                                })
                                            } else if (res.cancel) {
                                                console.log('用户点击取消');
                                                setTimeout(() => {
                                                    uni.navigateBack();
                                                }, 50)
                                            }
                                        }
                                    });
                                } else {
                                    // uni.showToast({
                                    //     title: res.data.Message,
                                    //     icon: 'none'
                                    // })
                                    uni.showModal({
                                        content: res.data.Message,
                                        showCancel: false,
                                        complete() {
                                            uni.hideLoading()
                                        }
                                    })
                                }
                            },
                            null,
                            "POST"
                        )
                    }
                }
            },
            getHCusList() {
                CommonUtils.doRequest(
                    "/Gy_Customer/list", {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    (res) => {
                        let res1 = res.data
                        let {
                            data,
                            count
                        } = res1
                        if (count == 1) {
                            this.HCusNameList = data
                            for (var i = 0; i < data.length; i++) {
                                this.arrayHCusName[i] = data[i].客户名称
                            }
                            this.$forceUpdate();
                        } else {
                            uni.showToast({
                                title: data.Message,
                                icon: 'none'
                            })
                        }
                    }
                )
            },
        },
        onLoad(e) {
            console.log(e, this.userInfo)
            if (e.HInterID) {
                // this.HInterID_Temp = e.HInterID
                // this.btnType = 1
                this.RoadBillMain(e.HInterID)
            } else {
                this.getNewData()
            }
            this.getHBaseList()
            this.getHCusList()
            this.getHEmpList()
            this.getHDeptList()
            this.getHSupList()
            setTimeout(() => {
                this.HSelectTypeChange(this.hform.TypeName)
                //初始化往来单位
                if (this.hform.TypeName == '部门') {
                    this.hform.HSupName = getUserInfo().HDept; // 清空往来单位选择
                    this.hform.HSupID = getUserInfo().HDeptID;
                } else if (this.hform.TypeName === '供应商') {
                    this.hform.HSupName = getUserInfo().HSupName; // 清空往来单位选择
                    this.hform.HSupID = getUserInfo().HSupID;
                } else if (this.hform.TypeName === '客户') {
                }
                this.$nextTick(() => {
                    this.loadCache()
                })
            }, 300);
            uni.$on('BillSelectComplete', (e) => {
                console.log("接收到的消息: ", e.HBillNo)
                this.getHBarCodeData(e.HBillNo)
                this.$refs.billList.exit()
            })
            this.loadCache()
            //this.getHEmpList()
        },
        //重要选择源单必须添加这个否则出现严重bug
        onUnload() {
            uni.$off('BillSelectComplete')
        },
    }
</script>
<style lang="scss" scoped>
    .form {
@@ -818,10 +1025,13 @@
        }
        .righton {
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
            flex: 1;
            position: relative;
            display: flex;
        }
        input {
utils/common.js
@@ -464,7 +464,7 @@
        if(!RoleList) {
            RoleList = [
                /^[a-zA-Z]+$/,
                /\bid$/i
                /id$/i
            ]
        }
        if(!Array.isArray(RoleList)){
@@ -475,21 +475,25 @@
            }
        }
        
        let FieldListCache = Array(FieldList)
        let FieldListCache = Array(...FieldList)
        
        let list1 = FieldListCache.filter(elem => role[0].test(elem.ColmCols))
        console.log('list1: ',list1);
        // RoleList.forEach(role => {
        //     console.log(FieldListCache.filter(field => !role.test(field.ColmCols)))
        //     FieldListCache = FieldListCache.filter(field => !role.test(field.ColmCols))
        // })
        RoleList.forEach(role => {
            FieldListCache = FieldListCache.filter(elem => !role.test(elem.ColmCols))
        })
        
        FieldListCache = FieldListCache.filter(elem => !ExcludeKeys.includes(elem))
        return {
            status: true,
            data: FieldListCache,
            Message: ""
        }
    }
    emptyValueFilter(item, fieldList){
        return fieldList.filter(e => {
            return item[e.ColmCols]
        })
    }
}
export const CommonUtils = new commonUtils()