dytyqx
2026-04-03 e1219aaaf673c299a7ee9d7ecd04b9da468e86bc
Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

# Conflicts:
# manifest.json
13个文件已修改
520 ■■■■■ 已修改文件
locale/zh-Hans.json 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/SB_EquipICMOTechParamBill/SB_EquipICMOTechParamBillEdit.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/mujulingliaochukudan/MouldProdOutBill.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/login.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab4.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchanrukushengdan/Kf_ProductInBill.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xiaoshoutuihuo/ICStockBillMain.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
locale/zh-Hans.json
@@ -33,7 +33,11 @@
        "HSourceBillType0": "收料通知单@1103",
        "HSourceBillType1": "采购订单@1101",
        "HSourceBillType2": "手工录入@-1"
    },
    "Kf_SellOutBackBill_PDA": {
        "HSourceBillType0": "退货通知单@1403",
        "HSourceBillType1": "销售订单@1401",
        "HSourceBillType2": "手工录入@-1"
    },
    "Gy": {
        "HBarCode": "条码",
@@ -64,6 +68,8 @@
        "HSecManagerName_Placeholder": "请选择验收员",
        "HDeptName": "部门",
        "HDeptName_Placeholder": "请选择部门",
        "HCusName": "客户",
        "HCusName_Placeholder": "请选择客户",
        "HSupName": "供应商",
        "HSupName_Placeholder": "请选择供应商",
        "HStockOrgName": "组织",
@@ -87,6 +93,65 @@
        "EquipNumber_Search": "设备编码",
        "EquipName_Search": "设备名称",
        "HDept_Search": "部门"
    },
    "Kf_ProductInBill_PDA": {
        "BarCode": "条码",
        "Qty": "数量",
        "BillNo": "单据号",
        "BillID": "单据ID",
        "Keeper": "保管",
        "SecManager": "验收",
        "Dept": "部门",
        "StockOrg": "组织",
        "Material": "物料",
        "MaterModel": "规格",
        "BatchNo": "批次",
        "Unit": "单位",
        "Capacity": "容量",
        "btnSubmit": "提交",
        "btnAdd": "新增",
        "selectSource": "选择源单",
        "tableInfo": "表头信息",
        "materInfo": "物料信息",
        "barInfo": "条码信息",
        "removeShelvesInfo": "下架信息",
        "btnExit": "退出",
        "title": "生产入库单",
        "select option": [
            "3710@生产任务单",
            "3711@生产汇报单",
            "3714@工序汇报单"
        ],
        "placeholder_BarCode": "请扫描(或输入)条码",
        "placeholder_Qty": "请输入数量",
        "placeholder_Warehouse": "请输入(或扫描)仓库",
        "placeholder_StockPlace": "请输入(或扫描)仓位",
        "placeholder_SourceBillNo": "请输入源单单号",
        "table_SourceBillNo": "源单单号",
        "table_SourceBillQty": "源单数量",
        "table_BarQty": "数量",
        "table_BarNum": "条码个数",
        "table_MaterModel": "规格型号",
        "table_Aux": "辅助属性",
        "Warehouse": "仓库",
        "StockPlace": "仓位",
        "SourceBillType": "源单类型",
        "SourceBillNo": "源单单号",
        "Date": "日期",
        "Maker": "制单人",
        "bt_HMaterNumber": "物料代码",
        "bt_HMaterName": "物料名称",
        "bt_HModel": "规格型号",
        "bt_ForFilteringSchemes": "是否启用",
        "btnReSearch": "重置",
        "set_AddNew": "新增",
        "get_use": "启用",
        "get_createBarCode": "生成条码",
        "set_DeleteBill": "删除",
        "set_HideColumn": "列设置",
        "get_Refresh": "刷新",
        "btn_MaterPackQtyExcel": "Excel导入",
        "get_Exit": "退出"
    }
}
main.js
@@ -30,21 +30,12 @@
// uniapp 全局请求拦截器
uni.addInterceptor('request', {
    invoke(args) {
        // 获取到当前调用的页面
        const pages = getCurrentPages()
        const currentPage = pages[pages.length - 1]
        // 拿到页面定义的 modName
        const modName = currentPage?.$vm.HModName || ''
        // 请求头带上 token
        let token = uni.getStorageSync('Token')
        if (token) {
            // 先初始化,防止 undefined 报错
            args.header = args.header || {}
            args.header.Authorization = `Bearer ${token}`
            args.header["X-HModName"] = modName
        }
    },
    success(res) {
manifest.json
@@ -2,8 +2,9 @@
    "name" : "智云LMES",
    "appid" : "__UNI__B002F49",
    "description" : "",
    "versionName" : "3.010",
    "versionCode" : 310,
    "versionName" : "3.012",
    "versionCode" : 312,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages/MJGL/SB_EquipICMOTechParamBill/SB_EquipICMOTechParamBillEdit.vue
@@ -14,56 +14,56 @@
            }">
                <view class="form-item">
                    <view class="title">源单类型:</view>
                    <zxz-uni-data-select class="right" :localdata="[{value: '3772', key: '工序流转卡'}]" dataKey="key"
                    <zxz-uni-data-select class="righton" disabled :localdata="[{value: '3772', key: '工序流转卡'}]" dataKey="key"
                        dataValue="value" v-model="hform.HMainSourceBillType">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">源单单号:</view>
                    <view class="right">
                        <input type="text" v-model="hform.HMainSourceBillNo" />
                    <view class="righton">
                        <input type="text" disabled v-model="hform.HMainSourceBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">流转卡号:</view>
                    <view class="right">
                        <input type="text" v-model="hform.HProcExchBillNo" />
                    <view class="righton">
                        <input type="text" disabled  v-model="hform.HProcExchBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">生产订单号:</view>
                    <view class="right">
                        <input v-model="hform.HICMOBillNo" />
                    <view class="righton">
                        <input disabled  v-model="hform.HICMOBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">工序号:</view>
                    <view class="right">
                        <input v-model="hform.HProcNo" />
                    <view class="righton">
                        <input disabled  v-model="hform.HProcNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">物料代码:</view>
                    <view class="right">
                        <input v-model="hform.HMaterNumber" />
                    <view class="righton">
                        <input disabled  v-model="hform.HMaterNumber" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">物料名称:</view>
                    <view class="right">
                        <input v-model="hform.HMaterName" />
                    <view class="righton">
                        <input  disabled v-model="hform.HMaterName" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">规格型号:</view>
                    <view class="right">
                        <input v-model="hform.HMaterModel" />
                    <view class="righton">
                        <input  disabled v-model="hform.HMaterModel" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">工序:</view>
                    <view class="right">
                        <input v-model="hform.HProcName" />
                    <view class="righton">
                        <input disabled  v-model="hform.HProcName" />
                    </view>
                </view>
                <view class="form-item">
@@ -86,8 +86,8 @@
                </view>
                <view class="form-item">
                    <view class="title">生产资源:</view>
                    <view class="right">
                        <input v-model="hform.HSourceName" />
                    <view class="righton">
                        <input disabled  v-model="hform.HSourceName" />
                    </view>
                </view>
                <view class="form-item">
@@ -1040,8 +1040,15 @@
                                "HMax": item["上限值"],
                                "HMin": item["下限值"],
                                "HRemark": item["采集来源"],
                                "HResult": (item["数采值"] <= item["上限值"] && item["数采值"] >= item["下限值"]) ?
                                    "OK" : "NG",
                                HResult: (() => {
                                         const val = Number(item["数采值"])
                                         const min = Number(item["下限值"])
                                         const max = Number(item["上限值"])
                                         if (isNaN(val) || isNaN(min) || isNaN(max)) {
                                           return ""
                                         }
                                         return val >= min && val <= max ? "OK" : "NG"
                                       })(),
                                "HIsRequired": item["HIsRequired"]
                            }
                        })
pages/MJGL/mujulingliaochukudan/MouldProdOutBill.vue
@@ -264,6 +264,12 @@
                    HMouldName_B: '',
                    HMouldID_B: '',
                    HMouldCount_B: '',
                    HExplanation: "",
                    HRemark: "",
                    HInnerBillNo: "",
                    HMainSourceBillNo: "",
                }
            }
        },
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue
@@ -277,7 +277,7 @@
                    HCheckEmpID: getUserInfo().HEmpID,
                    HCopyMan: '', //抄送人
                    HCheckResult: 'completed',
                    HCheckResult: '完成',
                    HLevel: 'normal',
                    HBillTypeName: '',
                    HPlanBillNo: '',
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue
@@ -287,7 +287,7 @@
                    HBadReasonID: '0',
                    HBadReasonName: '',
                    HHandleResult: 'completed',
                    HHandleResult: '处理完成',
                    HLevel: 'normal',
                    HBillTypeName: '',
                    HPlanBillNo: '',
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue
@@ -69,7 +69,7 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">{{ $t("QC_TakeSampleCheckBill.HSourceName") == "QC_TakeSampleCheckBill.HSourceName" ? "生产资源:" : $t("QC_TakeSampleCheckBill.HSourceName") }}</view>
                <view class="title required">{{ $t("QC_TakeSampleCheckBill.HSourceName") == "QC_TakeSampleCheckBill.HSourceName" ? "生产资源:" : $t("QC_TakeSampleCheckBill.HSourceName") }}</view>
                <view class="right">
                    <uni-combox :candidates="HSourceNameArray" name="HSourceName" id="HSourceName" :placeholder="$t('QC_TakeSampleCheckBill.HSourceName_Placeholder') == 'QC_TakeSampleCheckBill.HSourceName_Placeholder' ? '请选择生产资料' : $t('QC_TakeSampleCheckBill.HSourceName_Placeholder')" v-model="hform.HSourceName" @input="HSourceNameChangeHandler"></uni-combox>
                </view>
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue
@@ -173,7 +173,7 @@
                    </view>
                    <view class="op" v-if="operations == index">
                        <button class="op3" size="mini" plain @tap.stop="Xt_FistCheck(item)">下推首件单</button>
                        <button class="op3" size="mini" plain @tap.stop="doAudit(item)">{{ item.单据状态 == '已审核'? "反审核": "审核" }}</button>
                        <button class="op4" size="mini" plain @tap.stop="del(item)">删除</button>
                        <button class="op5" size="mini" plain @tap.stop="operations = -1">取消操作</button>
                    </view>
@@ -267,10 +267,45 @@
        },
        methods: {
            async doAudit(item) {
                let type = 0
                if(item["单据状态"] == "已审核"){
                    type = 1
                }else {
                    type = 0
                }
                try{
                    let res = await CommonUtils.doRequest2Async({
                        url: "/QC_TakeSampleCheckBill/AuditQC_TakeSampleCheckBillMain",
                        data: {
                            "HInterID": item.hmainid,
                            "IsAudit": type,
                            "CurUserName": getUserInfo()["Czymc"]
                        }
                    })
                    console.log('res: ',res);
                    let {data, count , Message} = res.data
                    if(count == 1) {
                        this.onSearchClickHandler()
                    }
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: Message
                    })
                }catch(err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            // 新增取样单
            onAddClickHandler() {
                uni.navigateTo({
                    url: "/pages/quyangdan/TakeSampleCheckBill?operationType=0"
                    url: "/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill?operationType=0"
                })
            },
            Xt_FistCheck(item){
pages/index/login.vue
@@ -170,14 +170,14 @@
        },
        methods: {
            async ApplyLanguagePack(lang, forceUpdate = false) {
                // // 读取语言包并加载
                // let {
                //     data,
                //     getRemoteFile
                // } = await getLanguagePackJson(lang)
                // if (getRemoteFile) {
                //     this.$i18n.setLocaleMessage(lang, data)
                // }
                // 读取语言包并加载
                let {
                    data,
                    getRemoteFile
                } = await getLanguagePackJson(lang)
                if (getRemoteFile) {
                    this.$i18n.setLocaleMessage(lang, data)
                }
                this.$i18n.locale = lang
            },
            onLanguageChangeHandler(e) {
pages/index/tab4.vue
@@ -263,42 +263,42 @@
        },
        methods: {
            // 根据模块获取未处理消息条数
            // async getMessageIdentifierCount(menuListName) {
            //     try {
            //         let res = await CommonUtils.doRequest2Async({
            //             url: '/Web/getMessageIdentified',
            //             data: {
            //                 user: getUserInfo()["HEmpName"],
            //                 moduleName: menuListName
            //             }
            //         })
            //         let {
            //             data,
            //             count,
            //             Message
            //         } = res.data
            //         if (count == 1) {
            //             let retVal = Array.from(data).reduce((acc, item) => {
            //                 acc[item['moduleName']] = item.count
            //                 return acc
            //             }, {})
            async getMessageIdentifierCount(menuListName) {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Web/getMessageIdentified',
                        data: {
                            user: getUserInfo()["HEmpName"],
                            moduleName: menuListName
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        let retVal = Array.from(data).reduce((acc, item) => {
                            acc[item['moduleName']] = item.count
                            return acc
                        }, {})
            
            //             return {
            //                 code: 1,
            //                 msg: Message,
            //                 data: retVal
            //             }
            //         } else {
            //             return {
            //                 code: 0,
            //                 msg: Message,
            //                 data: []
            //             }
            //         }
            //     } catch (err) {
                        return {
                            code: 1,
                            msg: Message,
                            data: retVal
                        }
                    } else {
                        return {
                            code: 0,
                            msg: Message,
                            data: []
                        }
                    }
                } catch (err) {
            
            //     }
            // },
                }
            },
            judgeHidden() {
                return process.env.NODE_ENV === 'development'
            },
pages/shengchanrukushengdan/Kf_ProductInBill.vue
@@ -773,6 +773,10 @@
                    } = res.data
                    if (count == 1) {
                        console.log('data: ', data);
                        if(data.length == 0) {
                            // 当数据库里面没有存储自定义的源单类型时,使用页面内定义的
                            return;
                        }
                        this.arrayHMainSourceBillType = []
                        this.arrayHMainSourceBillValue = []
                        Array.from(data).forEach(e => {
@@ -801,6 +805,8 @@
                        this.HMainSourceBillType = this.arrayHMainSourceBillType[0]
                        this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[0]
                    } else {
                        // 保底方案,使用页面内定义的源单类型
                        CommonUtils.showTips({
                            title: "温馨提示",
                            message: Message
pages/xiaoshoutuihuo/ICStockBillMain.vue
@@ -2,9 +2,9 @@
    <view>
        <view class="form">
            <view class="form-item">
                <view class="title">条码:</view>
                <view class="title">{{$t("Gy.HBarCode")}}:</view>
                <view class="right" style="width: 380rpx;">
                    <input :focus="BarCodeFocus" v-model="hform.HBarCode" placeholder="请扫描(或输入)条码"
                    <input :focus="BarCodeFocus" v-model="hform.HBarCode" :placeholder="$t('Gy.HBarCode_Placeholder')"
                        @confirm="getCode(hform.HBarCode)" />
                </view>
                <uni-icons type="scan"
@@ -12,81 +12,84 @@
                    size="20" @click="toScanCode"></uni-icons>
            </view>
            <view class="form-item">
                <view class="title">数量:</view>
                <view class="title">{{$t("Gy.HQty")}}:</view>
                <view class="right">
                    <input v-model="hform.HQty" placeholder="请输入数量" />
                    <input v-model="hform.HQty" :placeholder="$t('Gy.HQty_Placeholder')" />
                </view>
            </view>
            <view class="form-item">
                <view class="title">仓库:</view>
                <view class="title">{{$t("Gy.HWHName")}}:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                        @input="HWHNameChange"></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="title">{{$t("Gy.HStockPlaceName")}}:</view>
                <view class="right" v-show="showHStockPlaceName">
                    <uni-combox :candidates="HStockPlaceNameListComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange" @confirm="HStockPlaceNameScan"></uni-combox>
                    <uni-combox :candidates="HStockPlaceNameListComputed"
                        :placeholder="$t('Gy.HStockPlaceName_Placeholder')" v-model="hform.HStockPlaceName"
                        @input="HStockPlaceNameChange" @confirm="HStockPlaceNameScan"></uni-combox>
                </view>
                <view class="righton" v-show="!showHStockPlaceName"><input v-model="hform.HStockPlaceName"
                        placeholder="不可操作" /></view>
                        :placeholder="$t('Gy.OperationDisabled')" /></view>
            </view>
            <view class="tabs">
                <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">选择源单</view>
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">{{$t("Gy.SourceBillSelect")}}</view>
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">{{$t("Gy.TableHeaderInfo")}}</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">{{$t("Gy.MaterInfo")}}</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">{{$t("Gy.BarCodeInfo")}}</view>
            </view>
            <view v-if="tabs == 0">
                <view class="form-item">
                    <view class="title">源单类型:</view>
                    <view class="title">{{$t("Gy.HMainSourceBillType")}}:</view>
                    <view class="right" v-show="showHMainSourceBillType">
                        <picker :range="arrayHMainSourceBillType" v-model="HMainSourceBillType"
                            @change="HMainSourceBillTypeChange">
                            <input name="HMainSourceBillType" disabled v-model="HMainSourceBillType"
                                placeholder="请选择源单类型" />
                                :placeholder="$t('Gy.HMainSourceBillType_Placeholder')" />
                            <view class="picker-overlay"></view>
                        </picker>
                    </view>
                    <view class="righton" v-show="!showHMainSourceBillType">
                        <input name="HMainSourceBillType" disabled v-model="HMainSourceBillType"
                            placeholder="请选择源单类型" />
                            :placeholder="$t('Gy.HMainSourceBillType_Placeholder')" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">源单单号:</view>
                    <view class="title">{{$t("Gy.HMainSourceBillNo")}}:</view>
                    <view class="right" style="width: 380rpx;" v-show="showHSourceBillNo">
                        <input v-model="hform.HSourceBillNo" :focus="HSourceBillNoFocus"
                            @confirm="onHSourceBillNoConfirmHandler" placeholder="请扫描(或输入)源单单号" />
                            @confirm="onHSourceBillNoConfirmHandler"
                            :placeholder="$t('Gy.HMainSourceBillNo_Placeholder')" />
                    </view>
                    <uni-icons v-show="showHSourceBillNo" type="scan"
                        style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                        size="20" @click="toScanCodeA()"></uni-icons>
                    <view class="righton" v-show="!showHSourceBillNo">
                        <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
                        <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo"
                            :placeholder="$t('Gy.HMainSourceBillNo_Placeholder')" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">日期:</view>
                    <view class="title">{{$t("Gy.HDate")}}:</view>
                    <view class="right">
                        <picker mode="date" v-model="hform.HDate" @change="HDateChange">
                            <input disabled v-model="hform.HDate" placeholder="请选择日期" />
                            <input disabled v-model="hform.HDate" :placeholder="$t('Gy.HDate_Placeholder')" />
                            <view class="picker-overlay"></view>
                        </picker>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">制单人:</view>
                    <view class="title">{{$t("Gy.HMaker")}}:</view>
                    <view class="righton">
                        <input name="HMaker" disabled v-model="hform.HMaker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单据号:</view>
                    <view class="title">{{$t("Gy.HBillNo")}}:</view>
                    <view class="righton">
                        <input name="HBillNo" disabled v-model="hform.HBillNo" />
                    </view>
@@ -96,7 +99,7 @@
                </view>
                <view class="form-item">
                    <view class="title">单据ID:</view>
                    <view class="title">{{$t("Gy.HInterID")}}:</view>
                    <view class="righton">
                        <input name="HInterID" disabled v-model="hform.HInterID" />
                    </view>
@@ -105,28 +108,28 @@
            <view v-if="tabs == 1">
                <view class="form-item">
                    <view class="title">保管:</view>
                    <view class="title">{{$t("Gy.HKeeperName")}}:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHEmpName" placeholder="请选择保管员" v-model="hform.HKeeperName"
                            @input="HKeeperNameChange"></uni-combox>
                        <uni-combox :candidates="arrayHEmpName" :placeholder="$t('Gy.HKeeperName_Placeholder')"
                            v-model="hform.HKeeperName" @input="HKeeperNameChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">验收:</view>
                    <view class="title">{{$t("Gy.HSecManagerName")}}:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHEmpName" placeholder="请选择验收员" v-model="hform.HSecManagerName"
                            @input="HSecManagerNameChange"></uni-combox>
                        <uni-combox :candidates="arrayHEmpName" :placeholder="$t('Gy.HSecManagerName_Placeholder')"
                            v-model="hform.HSecManagerName" @input="HSecManagerNameChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">部门:</view>
                    <view class="title">{{$t("Gy.HDeptName")}}:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHDeptName" placeholder="请选择部门" v-model="hform.HDeptName"
                            @input="HDeptNameChange"></uni-combox>
                        <uni-combox :candidates="arrayHDeptName" :placeholder="$t('Gy.HDeptName_Placeholder')"
                            v-model="hform.HDeptName" @input="HDeptNameChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">客户:</view>
                    <view class="title">{{$t("Gy.HCusName")}}:</view>
                    <!-- <view class="right" v-show="showHSupName">
                        <uni-combox :candidates="arrayHSupName" placeholder="请选择客户" v-model="hform.HSupName"
                            @input="HSupNameChange"></uni-combox>
@@ -136,7 +139,7 @@
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">组织:</view>
                    <view class="title">{{$t("Gy.HStockOrgName")}}:</view>
                    <view class="righton">
                        <input name="HStockOrgName" disabled v-model="hform.HStockOrgName" />
                    </view>
@@ -147,25 +150,14 @@
                <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">
                                <text>数量:</text>{{item.数量}}
                            </view>
                            <view class="detail">
                                <text>条码个数:</text>{{item.条码个数}}
                            </view>
                            <view class="detail" v-if="item.规格型号">
                                <text>规格型号:</text>{{item.规格型号}}
                            </view>
                            <view class="detail" v-if="item.辅助属性">
                                <text>辅助属性:</text>{{item.辅助属性}}
                            </view>
                            <template v-for="(HBillField, index) in HFieldList">
                                <view class="detail" v-if="HBillField.ColmType == 'DateTime'">
                                    <text>{{ $t(`${HModName}.${HBillField.ColmCols}`) }}:</text>{{ item[HBillField.ColmCols] ? dayjs(item[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }}
                                </view>
                                <view class="detail" v-else>
                                    <text>{{ $t(`${HModName}.${HBillField.ColmCols}`) }}:</text>{{ item[HBillField.ColmCols] }}
                                </view>
                            </template>
                            <!-- 兴达客户 功能 -->
                            <view class="detail" v-if="materMeta[0].HWHName && /兴达/.test(hform.HStockOrgName
                            )">
@@ -179,55 +171,55 @@
            <view v-if="tabs == 3">
                <view class="form-item">
                    <view class="title">条码:</view>
                    <view class="title">{{$t("Gy.HBarCode_B")}}:</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="title">{{$t("Gy.HMaterName_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">规格:</view>
                    <view class="title">{{$t("Gy.HMaterModel_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterModel_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">批次:</view>
                    <view class="title">{{$t("Gy.HBatchNo_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HBatchNo_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单位:</view>
                    <view class="title">{{$t("Gy.HUnitName_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HUnitName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">数量:</view>
                    <view class="title">{{$t("Gy.HQty_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">容量:</view>
                    <view class="title">{{$t("Gy.HTMQty_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HTMQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓库:</view>
                    <view class="title">{{$t("Gy.HWHName_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HWHName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓位:</view>
                    <view class="title">{{$t("Gy.HSPName_B")}}:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HSPName_B" />
                    </view>
@@ -235,10 +227,10 @@
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <button class="btn-a" size="mini" @tap="submit">{{$t("Gy.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>
                <button class="btn-a" size="mini" @tap="addNew">{{$t("Gy.addNew")}}</button>
                <button class="btn-c" size="mini" @tap="goBack">{{$t("Gy.goBack")}}</button>
            </view>
        </view>
        <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
@@ -253,7 +245,9 @@
        getUserStockRelation
    } from '../../utils/userRelationManager';
    import BarCodePopupVue from "../../components/BarCodePopup/BarCodePopup.vue";
    import { CommonUtils } from '../../utils/common';
    import {
        CommonUtils
    } from '../../utils/common';
    export default {
        components: {
            BarCodePopupVue
@@ -270,6 +264,7 @@
        },
        data() {
            return {
                CommonUtils,
                userInfo: getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                HModName: 'Kf_SellOutBackBill_PDA',
@@ -289,6 +284,7 @@
                tabs: 0,
                HMainSourceBillType: '退货通知单',
                arrayHMainSourceBillType: ['退货通知单', '销售订单', '手工录入'],
                arrayHMainSourceBillValue: [1403, 1401, -1],
                linterid: '',
                HBillNo: '',
@@ -311,6 +307,7 @@
                Materlist: [],
                materMeta: [],
                HFieldList: [], // 字段列表
                hform: {
                    HBillType: 1247,
                    HBillerID: uni.getStorageSync('HBillerID'),
@@ -371,6 +368,7 @@
            this.getHDeptList()
            this.getRelationStore()
            this.GetSourceBillType()
        },
        methods: {
            async HWHNameScan(e) {
@@ -390,7 +388,7 @@
                // 扫描仓位码
                console.log('仓位码: ', e);
                let index = this.HStockPlaceNameList.findIndex(elem => elem['条码编号'] == e.trim())
               // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                this.hform.HStockPlaceID = 0
                this.hform.HStockPlaceName = ''
                await this.$nextTick()
@@ -414,6 +412,58 @@
                        title: err
                    })
                }
            },
            async GetSourceBillType() {
                CommonUtils.doRequest2({
                    url: '/Web/GetHSourceBillTypeByBillType',
                    data: {
                        HBillType: this.hform.HBillType,
                        Num: 2
                    },
                    resFunction: (res) => {
                        let {
                            data,
                            count,
                            Message
                        } = res.data
                        if (count == 1) {
                            // console.log('data: ', data);
                            if (data.length == 0) {
                                // 数据库中没有配置,默认使用本地
                                for (let i = 0; i < this.HMainSourceBillType; i++) {
                                    let transed = this.$t(`${this.HModName}.HSourceBillType${i}`).split(
                                        "@")
                                    this.arrayHMainSourceBillType.push(transed[0])
                                    this.arrayHMainSourceBillValue.push(transed[1])
                                }
                                return
                            }
                            this.arrayHMainSourceBillType = []
                            this.arrayHMainSourceBillValue = []
                            let i
                            for (i = 0; i < data.length; i++) {
                                let tranItem = this.$t(`${this.HModName}.HSourceBillType${i}`).split(
                                    "@")
                                this.arrayHMainSourceBillType.push(tranItem[0])
                                this.arrayHMainSourceBillValue.push(tranItem[1])
                            }
                            let trans = (this.$t(`${this.HModName}.HSourceBillType${i}`)).split("@")
                            this.arrayHMainSourceBillType.push(trans[0])
                            this.arrayHMainSourceBillValue.push(trans[1])
                            this.HMainSourceBillType = this.arrayHMainSourceBillType[0]
                            this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[0]
                        } else {
                            // 数据库中没有配置,则使用本地的配置
                            for (let i = 0; i < this.HMainSourceBillType; i++) {
                                let transed = this.$t(`${this.HModName}.HSourceBillType${i}`).split("@")
                                this.arrayHMainSourceBillType.push(transed[0])
                                this.arrayHMainSourceBillValue.push(transed[1])
                            }
                        }
                    }
                })
            },
            async getRelationStore() {
                let {
@@ -522,7 +572,7 @@
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHWHName[i] = res.data.data[i].仓库名称
                            }
                            this.HWHNameChange(getUserInfo()["HWhName"])
                        } else {
                            uni.showToast({
@@ -646,15 +696,11 @@
            },
            //选择源单类型
            HMainSourceBillTypeChange(e) {
                this.HMainSourceBillType = this.arrayHMainSourceBillType[e.detail.value]
                if (this.HMainSourceBillType == '退货通知单') {
                    this.hform.HMainSourceBillType = 1403
                    this.getHYDList()
                } else if (this.HMainSourceBillType == '销售订单') {
                    this.hform.HMainSourceBillType = 1401
                    this.getHYDList()
                } else {
                    this.hform.HMainSourceBillType = -1
                let index = e.detail.value
                if (index != -1) {
                    this.HMainSourceBillType = this.arrayHMainSourceBillType[index]
                    this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[index]
                    // this.showHMainSourceBillType = false
                    this.getHYDList()
                }
            },
@@ -1017,17 +1063,11 @@
                                this.hform.HSourceBillNo = data.hSourceBillNoField
                                //获取源单类型、源单单号
                                this.hform.HMainSourceBillType = data.hSourceBillTypeField
                                if (data.hSourceBillTypeField == "1403") {
                                    this.HMainSourceBillType = '退货通知单'
                                    this.hform.HMainSourceBillType = 1403
                                    this.showHMainSourceBillType = false
                                } else if (data.hSourceBillTypeField == "1401") {
                                    this.HMainSourceBillType = '销售订单'
                                    this.hform.HMainSourceBillType = 1401
                                    this.showHMainSourceBillType = false
                                } else {
                                    this.HMainSourceBillType = '手工录入'
                                    this.hform.HMainSourceBillType = -1
                                let index = this.arrayHMainSourceBillValue.findIndex(e => e == data
                                    .hSourceBillTypeField)
                                if (index != -1) {
                                    this.HMainSourceBillType = this.arrayHMainSourceBillType[index]
                                    this.hform.HMainSourceBillType = data.hSourceBillTypeField
                                    this.showHMainSourceBillType = false
                                }
                                if (data.hMulSourceFlagField == 0) {
@@ -1057,19 +1097,7 @@
                                        this.hform.HMainSourceBillType = data.hSourceBillTypeField
                                        this.showHMainSourceBillType = false
                                    }
                                    // 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
                                    }
@@ -1254,11 +1282,22 @@
                    },
                    success: (res) => {
                        console.log('物料', res.data)
                        if (res.data.count == 1) {
                            let list = res.data.list
                            var data = res.data.data
                            this.materMeta = data.BarCodeDetailslist
                            this.Materlist = data.Materlist
                            this.HFieldList = CommonUtils.fieldListFilterRole({
                                FieldList: list,
                                ExcludeKeys: ["物料名称", "物料代码"],
                            }).data
                            
                            console.log('字段列表: ',CommonUtils.fieldListFilterRole({
                                FieldList: list,
                                ExcludeKeys: ["物料名称", "物料代码"],
                            }).data);
                            if (/兴达/.test(uni.getStorageSync("Organization"))) {
                                // 兴达客户 带出 仓库
                                console.log("兴达带出默认仓库")
@@ -1529,7 +1568,7 @@
                                icon: 'none'
                            })
                        }
                        // uni.request({
                        //     url: this.serverUrl + '/WEBSController/set_SaveSellOutBackBill_Json',
                        //     method: 'POST',