廖井涛
2024-06-14 fd596adc9e93e777d2dec6dacf8003c4b8dbf960
提交中英文
56个文件已修改
1671 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/lang/en.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseBasicData.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseCreateBasicData.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseSearchBasicData.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/CreateIngredients.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/Ingredients.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/SelectIngredients.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/IngredientsStock.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/MaterialOutbound.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/ReturnToStorage.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/ReturnToStorageCreate.vue 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/StorageRecord.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/machine/SelectMachine.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProcess.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddBreakageReason.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddBreakageType.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddTeamGroup.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/ProductionBasicData.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/SelectProductionBasicData.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/OrderPlanDecomposition.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/QualityReport.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/RawMaterialRequisition.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/Report.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TaskCompletionStatus.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryPrinting.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/en.js
@@ -113,7 +113,6 @@
            updateAmountSuccessfully:'Updated amount successfully',
            updateOrderState:'Order status update succeeded',
        }
    },
    searchOrder:{
        createOrder:'Create',
@@ -158,6 +157,7 @@
        reset:'Reset',
        sure:'Sure',
    },
    workOrder:{
        workOrder:'Work Order Management',
        productionId:'Production Order Number',
@@ -221,7 +221,6 @@
        technologyNumber:'Chip Sequence',
        otherRemarks:'Original Film Requirement',
    },
    reportingWorks:{
        glassAddress:'Glass Address',
        WorkReportingManagement:'Work Reporting Management ',
@@ -294,12 +293,7 @@
        thisCompletedQuantity:'This Completed Quantity',
        thisWornQuantity:'This Worn Quantity',
        passAudit:'Pass The Audit',
    },
    productStock:{
        inventoryQuery:'Stock Inquiry',
@@ -321,7 +315,6 @@
        quantityToBeStockedIn:'Quantity To Be Stocked In',
        return:'Return',
        reverseReviewList:'Reverse Review List',
        receivedSuccessfully:'Successfully entered the warehouse',
        deliverySuccessful:"Successfully transferred out of warehouse ",
        successfullyRetrieved:'Successfully claimed',
@@ -330,7 +323,6 @@
        reviewSuccessful:'Successfully review ',
        invalidSuccessfully:'Successfully cancel',
        reverseReviewSuccessful:'Successfully re-audit',
        confirmWithdrawal:'Take Out Confirmation',
        pickingOutRecords:'Take Out Records',
        confirmTransfer:'Mutual Exchange Confirmation',
@@ -339,8 +331,6 @@
        reworkRecords:'Rework Records',
        warehousingRecords:'Warehousing Records',
        outboundRecords:'Outbound Records',
        pleaseSelectTheTypeOfWithdrawal:'Please select the type of withdrawal',
        pleaseSelectTheTypeOfRework:'Please select the type of rework',
        receivedQuantity:'Received Quantity',
@@ -349,14 +339,11 @@
        receivedReworkedQuantity:'Received/Reworked Quantity',
        inventoryQuantity:'Inventory Quantity',
        availableQuantity:'Available Quantity',
        newOrderNumber:'New Order Number',
        newOrderId:'New Order Id',
        transferOrderNumber:'Mutual Exchange Order Number',
        operationOrderNumber:'Operation Order Number',
        inventoryArea:'Inventory Location',
        dataVerificationFailed:'Fail data check',
        unselectedData:'No data selected',
        pleaseEnterAPositiveInteger:'Please enter a positive integer',
@@ -368,7 +355,6 @@
        claimedQuantityCannotBeEmptyOr0:'The claimed quantity cannot be empty or 0',
        theReworkQuantityCannotBeGreaterThanTheOrderQuantity:'The quantity of rework cannot be greater than the number of orders',
        reworkQuantityCannotBeEmptyOr0:'Rework quantity cannot be empty or 0',
        storageTime:'Warehouse Entry Time',
        outboundTime:'Time Of Leaving The Warehouse',
        modificationTime:'modification Time',
@@ -379,7 +365,6 @@
        reviewed:'Audit Staff',
        documentStatus:'Document Status',
        status:'Status',
        totalNumberOfOrders :'Total Number Of Orders',
        quantityAlreadyInStock:'Quantity Already In Stock',
        totalArea:'Total Area',
@@ -404,7 +389,6 @@
        customerHomePage:'Customer Homepage',
        increaseCustomers:'Increase Customers',
        resetting:'Revoke',
    },
    delivery:{
        delivery:'Delivery',
@@ -436,19 +420,14 @@
        deliveryNoteId:'Delivery Note Id',
        deliveryNoteNumber:'Delivery Note Number',
        deliveryDate:"Delivery Date ",
    },
    replenish:{
        patchManagement:'Patch Management',
        addPatches:"Add Patches ",
        printPatches:'Print Patches',
        patchNumber:'Patch Number',
        mark:'Mark',
        sliceMarking:'Slice Marking',
    },
    rework:{
        reworkManagement:'Rework Management',
@@ -460,7 +439,6 @@
        reworkProcess:'Rework Process',
        reworkType:'Rework Type',
        reworkArea:'Rework Area',
        PleaseSelectAReworkTeam:'Please select a rework team',
        TheReworkQuantityCannotBeGreaterThanTheSecondBreakQuantity:'The rework quantity cannot be greater than the second break quantity',
        reworkQuantityCannotBeEmptyOr0:'Rework quantity cannot be empty or 0',
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -55,6 +55,7 @@
        sizeReview:'尺寸审核',
        reportForms:'报表',
        print:'打印',
        export:'导出',
        msg:{
            max255:"最多输入255个字符",
            range99999Dec2:
@@ -65,14 +66,14 @@
            saveFail:'保存失败',
            cancelReviewSuccess:'反审成功',
            ReviewSuccess:'审核成功',
            ServerConnectionError:'服务器连接错误',
            deleteSuccess:'删除成功',
            deleteFail:'删除失败',
            cancelReviewFail:'反审失败',
            reviewFail:'审核失败',
            noProductDataInTheTable:'表格中无产品数据',
            tableDataExceedsMaximumLimit:'表格数据超过最大限制',
        }
    },
    product:{
@@ -137,10 +138,7 @@
           cancelReview:'反审',
           theProductHasBeenReviewedAndCannotBeDeleted:'产品已审核,无法删除',
       }
    },
    order:{
        orderHomePage:'订单首页',
        orderReport:'订单明细报表',
@@ -218,10 +216,12 @@
            importMaxCheckFailLast:'条,请分订单导入',
            updateAmountSuccessfully:'更新金额成功',
            updateOrderState:'更新订单状态成功',
            calculationAreaPrompt1:'存在',
            calculationAreaPrompt2:'条结算单片面积小于',
            calculationAreaPrompt3:'是否按照',
            calculationAreaPrompt4:'计算',
            warning:'提示',
        }
    },
@@ -248,7 +248,6 @@
        msgList:{
            checkOrder:'未查询到订单信息,请先单击订单'
        }
    },
    craft:{
        glassAddress:'标记',
@@ -366,7 +365,6 @@
        deleteNoProcedure:'删除失败,检查下工序是否已报工',
        pleaseCheckTheRequiredData:'请勾选需要的数据',
    },
    reportingWorks:{
        glassAddress:'片标记',
        WorkReportingManagement:'报工管理',
@@ -440,8 +438,7 @@
        thisWornQuantity:'本工序次破',
        passAudit:'审核通过',
        ThanEqualTo1:'请输入大于等于',
        ThanEqualTo2:'的数字',
        selectResponsibleTeam:'请选择责任班组',
        selectWorkReportingTeam:'请选择责任班组',
        successfulModificationOfWorkApplication:'报工修改成功',
@@ -452,12 +449,23 @@
        qualityInsTime:'质检时间',
        completedArea:'完工面积',
        wornArea:'次破面积',
        pleaseGreaterThanOrEqual1:'请输入大于等于',
        pleaseGreaterThanOrEqual2:'的数字',
        lossCount1:'损耗数',
        lossCount2:'不能大于',
        pleaseCheckTheOrderNumber1:'请检查订单序号',
        pleaseCheckTheOrderNumber2:'报工数量是否相同',
        pleaseNumber1:'序号',
        pleaseNumber2:'小片顺序',
        pleaseNumber3:'实际可报工数量',
        pleaseNumber4:'报工数量',
        pleaseNumber5:'请刷新界面重新报工',
        pleaseNumber6:'序号',
        pleaseNumber7:'的数量不能大于上工序数量',
        pleaseNumber8:'请输入序号',
        pleaseNumber9:'正确的完工或次破数量',
    },
    productStock:{
        inventoryQuery:'库存查询',
@@ -479,9 +487,6 @@
        quantityToBeStockedIn:'待入库数量',
        return:'返回',
        reverseReviewList:'反审列表',
        receivedSuccessfully:'入库成功',
        deliverySuccessful:"出库成功 ",
        successfullyRetrieved:'领出成功',
@@ -490,7 +495,6 @@
        reviewSuccessful:'审核成功',
        invalidSuccessfully:'返库成功',
        reverseReviewSuccessful:'反审成功',
        confirmWithdrawal:'确认领出',
        pickingOutRecords:'领出记录',
        confirmTransfer:'确认调拨',
@@ -499,8 +503,6 @@
        reworkRecords:'返工记录',
        warehousingRecords:'入库记录',
        outboundRecords:'出库记录',
        pleaseSelectTheTypeOfWithdrawal:'请选择领出类型',
        pleaseSelectTheTypeOfRework:'请选择返工类型',
        receivedQuantity:'领出数量',
@@ -509,14 +511,11 @@
        receivedReworkedQuantity:'领出/返工数量',
        inventoryQuantity:'库存数量',
        availableQuantity:'可用数量',
        newOrderNumber:'新订单序号',
        newOrderId:'新订单号',
        transferOrderNumber:'调拨单号',
        operationOrderNumber:'操作单号',
        inventoryArea:'库存区域',
        dataVerificationFailed:'数据校验失败',
        unselectedData:'未选中数据',
        pleaseEnterAPositiveInteger:'请输入正整数',
@@ -528,7 +527,6 @@
        claimedQuantityCannotBeEmptyOr0:'领出数量不能为空或者是0',
        theReworkQuantityCannotBeGreaterThanTheOrderQuantity:'返工数量不能大于订单数',
        reworkQuantityCannotBeEmptyOr0:'返工数量不能为空或者是0',
        storageTime:'入库时间',
        outboundTime:'出库时间',
        modificationTime:'修改时间',
@@ -539,13 +537,26 @@
        reviewed:'审核人',
        documentStatus:'单据状态',
        status:'状态',
        totalNumberOfOrders :'订单总数',
        quantityAlreadyInStock:'已入数量',
        totalArea:'总面积',
        singlePieceArea:'单片面积',
        perimeter:'周长',
        returnToWarehouse:'撤销',
        entryFailure:'入库失败',
        entry:'入库',
        failedToRetrieve:'领出失败',
        deliveryFailed:'发货失败',
        reworkFailed:'返工失败',
        transferFailed:'调拨失败',
        approved:'已审核',
        notPassed:'未通过',
        cancellationFailed:'反作废失败',
        voidFailed:'作废失败',
        staterOperationOrderNumber:'调拨销售单号',
        endOperationOrderNumber:'调拨序号',
        typeClaim:'领出类型',
    },
@@ -580,7 +591,6 @@
        unpaidQuantity:"未发数量 ",
        availableStock:'可用库存',
        deliveryQuantity:'发货数量',
        pleaseEnterTheAmountOfFunds:'请输入项目名称',
        pleaseSelectPaymentTerms:"请选择付款条件 ",
        pleaseEnterThePaymentMethod:"请输入收款方式 ",
@@ -589,7 +599,6 @@
        pleaseEnterANumericalValueGreaterThanOrEqualTo0:'请输入大于等于0的数值',
        theShipmentQuantityCannotBeGreaterThanTheInventoryQuantity:"发货数量不能大于库存数 ",
        theShipmentQuantityCannotBeEmptyOr0:"发货数量不能为空或者是0 ",
        paymentTerms:'付款条件',
        paymentDate:"收款日期 ",
        selectDate:'选择日期',
@@ -615,7 +624,6 @@
        addPatches:"补片新增 ",
        printPatches:'补片打印',
        patchNumber:'补片单号',
        mark:'标记',
        sliceMarking:'片标记',
@@ -630,12 +638,11 @@
        reworkProcess:'返工工序',
        reworkType:'返工类型',
        reworkArea:'返工面积',
        PleaseSelectAReworkTeam:'请选择返工班组',
        TheReworkQuantityCannotBeGreaterThanTheSecondBreakQuantity:'返工数量不能大于次破数量',
        reworkQuantityCannotBeEmptyOr0:'返工数量不能为空或者是0',
    },
    role:{
        id:'ID',
@@ -647,15 +654,11 @@
        permission:'权限',
        rolePermissions:'角色权限',
        permissionSelection:"权限选择 ",
        ConfirmModifyingRolePermissions:'确认修改角色权限?',
        PleaseEnterANewRole:'请输入新角色',
        AddANewRole:'新增角色',
        CannotBeEmptyAndTheLengthCannotExceed255:'不能为空且长度不能超过255',
    },
    user:{
        userId:'用户ID',
        userHomepage:'用户首页',
@@ -665,17 +668,13 @@
        OldPassword:'旧密码',
        TheNewPassword:'新密码',
        ConfirmPassword:'确认密码',
        OldPasswordCannotBeEmpty:'旧密码不能为空',
        TheNewPasswordCannotBeEmpty:'新密码不能为空',
        ThePasswordLengthCannotBeLessThan6OrMoreThan16:'密码长度不能低于6或超过16',
        ConfirmPasswordCannotBeEmpty:'确认密码不能为空',
        TheTwoPasswordsAreNotTheSame:'两次密码不相同',
        OldPasswordError:'旧密码错误',
    },
    orderBasicData:{
        order:'订单',
        orderType:'订单类型',
@@ -701,16 +700,13 @@
        paymentTerms:'付款条件',
        payMethod:'收款方式',
        delivery:'送货',
        basicType:'基础类型',
        name:'名称',
        glassCategory:'玻璃类别',
        level:'类别等级',
        firstLevel:'一级类别',
        towLevel:'二级类别',
    },
    machine:{
        basicId:'设备编号',
        basicName:'设备名称',
@@ -725,7 +721,6 @@
        process:'所在工序',
        personnel:'维修/保养人员',
        cost:'费用',
        equipmentSituation:'设备情况',
        equipmentAddition:'设备新增',
        maintenanceAndRepair:'保养与维修',
@@ -733,18 +728,134 @@
        maintenanceAndRepairEdit:'保养与维修编辑',
        service:'维修',
        maintain:'保养',
        faultCount:'维修次数',
        maintenanceCount:'保养次数',
        faultLastTime:'最后维修时间',
        maintenanceLastTime:'最后保养时间',
        faultCost:'维修费用',
        maintenanceCost:'保养费用',
        deviceEditing:'设备编辑',
        standardName:'标准名称',
        purchaseTime:'购买时间',
        installationTime:'安装时间',
        maintenanceCycle:'保养周期',
        cutting:'切割',
        edgeGrinding:'磨边',
        tempering:'钢化',
    },
    report:{
        productionReport:'生产报表',
        workInProgressReport:'在制品报表',
        processToBeCompleted:'工序待完成报表',
        productionAndShippingProgress:'生产发货进度报表',
        processCardProgress:'流程卡进度报表',
        orderPlanDecomposition:'订单计划分解报表',
        secondaryBrokenReport:'次破报表',
        crossProcessBreakdown:'跨工序次破报表',
        teamOutput:'班组产量报表',
        splittingDetails:'分架明细报表',
        TaskCompletionStatus:'任务完成情况报表',
        rawMaterialRequisition:'原片领料报表',
        qualityReport:'品质报表',
        yieldReport:'成品率报表',
        workingProcedure:'工序',
        inventoryArea:'库存面积',
        pleaseSelectADateFirst:'请先选择日期',
        pleaseSelectAProcessFirst:'请先选择工序',
        theFilteringTimeForExportCannotExceed180Days:'导出的筛选时间不能超过180天',
        orderTime :'下单时间',
        deliveryDate:'交货日期',
        completedQuantity:'已完成数量',
        completedArea:'已完成面积',
        unfinishedQuantity :'未完成数量',
        unfinishedArea:'未完成面积',
        inventoryNum:'入库数量',
        shippedQuantity :'发货数量',
        area:'发货面积',
        noDataFoundForThisOrder:'未查询到此订单数据',
        startTime:'切割开始时间',
        daysDifference :'生产天数',
        accomplish:'是否清单',
        receivedNo:'未入库数量',
        projectNo :'工程编号',
        quantityClaimed :'已领数量',
        areaClaimed :'已领面积',
        dateClaimed :'领出日期',
        quantityMax :'投入数量',
        patchNum :'补片数量',
        finished :'成品率',
        finishedProductReport :'成品报表',
    },
    productionBasicData:{
        basicDataQuery :'基础数据查询',
        newTypeOfSecondaryDamageAdded :'次破类型新增',
        reasonForSecondaryFailureAdded :'次破原因新增',
        teamAdditionAndAddition :'班组新增新增',
        id:'id',
        basicName:'类别',
        basicDataEdit:'基础数据修改',
        teamName:'班组名称',
        processInvolved:'所在工序',
    },
    mainIngredient:{
        materialInformation :'物料资料',
        materialAddition :'物料新增',
        originalFilm :'原片',
        accessories :'辅料',
        materialCode :'物料编码',
        pleaseSelectACategory :'请选择类别',
        films :'膜系',
        pleaseEnterData :'请输入数据',
        pleaseEnter :'请输入',
    },
    mainIngredientStock:{
        materialName :'物料名称',
        producer :'产地',
        dateOfManufacture :'生产日期',
        selectIngredientsStock :'物料库存',
        materialOutbound :'物料出库',
        returnToStorage :'返库',
        inventory :'库存',
        engineering :'工程',
        inventoryOrganization :'库存组织',
        id :'库存编号',
        projectNo :'工程号',
        planQuantity :'计划数量',
        qualityGuaranteePeriod :'保质期',
        pleaseSelectInventoryOrganization :'请选择库存组织',
        pleaseEnterTheQuantity :'请输入数量',
        pleaseDateOfManufacture :'请选择生产日期',
        materialOutboundId :'出库单号',
        materialRequisitionPersonnel :'领料员',
        materialRequisitionTeam :'领料班组',
        outboundType :'出库类型',
        warehouseManager :'仓管员',
        materialRequisitionDate :'领料日期',
        reviewed :'审核员',
        reviewedTime :'审核时间',
        outboundQuantity :'出库数量',
        materialOutboundType :'材料出库类型',
        pleaseOutboundType :'请选择出库类型',
        pleaseMaterialRequisitionPersonnel :'请输入领料员',
        pleaseMaterialRequisitionTeam :'请输入领料班组',
        pleaseOrderId :'请输入销售单号',
        theOutboundQuantityCannotBeGreaterThanTheAvailableQuantity :'出库数量不能大于可用数量',
        theOutboundQuantityCannotBeEmptyOrEqualTo0 :'出库数量不能为空或者是等于0',
        theReturnQuantityCannotBeEmptyOrEqualTo0 :'返库数量不能为空或者是等于0',
        returningId :'返库单号',
        returningType :'返库类型',
        returningAdd :'返库新增',
        returnQuantity :'返库数量',
        materialReturnType :'材料返库类型',
        createTime :'返库日期',
    },
    mainBasicData:{
        BasicData :'基础数据',
        operateTypeName :'名称',
        operateType :'别称',
        type :'类型',
        takeOut :'领出',
    }
}
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseBasicData.vue
@@ -20,7 +20,7 @@
  <div id="main-div">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/warehouseBasicData/warehouseSearchBasicData' }">基础数据</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/warehouseBasicData/warehouseSearchBasicData' }">{{$t('mainBasicData.BasicData')}}</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">{{$t('productStock.reportForms')}}</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseCreateBasicData.vue
@@ -15,16 +15,16 @@
  input:''
})
let options=ref([
  { label: "库存组织",
  { label: t('mainIngredientStock.inventoryOrganization'),
    value: "inventoryOrganization",
  },
  { label: "领出",
  { label: t('mainBasicData.takeOut'),
    value: "takeOut",
  },
  { label: "材料出库类型",
  { label: t('mainIngredientStock.materialOutboundType'),
    value: "outboundType",
  },
  { label: "材料返库类型",
  { label: t('mainIngredientStock.materialReturnType'),
    value: "returningType",
  },
])
@@ -46,27 +46,27 @@
const emit =  defineEmits(['gaveParent'])
const saveBasicData =  () =>{
  if (basic.value.operateType[0]==='inventoryOrganization'){
    basic.value.type='库存组织'
    basic.value.type=t('mainIngredientStock.inventoryOrganization')
  }
  else if(basic.value.operateType[0]==='takeOut'){
    basic.value.type='领出'
    basic.value.type=t('mainBasicData.takeOut')
  }
  else if(basic.value.operateType[0]==='outboundType'){
    basic.value.type='材料出库类型'
    basic.value.type=t('mainIngredientStock.materialOutboundType')
  }
  else if(basic.value.operateType[0]==='returningType'){
    basic.value.type='材料返库类型'
    basic.value.type=t('mainIngredientStock.materialReturnType')
  }
  if(basic.value.operateType[0]==='' || basic.value.input===''){
    return
  }
  request.post(`/BasicWarehouse/addBasicWarehouse`, basic.value).then(res => {
    if (res.data) {
      ElMessage.success('保存成功')
      ElMessage.success(t('basicData.msg.saveSuccess'))
      emit('gaveParent', true)
    }
  }).catch((err)=>{
    ElMessage.error('系统错误')
    ElMessage.error(t('basicData.msg.ServerConnectionError'))
    router.push("/login")
  })
}
@@ -76,15 +76,15 @@
  submitArr.type = basic.value.type
  submitArr.operateTypeName = basic.value.input
  if(basic.value.input===''){
    ElMessage.warning('请输入数据')
    ElMessage.warning(t('mainIngredient.pleaseEnterData'))
  }else{
    request.post(`/BasicWarehouse/updateBasicWarehouse`, submitArr).then(res => {
      if (res.data) {
        ElMessage.success('修改成功')
        ElMessage.success(t('basicData.msg.saveSuccess'))
        emit('gaveParent', true)
      }
    }).catch((err)=>{
      ElMessage.error('系统错误')
      ElMessage.error(t('basicData.msg.ServerConnectionError'))
      router.push("/login")
    })
  }
@@ -103,7 +103,7 @@
<template>
  <div>
    <el-row>
      <el-col :span="4">基础类型:</el-col>
      <el-col :span="4">{{$t('orderBasicData.basicType')}}:</el-col>
      <el-col :span="12">
        <el-cascader
            v-model="basic.operateType"
@@ -115,7 +115,7 @@
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="4">名称:</el-col>
      <el-col :span="4">{{$t('orderBasicData.name')}}:</el-col>
      <el-col :span="12">
        <el-input v-model="basic.input"/>
      </el-col>
@@ -123,8 +123,8 @@
    <el-row>
      <el-col :span="4"></el-col>
      <el-col :span="12">
        <el-button v-show="!props.rowIndex" @click="saveBasicData" type="primary">新增</el-button>
        <el-button v-show="props.rowIndex" @click="updateBasicData" type="primary">修改</el-button>
        <el-button v-show="!props.rowIndex" @click="saveBasicData" type="primary">{{$t('basicData.insert')}}</el-button>
        <el-button v-show="props.rowIndex" @click="updateBasicData" type="primary">{{$t('basicData.update')}}</el-button>
      </el-col>
    </el-row>
north-glass-erp/northglass-erp/src/views/mm/basicData/WarehouseSearchBasicData.vue
@@ -45,11 +45,11 @@
  //表头参数
  columns:[
    {title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",},
    {type: 'seq', title: '序号', width: 80 ,fixed:"left",},
    {field:'operateTypeName',title: '名称'},
    {field:'operateType',title: '别称'},
    {field:'type',title: '类型'},
    {field:'createTime',title: '创建日期'},
    {type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left",},
    {field:'operateTypeName',title: t('mainBasicData.operateTypeName')},
    {field:'operateType',title: t('mainBasicData.operateType')},
    {field:'type',title: t('mainBasicData.type')},
    {field:'createTime',title: t('basicData.creationTime')},
  ],
@@ -57,7 +57,7 @@
  //表头按钮
  toolbarConfig: {
    buttons: [
      {'code': 'add', 'name': '新增',status: 'primary'},
      {'code': 'add', 'name': t('basicData.insert'),status: 'primary'},
    ],
    // import: false,
@@ -144,7 +144,7 @@
          ElMessage.warning(t('searchOrder.msgDeleteFail'))
        }
      }).catch((err)=>{
        ElMessage.error('系统错误')
        ElMessage.error(t('basicData.msg.ServerConnectionError'))
        router.push("/login")
      })
      break
@@ -169,7 +169,7 @@
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('warehouseSearchBasicData.edit') > -1"
                   link type="primary" size="small">{{ $t('basicData.edit') }}</el-button>
        <el-popconfirm @confirm="getTableRow(row,'delete')" title="确定删除数据?">
        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
          <template #reference>
            <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
          </template>
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/CreateIngredients.vue
@@ -9,19 +9,20 @@
import  useUserInfo from "@/stores/userInfo"
import GlassType from "@/components/sd/product/GlassType.vue"
import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
import {useI18n} from "vue-i18n";
const { t } = useI18n()
const router = useRouter()
const route = useRoute()
const value = ref('')
const options = [
  {
    value: '原片',
    label: '原片'
    value: t('mainIngredient.originalFilm'),
    label: t('mainIngredient.originalFilm')
  },
  {
    value: '辅料',
    label: '辅料',
    value: t('mainIngredient.accessories'),
    label: t('mainIngredient.accessories'),
  }
]
@@ -85,7 +86,7 @@
    filterData[item.OperateType]=item.Type
    const customerName = item.Type
    if(customerName === null || customerName === undefined || customerName === ''){
      ElMessage.error('请输入'+item.OperateTypeName)
      ElMessage.error(t('mainIngredient.pleaseEnter')+item.OperateTypeName)
      isBool=false
      return
    }
@@ -100,7 +101,7 @@
  let materialStore
  if(value.value==='原片'){
  if(value.value===t('mainIngredient.originalFilm')){
     materialStore={
      id:ruleForm.value.id,
      type:value.value,
@@ -108,7 +109,7 @@
      width:BasicData.value[0].Type,
      height:BasicData.value[1].Type
    }
  }else if(value.value==='辅料'){
  }else if(value.value===t('mainIngredient.accessories')){
     materialStore={
      id:ruleForm.value.id,
      type:value.value,
@@ -121,12 +122,12 @@
    request.post("/MaterialStore/saveMaterialStore", materialStore).then((res) => {
      if(res.code==200 && res.data===true){
        resetForm()
        ElMessage.success('保存成功')
        ElMessage.success(t('basicData.msg.saveSuccess'))
      }else{
        ElMessage.warning("保存失败")
        ElMessage.warning(t('basicData.msg.saveFail'))
      }
    }).catch((err)=>{
      ElMessage.error('系统错误')
      ElMessage.error(t('basicData.msg.ServerConnectionError'))
      router.push("/login")
    })
  }
@@ -168,7 +169,7 @@
<div>
  <el-row>
  <el-col :span="4">
    <el-select v-model="value" placeholder="请选择类别" @change="getWork">
    <el-select v-model="value" :placeholder="$t('mainIngredient.pleaseSelectACategory')" @change="getWork">
      <el-option
          v-for="item in options"
          :key="item.value"
@@ -186,7 +187,7 @@
             v-for="item in BasicData" >
       <el-col :span="4.5" >
         {{item.OperateTypeName}}:
         <el-select filterable v-if="item.OperateTypeName=='膜系'" v-model="item.Type"  placeholder="请输入数据" style="width: 150px; height: 30px;" >
         <el-select filterable v-if="item.OperateTypeName==$t('mainIngredient.films')" v-model="item.Type"  :placeholder="$t('mainIngredient.pleaseEnterData')" style="width: 150px; height: 30px;" >
           <el-option
               v-for="item in titleSelectJson"
               :key="item.id"
@@ -194,7 +195,7 @@
               :value="item.basicName"
           />
         </el-select>
         <el-input v-else v-model="item.Type"  placeholder="请输入数据" style="width: 150px; height: 30px;" />
         <el-input v-else v-model="item.Type"  :placeholder="$t('mainIngredient.pleaseEnterData')" style="width: 150px; height: 30px;" />
       </el-col>
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/Ingredients.vue
@@ -26,9 +26,9 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredients/SelectIngredients' }">物料资料</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredients/CreateIngredients' }">物料新增</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredients/SelectIngredients' }">{{$t('mainIngredient.materialInformation')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredients/CreateIngredients' }">{{$t('mainIngredient.materialAddition')}}</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">{{$t('mainIngredient.materialAddition')}}</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/SelectIngredients.vue
@@ -27,14 +27,14 @@
      })
      request.post("/MaterialStore/deleteMaterialStore",flowData.value).then((res) => {
        if(res.code==200 && res.data===true){
          ElMessage.success("删除成功")
          ElMessage.success(t('basicData.msg.deleteSuccess'))
          router.push({path:'/main/ingredients/SelectIngredients',query:{random:Math.random()}})
        }else{
          ElMessage.warning("删除失败")
          ElMessage.warning(t('basicData.msg.deleteFail'))
          router.push("/login")
        }
      }).catch((err)=>{
        ElMessage.error('系统错误')
        ElMessage.error(t('basicData.msg.ServerConnectionError'))
        router.push("/login")
      })
      return
@@ -45,12 +45,12 @@
const value = ref('')
const options = [
  {
    value: '原片',
    label: '原片'
    value: t('mainIngredient.originalFilm'),
    label: t('mainIngredient.originalFilm')
  },
  {
    value: '辅料',
    label: '辅料',
    value: t('mainIngredient.accessories'),
    label: t('mainIngredient.accessories'),
  }
]
@@ -87,14 +87,14 @@
let arr = [
  {type:'expand',fixed:'left',slots: { content:'content' },width: '60'},
  {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:'left'},
  { type: 'seq',fixed:'left', title: '自序', width: '80' },
  {field: 'id', width: '150',title: '物料编码', sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
  {title: t('basicData.operate'), width: '110', slots: { default: 'button_slot' },fixed:'left'},
  { type: 'seq',fixed:'left', title: t('basicData.Number'), width: '80' },
  {field: 'id', width: '150',title: t('mainIngredient.materialCode'), sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
]
//第一次加载默认
value.value='原片'
filterData.value.type='原片'
value.value=t('mainIngredient.originalFilm')
filterData.value.type=t('mainIngredient.originalFilm')
request.get(`/BasicWarehouse/BasicWarehouseType/${value.value}`).then((res) => {
  if(res.code==200){
    gridOptions.columns.splice(0,gridOptions.columns.length)
@@ -276,7 +276,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        return ''
@@ -297,7 +297,7 @@
    <div>
      <el-row>
        <el-col :span="4">
          <el-select v-model="value" placeholder="请选择类别" @change="getWork">
          <el-select v-model="value" :placeholder="$t('mainIngredient.pleaseSelectACategory')" @change="getWork">
            <el-option
                v-for="item in options"
                :key="item.value"
@@ -332,8 +332,8 @@
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('SelectIngredients.edit') > -1"
                   link type="primary" size="small">编辑</el-button>
        <el-popconfirm @confirm="getTableRow(row,'delete')" title="确定删除?">
                   link type="primary" size="small">{{ $t('basicData.edit') }}</el-button>
        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
          <template #reference>
            <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
          </template>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue
@@ -86,24 +86,24 @@
let arr = [
  {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
  {field: 'select',type: 'checkbox',fixed:"left", title: '选择', width: '80' },
  { type: 'seq',fixed:"left", title: '自序', width: '80' },
  {field: 'inventoryOrganization', width:'150', title: '库存组织', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged },
  {field: 'materialCode', width: '150',title: '物料编码', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'producer', width: '100',title: '产地', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'projectNo', width: '100',title: '工程号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryQuantity',width: '100', title: '库存数量', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'availableQuantity', width: '100',title: '可用库存', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'outboundQuantity', width:'150', title: '出库数量', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'singlePieceArea', width: '100',title: '单片面积', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'dateOfManufacture',width: '100', title: '生产日期', sortable: true},
  {field: 'inventoryArea',width: '100', title: '库存区域', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'remarks',width: '80', title: '备注', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'select',type: 'checkbox',fixed:"left", title: t('basicData.check'), width: '80' },
  { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
  {field: 'inventoryOrganization', width:'150', title: t('mainIngredientStock.inventoryOrganization'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged },
  {field: 'materialCode', width: '150',title: t('mainIngredient.materialCode'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'producer', width: '100',title: t('mainIngredientStock.producer'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'projectNo', width: '100',title: t('mainIngredientStock.projectNo'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryQuantity',width: '100', title: t('productStock.inventoryQuantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'availableQuantity', width: '100',title: t('productStock.availableQuantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'outboundQuantity', width:'150', title: t('mainIngredientStock.outboundQuantity'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'singlePieceArea', width: '100',title: t('productStock.singlePieceArea'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'dateOfManufacture',width: '100', title: t('mainIngredientStock.dateOfManufacture'), sortable: true},
  {field: 'inventoryArea',width: '100', title: t('productStock.inventoryArea'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'remarks',width: '80', title: t('basicData.remarks'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
]
//页面第一次加载
request.get(`/BasicWarehouse/BasicWarehouseTypes/材料出库类型`).then((res) => {
request.get(`/BasicWarehouse/BasicWarehouseTypes/`+t('mainIngredientStock.materialOutboundType')).then((res) => {
  if(res.code==200){
@@ -121,7 +121,7 @@
//列查询
const getWork = () => {
  request.get(`/BasicWarehouse/BasicWarehouseType/原片|辅料`).then((res) => {
  request.get(`/BasicWarehouse/BasicWarehouseType/`+t('mainIngredient.originalFilm')+'|'+t('mainIngredient.accessories')).then((res) => {
    if(res.code==200){
      gridOptions.columns=[]
      BasicData.value = res.data
@@ -157,7 +157,7 @@
  const type = route.query.type
  if (typeof id !== 'undefined' && id !== null && id !== '' && id !== '\n' && id !== '\r'){
    if(type==='库存'){
    if(type===t('mainIngredientStock.inventory')){
      filterData.value.stockId=id
      number.value=id
      request.post("/MaterialInventory/getSelectMaterialInventory/1/100",filterData.value).then((res) => {
@@ -288,22 +288,22 @@
          //表头数据校验
          const outboundType = titleUploadData.value.outboundType
          if(outboundType === null || outboundType === undefined || outboundType === ''){
            ElMessage.error("请选择出库类型")
            ElMessage.error(t('mainIngredientStock.pleaseOutboundType'))
            return
          }
          const materialRequisitionPersonnel = titleUploadData.value.materialRequisitionPersonnel
          if(materialRequisitionPersonnel === null || materialRequisitionPersonnel === undefined || materialRequisitionPersonnel === ''){
            ElMessage.error("请输入领料员")
            ElMessage.error(t('mainIngredientStock.pleaseMaterialRequisitionPersonnel'))
            return
          }
          const materialRequisitionTeam = titleUploadData.value.materialRequisitionTeam
          if(materialRequisitionTeam === null || materialRequisitionTeam === undefined || materialRequisitionTeam === ''){
            ElMessage.error("请输入领料班组")
            ElMessage.error(t('mainIngredientStock.pleaseMaterialRequisitionTeam'))
            return
          }
          const orderId = titleUploadData.value.orderId
          if(orderId === null || orderId === undefined || orderId === ''){
            ElMessage.error("请输入销售单号")
            ElMessage.error(t('mainIngredientStock.pleaseOrderId'))
            return
          }
@@ -318,7 +318,7 @@
          })
          request.post("/MaterialInventory/saveMaterialOutbound", flowData.value).then((res) => {
            if(res.code==200){
              ElMessage.success('保存成功')
              ElMessage.success(t('basicData.msg.saveSuccess'))
              router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}})
            }else{
              ElMessage.warning(res.msg)
@@ -339,11 +339,11 @@
              ElMessage.success(t('basicData.msg.ReviewSuccess'))
              router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}})
            } else {
              ElMessage.warning("审核失败")
              ElMessage.warning(t('basicData.msg.reviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
          break
@@ -359,11 +359,11 @@
              ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
              router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}})
            } else {
              ElMessage.warning("反审失败")
              ElMessage.warning(t('basicData.msg.cancelReviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
          break
@@ -481,9 +481,9 @@
  outboundQuantity: [{
    validator (e) {
      if (e.row.outboundQuantity > e.row.availableQuantity) {
        return new Error("出库数量不能大于可用数量")
        return new Error(t('mainIngredientStock.theOutboundQuantityCannotBeGreaterThanTheAvailableQuantity'))
      }else if (e.row.outboundQuantity ==="") {
        return new Error("出库数量不能为空或者是等于0")
        return new Error(t('mainIngredientStock.theOutboundQuantityCannotBeEmptyOrEqualTo0'))
      }
      const regex = /^[1-9]\d*$/g
      if ( !regex.test(e.row.outboundQuantity) ) {
@@ -504,16 +504,16 @@
  <div class="main-div">
  <div class="order-primary" style="background-color: white">
    <el-row>
      <el-col  :span="2"><el-text>领料日期:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('mainIngredientStock.materialRequisitionDate')}}:</el-text></el-col>
      <el-col  :span="3"><el-input  v-model="titleUploadData.materialRequisitionDate" :readonly="true" ></el-input></el-col>
      <el-col  :span="2"><el-text>领料员:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('mainIngredientStock.materialRequisitionPersonnel')}}:</el-text></el-col>
      <el-col  :span="3"><el-input v-model="titleUploadData.materialRequisitionPersonnel" /></el-col>
      <el-col  :span="2"><el-text>领料班组:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('mainIngredientStock.materialRequisitionTeam')}}:</el-text></el-col>
      <el-col  :span="3"><el-input v-model="titleUploadData.materialRequisitionTeam" /></el-col>
    </el-row>
    <el-row>
      <el-col  :span="2"><el-text>出库类型:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('mainIngredientStock.outboundType')}}:</el-text></el-col>
      <el-col  :span="3">
        <el-select v-model="titleUploadData.outboundType"  clearable placeholder=""  >
          <el-option
@@ -524,9 +524,9 @@
          />
        </el-select>
      </el-col>
      <el-col  :span="2"><el-text>销售单号:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('order.orderId')}}:</el-text></el-col>
      <el-col  :span="3"><el-input v-model="titleUploadData.orderId" /></el-col>
      <el-col  :span="2"><el-text>仓管员:</el-text></el-col>
      <el-col  :span="2"><el-text>{{$t('mainIngredientStock.warehouseManager')}}:</el-text></el-col>
      <el-col  :span="3"><el-input v-model="titleUploadData.warehouseManager" :readonly="true" /></el-col>
    </el-row>
@@ -557,8 +557,8 @@
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">{{$t('basicData.delete')}}</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/IngredientsStock.vue
@@ -26,12 +26,12 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredientsStock/SelectIngredientsStock' }">物料库存</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredientsStock/MaterialOutbound' }">物料出库</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/ingredientsStock/SelectIngredientsStock' }">{{$t('mainIngredientStock.selectIngredientsStock')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/ingredientsStock/MaterialOutbound' }">{{$t('mainIngredientStock.materialOutbound')}}</el-breadcrumb-item>
<!--        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/ingredientsStock/OriginalMonthlySettlement' }">原片月结</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/ingredientsStock/AccessoriesMonthlySettlement' }">辅料月结</el-breadcrumb-item>-->
        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/ingredientsStock/ReturnToStorage' }">返库</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/ingredientsStock/ReturnToStorage' }">{{$t('mainIngredientStock.returnToStorage')}}</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">{{$t('mainIngredientStock.returnToStorage')}}</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/MaterialOutbound.vue
@@ -33,11 +33,11 @@
          ElMessage.success(t('searchOrder.msgDeleteSuccess'))
          router.push({path:'/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}})
        }else{
          ElMessage.warning("删除失败")
          ElMessage.warning(t('basicData.msg.deleteSuccess'))
          router.push("/login")
        }
      }).catch((err)=>{
        ElMessage.error('系统错误')
        ElMessage.error(t('basicData.msg.ServerConnectionError'))
        router.push("/login")
      })
@@ -197,19 +197,19 @@
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {field: 'reviewedState',title: '审核', width: 50, slots: { default: 'state' },},
    {field: 'materialOutboundId', width:'150', title: '出库单号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionPersonnel', width: '150',title: '领料员', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionTeam', width: '120',title: '领料班组', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderId', width:'150', title: '销售单号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'outboundType', width: '100',title: '出库类型', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'warehouseManager',width: '100', title: '仓管员', sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionDate', width: '80',title: '领料日期', sortable: true},
    {field: 'reviewed',width: '100', title: '审核员', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewedTime', width: '100',title: '审核时间', sortable: true},
    {field: 'createTime',width: '100', title: '创建时间', sortable: true},
    {title:  t('basicData.operate'), width: '110', slots: { default: 'button_slot' },fixed:"left"},
    { type: 'seq',fixed:"left", title:  t('basicData.Number'), width: '80' },
    {field: 'reviewedState',title: t('basicData.review'), width: 50, slots: { default: 'state' },},
    {field: 'materialOutboundId', width:'150', title: t('mainIngredientStock.materialOutboundId'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionPersonnel', width: '150',title: t('mainIngredientStock.materialRequisitionPersonnel'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionTeam', width: '120',title: t('mainIngredientStock.materialRequisitionTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderId', width:'150', title: t('order.orderId'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'outboundType', width: '100',title: t('mainIngredientStock.outboundType'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'warehouseManager',width: '100', title: t('mainIngredientStock.warehouseManager'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionDate', width: '80',title: t('mainIngredientStock.materialRequisitionDate'), sortable: true},
    {field: 'reviewed',width: '100', title: t('mainIngredientStock.reviewed'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewedTime', width: '100',title: t('mainIngredientStock.reviewedTime'), sortable: true},
    {field: 'createTime',width: '100', title: t('basicData.creationTime'), sortable: true},
  ],//表头按钮
  toolbarConfig: {
@@ -223,7 +223,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
@@ -248,13 +248,13 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
    />
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">查询</el-button>
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{$t('basicData.search')}}</el-button>
    <vxe-grid
        max-height="100%"
@@ -279,7 +279,7 @@
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('MaterialOutbound.edit') > -1"
                   link type="primary" size="small">编辑</el-button>
                   link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
<!--        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>-->
      </template>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/ReturnToStorage.vue
@@ -202,23 +202,23 @@
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {field: 'reviewedState',title: '审核', width: 50, slots: { default: 'state' },},
    {field: 'returningId', width:'150', title: '返库单号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionPersonnel', width: '150',title: '领料员/供应商', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionTeam', width: '120',title: '领料班组/供应商', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderId', width:'150', title: '销售单号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'project', width:'150', title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'batch', width:'150', title: '批次', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'returningType', width: '100',title: '返库类型', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'warehouseManager',width: '100', title: '仓管员', sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewed',width: '100', title: '审核员', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewedTime', width: '100',title: '审核时间', sortable: true},
    {field: 'createTime',width: '100', title: '制单日期', sortable: true},
    { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
    {field: 'reviewedState',title: t('basicData.review'), width: 50, slots: { default: 'state' },},
    {field: 'returningId', width:'150', title: t('mainIngredientStock.returningId'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionPersonnel', width: '150',title:  t('mainIngredientStock.materialRequisitionPersonnel'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialRequisitionTeam', width: '120',title:  t('mainIngredientStock.materialRequisitionTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderId', width:'150', title: t('order.orderId'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'project', width:'150', title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'batch', width:'150', title: t('order.batch'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'returningType', width: '100',title: t('mainIngredientStock.returningType'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'warehouseManager',width: '100', title: t('mainIngredientStock.warehouseManager'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewed',width: '100', title:t('mainIngredientStock.reviewed'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewedTime', width: '100',title: t('mainIngredientStock.reviewedTime'), sortable: true},
    {field: 'createTime',width: '100', title: t('basicData.creationTime'), sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [
      {'code': 'add', 'name': '返库新增',status: 'primary'},
      {'code': 'add', 'name': t('mainIngredientStock.returningAdd'),status: 'primary'},
    ],
    /*import: false,
    export: true,
@@ -230,7 +230,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
@@ -251,13 +251,13 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
    />
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">查询</el-button>
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{$t('basicData.search')}}</el-button>
    <vxe-grid
        max-height="100%"
@@ -282,7 +282,7 @@
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('ReturnToStorage.edit') > -1"
                   link type="primary" size="small">编辑</el-button>
                   link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
<!--        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>-->
      </template>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/ReturnToStorageCreate.vue
@@ -70,35 +70,35 @@
const value = ref('')
const options = [
  {
    value: '原片',
    label: '原片'
    value: t('mainIngredient.originalFilm'),
    label: t('mainIngredient.originalFilm')
  },
  {
    value: '辅料',
    label: '辅料',
    value: t('mainIngredient.accessories'),
    label: t('mainIngredient.accessories'),
  }
]
let arr = [
  {field: 'select',type: 'checkbox',fixed:"left", title: '选择', width: '80' },
  { type: 'seq',fixed:"left", title: '自序', width: '80' },
  {field: 'returnQuantity', width:'150', title: '返库数量', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'dateOfManufacture', width:'150', title: '生产日期', sortable: true,editRender: {name: 'input', attrs: {placeholder: '', type: 'date'}},},
  {field: 'select',type: 'checkbox',fixed:"left", title: t('basicData.check'), width: '80' },
  { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
  {field: 'returnQuantity', width:'150', title: t('mainIngredientStock.returnQuantity'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'dateOfManufacture', width:'150', title: t('mainIngredientStock.dateOfManufacture'), sortable: true,editRender: {name: 'input', attrs: {placeholder: '', type: 'date'}},},
  {field: 'inventoryOrganization', width:'150', title: '库存组织', sortable: true,folding: true,slots: { edit: 'inventoryOrganization'},editRender: { name: '$select', attrs: { placeholder: '' } }},
  {field: 'producer', width:'150', title: '产地', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'qualityGuaranteePeriod', width:'150', title: '保质期', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'inventoryArea', width:'150', title: '库存区域',sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'inventoryOrganization', width:'150', title: t('mainIngredientStock.inventoryOrganization'), sortable: true,folding: true,slots: { edit: 'inventoryOrganization'},editRender: { name: '$select', attrs: { placeholder: '' } }},
  {field: 'producer', width:'150', title: t('mainIngredientStock.producer'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'qualityGuaranteePeriod', width:'150', title: t('mainIngredientStock.qualityGuaranteePeriod'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'inventoryArea', width:'150', title: t('productStock.inventoryArea'),sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'remarks',width: '80', title: '备注', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'id', width: '150',title: '物料编码', sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
  {field: 'remarks',width: '80', title: t('basicData.remarks'), sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  {field: 'id', width: '150',title: t('mainIngredient.materialCode'), sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
]
//页面第一次加载
request.get(`/BasicWarehouse/BasicWarehouseTypes/库存组织|材料返库类型`).then((res) => {
request.get(`/BasicWarehouse/BasicWarehouseTypes/`+t('mainIngredientStock.inventoryOrganization')+'|'+t('mainIngredientStock.materialReturnType')).then((res) => {
  if(res.code==200){
    titleSelectJson.value=deepClone(res.data)
@@ -132,7 +132,7 @@
      if(res.code==200){
        titleUploadData.value=deepClone(res.data.returningWarehouse)
        //根据审核状态显示审核按钮或者是反审按钮
        value.value='原片|辅料'
        value.value=t('mainIngredient.originalFilm')+'|'+t('mainIngredient.accessories')
        getStoreWork()
        if(titleUploadData.value.reviewedState!==0){
          gridOptions.toolbarConfig.buttons[1].disabled = true
@@ -179,7 +179,7 @@
        //显示复选框
        xGrid.value.showColumn("select")
        value.value='原片'
        value.value=t('mainIngredient.originalFilm')
        getStoreWork()
        getStoreWorks()
@@ -198,7 +198,7 @@
//库存组织
const getInventoryOrganization=()=>{
  //页面第一次加载
  request.get(`/BasicWarehouse/BasicWarehouseTypes/库存组织|材料返库类型`).then((res) => {
  request.get(`/BasicWarehouse/BasicWarehouseTypes//`+t('mainIngredientStock.inventoryOrganization')+'|'+t('mainIngredientStock.materialReturnType')).then((res) => {
    if(res.code==200){
      titleSelectJson.value=deepClone(res.data)
@@ -260,11 +260,11 @@
        materialStore.value[i].json=(JSON.parse(res.data.data[i].json))
      }
      if(value.value==='原片'){
      if(value.value===t('mainIngredient.originalFilm')){
        materialStore.value.forEach(item => {
          item['inventoryOrganization'] = titleSelectJson.value["inventoryOrganization"][0].operateTypeName
        })
      }else if(value.value==='辅料'){
      }else if(value.value===t('mainIngredient.accessories')){
        materialStore.value.forEach(item => {
          item['inventoryOrganization'] = titleSelectJson.value["inventoryOrganization"][1].operateTypeName
        })
@@ -308,27 +308,27 @@
          }
          const materialRequisitionPersonnel = titleUploadData.value.materialRequisitionPersonnel
          if(materialRequisitionPersonnel === null || materialRequisitionPersonnel === undefined || materialRequisitionPersonnel === ''){
            ElMessage.error("请输入领料员")
            ElMessage.error(t('mainIngredientStock.materialRequisitionPersonnel'))
            return
          }
          const materialRequisitionTeam = titleUploadData.value.materialRequisitionTeam
          if(materialRequisitionTeam === null || materialRequisitionTeam === undefined || materialRequisitionTeam === ''){
            ElMessage.error("请输入领料班组")
            ElMessage.error(t('mainIngredientStock.materialRequisitionTeam'))
            return
          }
          const orderId = titleUploadData.value.orderId
          if(orderId === null || orderId === undefined || orderId === ''){
            ElMessage.error("请输入销售单号")
            ElMessage.error(t('order.orderId'))
            return
          }
          const project = titleUploadData.value.project
          if(project === null || project === undefined || project === ''){
            ElMessage.error("请输入项目名称")
            ElMessage.error(t('order.project'))
            return
          }
          const batch = titleUploadData.value.batch
          if(batch === null || batch === undefined || batch === ''){
            ElMessage.error("请输入批次")
            ElMessage.error(t('order.batch'))
            return
          }
@@ -343,14 +343,14 @@
          })
          request.post("/MaterialInventory/saveReturningWarehouse", flowData.value).then((res) => {
            if(res.code==200 && res.data===true){
              ElMessage.success('保存成功')
              ElMessage.success(t('basicData.msg.saveSuccess'))
              router.push({path: '/main/ingredientsStock/ReturnToStorage', query:{random:Math.random()}})
            }else{
              ElMessage.warning("保存失败")
              ElMessage.warning(t('basicData.msg.saveFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
          break
@@ -367,11 +367,11 @@
              ElMessage.success(t('basicData.msg.ReviewSuccess'))
              router.push({path: '/main/ingredientsStock/ReturnToStorage', query:{random:Math.random()}})
            } else {
              ElMessage.warning("审核失败")
              ElMessage.warning(t('basicData.msg.reviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
          break
@@ -387,11 +387,11 @@
              ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
              router.push({path: '/main/ingredientsStock/ReturnToStorage', query:{random:Math.random()}})
            } else {
              ElMessage.warning("反审失败")
              ElMessage.warning(t('basicData.msg.cancelReviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
          break
@@ -487,7 +487,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
@@ -504,7 +504,7 @@
  returnQuantity: [{
    validator (e) {
     if (e.row.returnQuantity ==="") {
        return new Error("返库数量不能为空或者是等于0")
        return new Error(t('mainIngredientStock.theReturnQuantityCannotBeEmptyOrEqualTo0'))
      }
      const regex = /^[1-9]\d*$/g
      if ( !regex.test(e.row.returnQuantity) ) {
@@ -524,17 +524,17 @@
    <div class="order-primary" style="background-color: white">
      <el-row>
        <el-col  :span="2"><el-text>返库日期:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('mainIngredientStock.createTime')}}:</el-text></el-col>
        <el-col  :span="3"><el-input  v-model="titleUploadData.createTime" :readonly="true" ></el-input></el-col>
        <el-col  :span="2"><el-text>领料员/供应商:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('mainIngredientStock.materialRequisitionPersonnel')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.materialRequisitionPersonnel" /></el-col>
        <el-col  :span="2"><el-text>领料班组/供应商:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('mainIngredientStock.materialRequisitionTeam')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.materialRequisitionTeam" /></el-col>
        <el-col  :span="2"><el-text>仓管员:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('mainIngredientStock.warehouseManager')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.warehouseManager" :readonly="true" /></el-col>
      </el-row>
      <el-row>
        <el-col  :span="2"><el-text>返库类型:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('mainIngredientStock.returningType')}}:</el-text></el-col>
        <el-col  :span="3">
          <el-select v-model="titleUploadData.returningType"  clearable placeholder=""  >
            <el-option
@@ -545,11 +545,11 @@
            />
          </el-select>
        </el-col>
        <el-col  :span="2"><el-text>销售单号:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('order.orderId')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.orderId" /></el-col>
        <el-col  :span="2"><el-text>项目名称:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('order.project')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.project" /></el-col>
        <el-col  :span="2"><el-text>批次:</el-text></el-col>
        <el-col  :span="2"><el-text>{{$t('order.batch')}}:</el-text></el-col>
        <el-col  :span="3"><el-input v-model="titleUploadData.batch" /></el-col>
@@ -557,7 +557,7 @@
      <el-row>
        <el-select v-model="value" placeholder="请选择类别" @change="getWork" style="margin-top: 10px;border: #181818 1px solid;">
        <el-select v-model="value" :placeholder="$t('mainIngredient.pleaseSelectACategory')" @change="getWork" style="margin-top: 10px;border: #181818 1px solid;">
          <el-option
              v-for="item in options"
              :key="item.value"
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue
@@ -62,12 +62,12 @@
const values = ref('')
const selectOptions = [
  {
    value: '库存',
    label: '库存'
    value: t('mainIngredientStock.inventory'),
    label: t('mainIngredientStock.inventory')
  },
  {
    value: '工程',
    label: '工程',
    value: t('mainIngredientStock.engineering'),
    label: t('mainIngredientStock.engineering'),
  }
]
@@ -78,31 +78,31 @@
let arr = [
  { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
  { type: 'seq',fixed:"left", title: '自序', width: '80' },
  {field: 'inventoryOrganization', width:'150', title: '库存组织', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged },
  {field: 'materialCode', width: '150',title: '物料编码', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'producer', width: '100',title: '产地', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'id',width: '100', title: '库存编号', sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'projectNo',width: '100', title: '工程号', sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  { type: 'checkbox',fixed:"left", title: t('basicData.check'), width: '80' },
  { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
  {field: 'inventoryOrganization', width:'150', title: t('mainIngredientStock.inventoryOrganization'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged },
  {field: 'materialCode', width: '150',title: t('mainIngredient.materialCode'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'producer', width: '100',title: t('mainIngredientStock.producer'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'id',width: '100', title: t('mainIngredientStock.id'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'projectNo',width: '100', title: t('mainIngredientStock.projectNo'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  //{field: 'safetyStock', width: '100',title: '安全库存', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryQuantity',width: '100', title: '库存数量', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'availableQuantity', width: '100',title: '可用库存', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'planQuantity', width: '100',title: '计划数量', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'totalArea',width: '100', title: '总面积', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'dateOfManufacture',width: '100', title: '生产日期', sortable: true},
  {field: 'qualityGuaranteePeriod',width: '100', title: '保质期', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryArea',width: '100', title: '库存区域', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryQuantity',width: '100', title: t('productStock.inventoryQuantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'availableQuantity', width: '100',title: t('productStock.availableQuantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'planQuantity', width: '100',title: t('mainIngredientStock.planQuantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'totalArea',width: '100', title: t('order.grossArea'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'dateOfManufacture',width: '100', title: t('mainIngredientStock.dateOfManufacture'), sortable: true},
  {field: 'qualityGuaranteePeriod',width: '100', title: t('mainIngredientStock.qualityGuaranteePeriod'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'inventoryArea',width: '100', title: t('productStock.inventoryArea'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  //{field: 'deadStock',width: '100', title: '积压库存', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'createTime',width: '100', title: '入库时间', sortable: true},
  {field: 'remarks',width: '80', title: '备注', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
  {field: 'createTime',width: '100', title: t('productStock.storageTime'), sortable: true},
  {field: 'remarks',width: '80', title: t('basicData.remarks'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
]
request.get(`/BasicWarehouse/BasicWarehouseType/原片|辅料`).then((res) => {
request.get(`/BasicWarehouse/BasicWarehouseType/`+t('mainIngredient.originalFilm')+'|'+t('mainIngredient.accessories')).then((res) => {
  if(res.code==200){
    gridOptions.columns.splice(0,gridOptions.columns.length)
    BasicData.value = res.data
@@ -114,7 +114,7 @@
      gridOptions.columns.push(aa)
    }
    values.value='库存'
    values.value=t('mainIngredientStock.inventory')
    getInventoryWorks()
  }else{
@@ -175,7 +175,7 @@
}
const selectInventoryWork = () => {
  if(values.value==='库存'){
  if(values.value===t('mainIngredientStock.inventory')){
    getInventoryWorks()
  }else{
    getInventoryEngineeringWork()
@@ -213,7 +213,7 @@
const selectOrderList = ()=>{
  request.get(`/BasicWarehouse/BasicWarehouseType/原片|辅料`).then((res) => {
  request.get(`/BasicWarehouse/BasicWarehouseType/`+t('mainIngredient.originalFilm')+'|'+t('mainIngredient.accessories')).then((res) => {
    if(res.code==200){
      gridOptions.columns.splice(0,gridOptions.columns.length)
      BasicData.value = res.data
@@ -226,7 +226,7 @@
        gridOptions.columns.push(aa)
      }
      if(values.value==='库存'){
      if(values.value===t('mainIngredientStock.inventory')){
        getInventoryWorkPaging()
      }else{
        getInventoryEngineeringWork()
@@ -286,8 +286,8 @@
  ],//表头按钮
  toolbarConfig: {
    buttons: [
      {'code': 'out', 'name': '物料出库',status: 'primary'},
      {'code': 'add', 'name': '物料新增',status: 'primary'},
      {'code': 'out', 'name': t('mainIngredientStock.materialOutbound'),status: 'primary'},
      {'code': 'add', 'name': t('mainIngredient.materialAddition'),status: 'primary'},
    ],
    /*import: false,
    export: true,
@@ -299,7 +299,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
@@ -327,7 +327,7 @@
          }
          let id = ""
          const array = [];
          if (values.value==='库存'){
          if (values.value===t('mainIngredientStock.inventory')){
            for (let i = 0; i < selectRecords.length; i++) {
              array.push(selectRecords[i].id)
              if (i + 1 === selectRecords.length) {
@@ -359,8 +359,8 @@
          dialogTableVisible.value=true
          select()
          //第一次加载默认
          value.value='原片'
          filterData.value.type='原片'
          value.value=t('mainIngredient.originalFilm')
          filterData.value.type=t('mainIngredient.originalFilm')
          request.get(`/BasicWarehouse/BasicWarehouseType/${value.value}`).then((res) => {
            if(res.code==200){
              gridOption.columns.splice(0,gridOption.columns.length)
@@ -392,20 +392,20 @@
let arrs = [
  { type: 'radio',fixed:"left", title: '选择', width: '80' },
  { type: 'seq',fixed:'left', title: '自序', width: '80' },
  {field: 'id', width: '150',title: '物料编码', sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
  { type: 'radio',fixed:"left", title: t('basicData.check'), width: '80' },
  { type: 'seq',fixed:'left', title: t('basicData.Number'), width: '80' },
  {field: 'id', width: '150',title: t('mainIngredient.materialCode'), sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
]
const value = ref('')
const options = [
  {
    value: '原片',
    label: '原片'
    value: t('mainIngredient.originalFilm'),
    label: t('mainIngredient.originalFilm')
  },
  {
    value: '辅料',
    label: '辅料',
    value: t('mainIngredient.accessories'),
    label: t('mainIngredient.accessories'),
  }
]
@@ -476,7 +476,7 @@
})
const select=() =>{
  request.get(`/BasicWarehouse/BasicWarehouseTypes/库存组织`).then((res) => {
  request.get(`/BasicWarehouse/BasicWarehouseTypes/`+t('mainIngredientStock.inventoryOrganization')).then((res) => {
    if(res.code==200){
      titleSelectJson.value=deepClone(res.data)
@@ -559,12 +559,12 @@
          //表头数据校验
          const outboundType = titleUploadData.value.inventoryOrganization
          if(outboundType === null || outboundType === undefined || outboundType === ''){
            ElMessage.error("请选择库存组织")
            ElMessage.error(t('mainIngredientStock.pleaseSelectInventoryOrganization'))
            return
          }
          const materialRequisitionPersonnel = titleUploadData.value.inventoryQuantity
          if(materialRequisitionPersonnel === null || materialRequisitionPersonnel === undefined || materialRequisitionPersonnel === ''){
            ElMessage.error("请输入数量")
            ElMessage.error(t('mainIngredientStock.pleaseEnterTheQuantity'))
            return
          }
          const  dateOfManufacture= titleUploadData.value.dateOfManufacture
@@ -589,7 +589,7 @@
          request.post("/MaterialInventory/saveMaterialInventory", flowData.value).then((res) => {
            if(res.code==200){
              ElMessage.success('保存成功')
              ElMessage.success(t('basicData.msg.saveSuccess'))
              router.push({path: '/main/ingredientsStock/SelectIngredientsStock', query:{random:Math.random()}})
            }else{
              ElMessage.warning(res.msg)
@@ -613,16 +613,16 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
    />
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">查询</el-button>
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{$t('basicData.search')}}</el-button>
    <div>
      <el-row>
        <el-select v-model="values" placeholder="请选择类别" @change="selectInventoryWork">
        <el-select v-model="values" :placeholder="$t('mainIngredient.pleaseSelectACategory')" @change="selectInventoryWork">
          <el-option
              v-for="item in selectOptions"
              :key="item.value"
@@ -656,8 +656,8 @@
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')"
                   link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
                   link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">{{$t('basicData.delete')}}</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
@@ -684,27 +684,27 @@
    </vxe-grid>
    <el-dialog v-model="dialogTableVisible" title="物料新增" style="width: 70%;height:75% ">
    <el-dialog v-model="dialogTableVisible" :title="$t('mainIngredient.materialAddition')" style="width: 70%;height:75% ">
      <div class="order-primary" >
        <el-row>
          <el-col  :span="2"><el-text>生产日期:</el-text></el-col>
          <el-col  :span="2"><el-text>{{$t('mainIngredientStock.dateOfManufacture')}}:</el-text></el-col>
          <el-col  :span="4">
            <el-date-picker
                v-model="titleUploadData.dateOfManufacture"
                type="date"
                format="YYYY-MM-DD"
                value-format="YYYY-MM-DD"
                placeholder="请选择生产日期"/>
                :placeholder="$t('mainIngredientStock.pleaseDateOfManufacture')"/>
          </el-col>
          <el-col  :span="2"><el-text>保质期:</el-text></el-col>
          <el-col  :span="2"><el-text>{{$t('mainIngredientStock.qualityGuaranteePeriod')}}:</el-text></el-col>
          <el-col  :span="3"><el-input v-model="titleUploadData.qualityGuaranteePeriod" /></el-col>
          <el-col  :span="1"><el-text>产地:</el-text></el-col>
          <el-col  :span="1"><el-text>{{$t('mainIngredientStock.producer')}}:</el-text></el-col>
          <el-col  :span="3"><el-input v-model="titleUploadData.producer" /></el-col>
        </el-row>
        <el-row>
          <el-col  :span="2"><el-text>库存组织:</el-text></el-col>
          <el-col  :span="2"><el-text>{{$t('mainIngredientStock.inventoryOrganization')}}:</el-text></el-col>
          <el-col  :span="4">
            <el-select v-model="titleUploadData.inventoryOrganization"  clearable placeholder=""  >
              <el-option
@@ -715,18 +715,18 @@
              />
            </el-select>
          </el-col>
          <el-col  :span="2"><el-text>库存区域:</el-text></el-col>
          <el-col  :span="2"><el-text>{{$t('productStock.inventoryArea')}}:</el-text></el-col>
          <el-col  :span="3"><el-input v-model="titleUploadData.inventoryArea" /></el-col>
          <el-col  :span="1"><el-text>数量:</el-text></el-col>
          <el-col  :span="1"><el-text>{{$t('order.quantity')}}:</el-text></el-col>
          <el-col  :span="3"><el-input v-model="titleUploadData.inventoryQuantity" /></el-col>
          <el-col  :span="1"><el-text>备注:</el-text></el-col>
          <el-col  :span="1"><el-text>{{$t('basicData.remarks')}}:</el-text></el-col>
          <el-col  :span="3"><el-input v-model="titleUploadData.remarks" /></el-col>
        </el-row>
      </div>
      <div>
        <el-row>
            <el-select v-model="value" placeholder="请选择类别" @change="getStoreWork">
            <el-select v-model="value" :placeholder="$t('mainIngredientStock.pleaseSelectACategory')" @change="getStoreWork">
              <el-option
                  v-for="item in options"
                  :key="item.value"
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -279,7 +279,7 @@
                  ElMessage.success(t('productStock.receivedSuccessfully'))
                  router.push({path:'/main/productStock/CreateProductStock',query:{random:Math.random()}})
                }else{
                  ElMessage.warning("入库失败")
                  ElMessage.warning(t('productStock.entryFailure'))
                  router.push("/login")
                }
              })
@@ -289,7 +289,7 @@
        }
        case 'jump': {
          router.push({path: '/main/productStock/storageRecord', query: { storageType: '入库' }})
          router.push({path: '/main/productStock/storageRecord', query: { storageType: t('productStock.entry') }})
          return;
        }
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
@@ -71,11 +71,11 @@
              ElMessage.success(t('productStock.successfullyRetrieved'))
              router.push({path:'/main/productStock/FinishedGoodsIssue',query:{random:Math.random()}})
            }else{
              ElMessage.warning("领出失败")
              ElMessage.warning(t('productStock.failedToRetrieve'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -290,11 +290,11 @@
                ElMessage.success(t('productStock.deliverySuccessful'))
                router.push({path: '/main/productStock/FinishedProductOut', query: {random: Math.random()}})
              } else {
                ElMessage.warning("发货失败")
                ElMessage.warning(t('productStock.deliveryFailed'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
@@ -304,7 +304,7 @@
        }
        case 'jump': {
          router.push({path: '/main/productStock/storageRecord', query: {storageType: '出库'}})
          router.push({path: '/main/productStock/storageRecord', query: {storageType: t('productStock.outbound')}})
          return;
        }
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue
@@ -70,11 +70,11 @@
              ElMessage.success(t('productStock.reworkSuccessful'))
              router.push({path:'/main/productStock/FinishedProductRework',query:{random:Math.random()}})
            } else {
              ElMessage.warning("返工失败")
              ElMessage.warning(t('productStock.reworkFailed'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error('系统错误')
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
            router.push("/login")
          })
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue
@@ -286,11 +286,11 @@
                ElMessage.success(t('productStock.transferSuccessful'))
                router.push({path:'/main/productStock/OrderAllocation',query:{random:Math.random()}})
              } else {
                ElMessage.warning("调拨失败")
                ElMessage.warning(t('productStock.transferFailed'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue
@@ -265,11 +265,11 @@
                router.push({path:'/main/productStock/ReworkRecord',query:{random:Math.random()}})
              }else{
                ElMessage.warning("反审失败")
                ElMessage.warning(t('basicData.msg.cancelReviewFail'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
          }
@@ -289,7 +289,7 @@
const checkBoxConfig = {
  checkMethod: ({ row }) => {
    if (row['status']==='已审核'||row['status']==='未通过'){
    if (row['status']===t('productStock.approved')||row['status']===t('productStock.notPassed')){
      return !row.disable
    }else{
      return row.disable
@@ -308,8 +308,8 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/StorageRecord.vue
@@ -284,11 +284,11 @@
                router.push({path:'/main/productStock/storageRecord',query:{random:Math.random(),storageType: type.value}})
              }else{
                ElMessage.warning("反作废失败")
                ElMessage.warning(t('productStock.cancellationFailed'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
          }
@@ -308,7 +308,7 @@
const checkBoxConfig = {
  checkMethod: ({ row }) => {
    if (row['status']==='已审核'||row['status']==='未通过'){
    if (row['status']===t('productStock.approved')||row['status']===t('productStock.notPassed')){
      return row.disable
    }else{
      return !row.disable
@@ -327,8 +327,8 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue
@@ -277,11 +277,11 @@
                router.push({path:'/main/productStock/TakeOutRecord',query:{random:Math.random()}})
              }else{
                ElMessage.warning("审核失败")
                ElMessage.warning(t('basicData.msg.reviewFail'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
          }
@@ -315,11 +315,11 @@
                router.push({path:'/main/productStock/TakeOutRecord',query:{random:Math.random()}})
              }else{
                ElMessage.warning("作废失败")
                ElMessage.warning(t('productStock.voidFailed'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
          }
@@ -336,7 +336,7 @@
const checkBoxConfig = {
  checkMethod: ({ row }) => {
    if (row['status']==='已审核'||row['status']==='未通过'){
    if (row['status']===t('productStock.approved')||row['status']===t('productStock.notPassed')){
      return row.disable
    }else{
      return !row.disable
@@ -355,8 +355,8 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue
@@ -256,11 +256,11 @@
                router.push({path:'/main/productStock/TransferRecord',query:{random:Math.random()}})
              }else{
                ElMessage.warning("反审失败")
                ElMessage.warning(t('basicData.msg.cancelReviewFail'))
                router.push("/login")
              }
            }).catch((err)=>{
              ElMessage.error('系统错误')
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
            })
          }
@@ -286,8 +286,8 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
@@ -24,7 +24,7 @@
                              :to="{path:'/main/stockReport/WarehouseReport'}">原材料报表
          </el-breadcrumb-item>-->
          <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''"
                              :to="{path:'/main/stockReport/StockWarehouseReport'}">成品报表
                              :to="{path:'/main/stockReport/StockWarehouseReport'}">{{$t('report.finishedProductReport')}}
          </el-breadcrumb-item>
<!--          <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
                              :to="{path:'/main/stockReport/StockMonthReport'}">原片月结报表
north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue
@@ -20,12 +20,12 @@
    {field: 'orderDetail.productName',width: '140', title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'staterOperationOrderNumber', width: '150',title: '调拨销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'endOperationOrderNumber', width: '100',title: '调拨序号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'staterOperationOrderNumber', width: '150',title: t('productStock.staterOperationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'endOperationOrderNumber', width: '100',title: t('productStock.endOperationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operator', width: '100',title: t('productStock.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operateTime', width:'140', title: t('productStock.productionDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'processId', width:'140', title: '流程卡号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'type', width:'140', title: '领出类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'processId', width:'140', title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'type', width:'140', title: t('productStock.领出类型'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewed', width: '100',title: t('productStock.reviewed'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reviewedTime', width: '140',title: t('productStock.approvedDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'remarks', width: '140',title: t('productStock.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
@@ -34,7 +34,7 @@
  data:[],//表格数据
  url :'/FinishedGoodsInventory/getSelectFinishedOperateLogReport',
  exportUrl :'/FinishedGoodsInventory/exportFinishedOperateLogReport',
  exportName:'成品报表',
  exportName:t('report.finishedProductReport'),
  footList:['quantity']
})
north-glass-erp/northglass-erp/src/views/pp/machine/SelectMachine.vue
@@ -163,15 +163,15 @@
    </vxe-grid>
    <el-dialog v-model="dialogFormVisible" title="设备编辑">
    <el-dialog v-model="dialogFormVisible" :title="$t('machine.deviceEditing')">
      <el-form :model="form">
        <el-form-item label="标准名称" :label-width="formLabelWidth">
        <el-form-item :label="$t('machine.standardName')" :label-width="formLabelWidth">
          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
        </el-form-item>
        <el-form-item label="设备名称" :label-width="formLabelWidth">
        <el-form-item :label="$t('machine.basicName')" :label-width="formLabelWidth">
          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
        </el-form-item>
        <el-form-item label="购买时间" :label-width="formLabelWidth">
        <el-form-item :label="$t('machine.purchaseTime')" :label-width="formLabelWidth">
          <el-date-picker
              v-model="value1"
              type="date"
@@ -179,7 +179,7 @@
              :size="size"
          />
        </el-form-item>
        <el-form-item label="安装时间" :label-width="formLabelWidth">
        <el-form-item :label="$t('machine.installationTime')" :label-width="formLabelWidth">
          <el-date-picker
              v-model="value1"
              type="date"
@@ -187,22 +187,22 @@
              :size="size"
          />
        </el-form-item>
        <el-form-item label="保养周期" :label-width="formLabelWidth">
        <el-form-item :label="$t('machine.maintenanceCycle')" :label-width="formLabelWidth">
          <el-input v-model="form.name"  autocomplete="off"  style="width: 220px"/>
        </el-form-item>
        <el-form-item label="所在工艺" :label-width="formLabelWidth">
          <el-select v-model="form.region" placeholder="钢化" style="width: 220px">
            <el-option label="切割" value="shanghai" />
            <el-option label="磨边" value="mobian" />
            <el-option label="钢化" value="ganghua" />
        <el-form-item :label="$t('machine.standardName')" :label-width="formLabelWidth">
          <el-select v-model="form.region" :placeholder="$t('machine.tempering')" style="width: 220px">
            <el-option :label="$t('machine.cutting')" value="shanghai" />
            <el-option :label="$t('machine.edgeGrinding')" value="mobian" />
            <el-option :label="$t('machine.tempering')" value="ganghua" />
          </el-select>
        </el-form-item>
      </el-form>
      <template #footer>
      <span class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取消</el-button>
        <el-button @click="dialogFormVisible = false">{{$t('basicData.cancelButtonText')}}</el-button>
        <el-button type="primary" @click="dialogFormVisible = false">
          确认
          {{$t('basicData.confirmButtonText')}}
        </el-button>
      </span>
      </template>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProcess.vue
@@ -338,7 +338,6 @@
}
#printFlowCard {
  margin-top: -40px;
  text-align: center;
//font-weight: bolder; height: 600px;
}
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddBreakageReason.vue
@@ -50,10 +50,10 @@
    showStatus: true
  },//表头参数
  columns:[
    { type: 'seq',fixed:"left", title: '自序', width: 50 },
    { type: 'seq',fixed:"left", title: t('basicData.Number'), width: 50 },
    {
      field: 'basicName',
      title: '次破原因',
      title: t('reportingWorks.breakageReason'),
      width: 1000,
      editRender: {name: 'input', attrs: {placeholder: ''}},
@@ -64,7 +64,7 @@
    buttons: [
      {code: 'removeRow', name: t('basicData.delete'), status: 'primary', icon: 'vxe-icon-delete'},
      {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'},
      {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'},
      {code: 'save', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save'},
    ],
    // import: false,
    // export: true,
@@ -81,7 +81,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return sumNum(data, column.field)
@@ -116,7 +116,7 @@
          })
          request.post("/basicDataProduce/saveBreakageReason", breakageTypeData.value).then((res) => {
            if (res.code == 200) {
              ElMessage.success("保存成功")
              ElMessage.success(t('basicData.msg.saveSuccess'))
              router.push({
                path: '/main/productionBasicData/AddBreakageReason',
                query: {random: Math.random()}
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddBreakageType.vue
@@ -49,11 +49,11 @@
    showStatus: true
  },//表头参数
  columns:[
    { type: 'seq',fixed:"left", title: '自序', width: 50 },
    { type: 'seq',fixed:"left", title: t('basicData.Number'), width: 50 },
    {
      field: 'basicName',
      title: '次破类型',
      title: t('reportingWorks.breakageType'),
      width: 1000,
      editRender: {name: 'input', attrs: {placeholder: ''}},
@@ -64,7 +64,7 @@
    buttons: [
      {code: 'removeRow', name: t('basicData.delete'), status: 'primary', icon: 'vxe-icon-delete'},
      {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'},
      {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'},
      {code: 'save', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save'},
    ],
    // import: false,
    // export: true,
@@ -81,7 +81,7 @@
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return sumNum(data, column.field)
@@ -117,7 +117,7 @@
          })
          request.post("/basicDataProduce/saveBreakageType", breakageTypeData.value).then((res) => {
            if (res.code == 200) {
              ElMessage.success("保存成功")
              ElMessage.success(t('basicData.msg.saveSuccess'))
              router.push({
                path: '/main/productionBasicData/AddBreakageType',
                query: {random: Math.random()}
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddTeamGroup.vue
@@ -65,17 +65,17 @@
    showStatus: true
  },//表头参数
  columns: [
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'basicName',
      title: '班组名称',
      title: t('productionBasicData.teamName'),
      width: 600,
      editRender: {name: 'input', attrs: {placeholder: ''}},
    },
    {
      field: 'basicCategory',
      title: '所在工序',
      title: t('productionBasicData.processInvolved'),
      editRender: {},
      slots: {default: 'basicCategory_default', edit: 'basicCategory'}
    },
@@ -85,7 +85,7 @@
    buttons: [
      {code: 'removeRow', name: t('basicData.delete'), status: 'primary', icon: 'vxe-icon-delete'},
      {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'},
      {code: 'save', name: '保存', status: 'primary', icon: 'vxe-icon-save'},
      {code: 'save', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save'},
    ],
    // import: false,
    // export: true,
@@ -100,7 +100,7 @@
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return sumNum(data, column.field)
@@ -136,7 +136,7 @@
          })
          request.post("/basicDataProduce/saveTeamGroup", teamGroupData.value).then((res) => {
            if (res.code == 200) {
              ElMessage.success("保存成功")
              ElMessage.success(t('basicData.msg.saveSuccess'))
              //router.push('/main/processCard/SplittingDetails?orderId=${orderId}')
              router.push({
                path: '/main/productionBasicData/AddTeamGroup',
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/ProductionBasicData.vue
@@ -19,12 +19,12 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productionBasicData/SelectProductionBasicData' }">基础数据查询</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageType' }">次破类型新增</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageReason' }">次破原因新增</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddTeamGroup' }">班组新增新增</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productionBasicData/SelectProductionBasicData' }">{{$t('productionBasicData.basicDataQuery')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageType' }">{{$t('productionBasicData.newTypeOfSecondaryDamageAdded')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productionBasicData/AddBreakageReason' }">{{$t('productionBasicData.reasonForSecondaryFailureAdded')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddTeamGroup' }">{{$t('productionBasicData.teamAdditionAndAddition')}}</el-breadcrumb-item>
<!--        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddMaintenanceAndRepair' }">班组人员新增新增</el-breadcrumb-item>-->
        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">打印</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/processCard/SelectPrintFlowCard' }" style="display: none">{{$t('basicData.print')}}</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/SelectProductionBasicData.vue
@@ -126,11 +126,11 @@
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
    {title: '操作', width: 140, slots: { default: 'button_slot' },fixed:"left"},
    {field: 'id', width: 60, title: 'id',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged,},
    {field: 'basic_type',width: 370, title: '类型', showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'basic_name', width: 330,title: '名称', filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'd_basic_name',width: 330, title: '类别'},
    {title: t('basicData.operate'), width: 140, slots: { default: 'button_slot' },fixed:"left"},
    {field: 'id', width: 60, title: t('productionBasicData.id'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged,},
    {field: 'basic_type',width: 370, title: t('machine.type'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'basic_name', width: 330,title: t('orderBasicData.name'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'd_basic_name',width: 330, title: t('productionBasicData.basicName')},
  ],
  //表头按钮
  toolbarConfig: {
@@ -233,10 +233,10 @@
    </vxe-grid>
    <el-dialog v-model="dialogTableVisible" title="基础数据修改">
    <el-dialog v-model="dialogTableVisible" :title="$t('productionBasicData.basicDataEdit')">
      <el-row>
        <el-col :span="2">
          <el-text>id:</el-text>
          <el-text>{{$t('productionBasicData.id')}}:</el-text>
        </el-col>
        <el-col :span="3">
          <el-input v-model="getBasicData.id"  readonly autocomplete="off"  style="width: 220px"/>
@@ -244,7 +244,7 @@
      </el-row>
      <el-row>
        <el-col :span="2">
          <el-text>类型:</el-text>
          <el-text>{{$t('machine.type')}}:</el-text>
        </el-col>
        <el-col :span="3">
          <el-input v-model="getBasicData.basic_type" readonly  autocomplete="off"  style="width: 220px"/>
@@ -252,7 +252,7 @@
      </el-row>
      <el-row>
        <el-col :span="2">
          <el-text>名称:</el-text>
          <el-text>{{$t('orderBasicData.name')}}:</el-text>
        </el-col>
        <el-col :span="3">
          <el-input v-model="getBasicData.basic_name"  autocomplete="off"  style="width: 220px"/>
@@ -260,7 +260,7 @@
      </el-row>
      <el-row>
        <el-col :span="2">
          <el-text>类别:</el-text>
          <el-text>{{$t('productionBasicData.basicName')}}:</el-text>
        </el-col>
        <el-col :span="3">
<!--          <el-input v-model="getBasicData.d_basic_name"  autocomplete="off"  style="width: 220px"/>-->
@@ -278,9 +278,9 @@
      <template #footer>
      <span class="dialog-footer">
        <el-button @click="dialogTableVisible = false">取消</el-button>
        <el-button @click="dialogTableVisible = false">{{$t('basicData.cancelButtonText')}}</el-button>
        <el-button type="primary" @click="updateBasic">
          修改
          {{$t('basicData.update')}}
        </el-button>
      </span>
      </template>
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
@@ -2,27 +2,28 @@
import BasicTable from "@/components/BasicTable.vue"
import request from "@/utils/request"
import { ref} from "vue"
import {useI18n} from "vue-i18n";
const {t} = useI18n()
const childrenData = ref({
  columns:[
    {type:'expand',fixed:"left",width: 80},
    {type: 'seq',fixed:"left", title: '自序', width: 80 },
    {field: 'reportingWork.reportingWorkTime', width: 120, title: '报工时间',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
    {field: 'reportingWork.thisProcess',width: 120, title: '报工工序', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleProcess',width: 120, title: '责任工序', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleTeam', width: 130,title: '责任班组', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageType', width: 100,title: '次破类型', sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageReason', width: 100,title: '次破原因', sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageQuantity', width: 100,title: '次破数量', sortable: true},
    {field: 'area',width: 100, title: '次破面积', sortable: true},
    {field: 'order.project', width: 120,title: '项目名称', sortable: true},
    {field: 'order.orderId',width: 120, title: '销售单号', sortable: true},
    {field: 'orderGlassDetail.glassChild',width: 120, title: '单片名称', sortable: true},
    {field: 'reportingWork.reportingWorkTime', width: 120, title: t('reportingWorks.reportingWorkTime'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
    {field: 'reportingWork.thisProcess',width: 120, title: t('reportingWorks.reportingProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleProcess',width: 120, title: t('reportingWorks.responsibleProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleTeam', width: 130,title: t('reportingWorks.responsibleTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageType', width: 100,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true},
    {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true},
    {field: 'order.project', width: 120,title: t('order.project'), sortable: true},
    {field: 'order.orderId',width: 120, title: t('order.orderId'), sortable: true},
    {field: 'orderGlassDetail.glassChild',width: 120, title: t('reportingWorks.glassChild'), sortable: true},
  ],//表格表头字段
  data:[],//表格数据
  url :'/report/crossProcessBreaking',
  exportUrl :'/report/exportCrossProcessBreaking',
  exportName:'跨工序次破报表',
  exportName:t('report.crossProcessBreakdown'),
  footList:['breakageQuantity','area']
})
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
@@ -20,7 +20,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -214,42 +214,42 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'orderId', width: 120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'orderId', width: 120, title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'project',
      width: 120,
      title: '项目名称',
      title: t('order.project'),
      showOverflow: "ellipsis",
      filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'processId', width: 130, title: '流程卡号', filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'processId', width: 130, title: t('processCard.processId'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'orderNumber', width: 120, title: '订单序号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'orderNumber', width: 120, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'technologyNumber', width: 100, title: '小片顺序', filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'technologyNumber', width: 100, title: t('processCard.technologyNumber'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'reportingWorkTime',
      width: 100,
      title: '报工时间',
      title: t('reportingWorks.reportingWorkTime'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
    },
    {field: 'responsibleProcess', width: 120, title: '责任工序',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis"},
    {field: 'responsibleTeam', width: 100, title: '责任班组',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleEquipment', width: 120, title: '责任设备',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageType', width: 120, title: '次破类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageReason', width: 120, title: '次破原因',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageQuantity', width: 120, title: '次破数量'},
    {field: 'area', width: 120, title: '次破面积'},
    {field: 'personnel', width: 120, title: '责任人员'},
    {field: 'glassChild', width: 120, title: '单片名称'},
    {field: 'responsibleProcess', width: 120, title: t('reportingWorks.responsibleProcess'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis"},
    {field: 'responsibleTeam', width: 100, title: t('reportingWorks.responsibleTeam'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleEquipment', width: 120, title: t('reportingWorks.responsibleEquipment'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageType', width: 120, title: t('reportingWorks.breakageType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageReason', width: 120, title: t('reportingWorks.breakageReason'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageQuantity', width: 120, title: t('reportingWorks.quantityBroken')},
    {field: 'area', width: 120, title: t('reportingWorks.wornArea')},
    {field: 'personnel', width: 120, title: t('reportingWorks.responsiblePersonnel')},
    {field: 'glassChild', width: 120, title: t('reportingWorks.glassChild')},
  ],//表头按钮
  toolbarConfig: {
@@ -287,15 +287,15 @@
      <el-row :gutter="0">
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -321,9 +321,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportDamageReport',
                                          '次破明细报表',
                                          t('report.secondaryBrokenReport'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/report/OrderPlanDecomposition.vue
@@ -21,7 +21,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -201,16 +201,16 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'order_id', width: 120, title: '销售单号', filters: [{data: ''}],
      field: 'order_id', width: 120, title: t('order.orderId'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name',
      width: 120,
      title: '客户名称',
      title: t('customer.customerName'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
@@ -219,40 +219,40 @@
    {
      field: 'project',
      width: 120,
      title: '项目名称',
      title: t('order.project'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'batch', width: 130, title: '批次', filters: [{data: ''}],
      field: 'batch', width: 130, title: t('order.batch'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'quantity', width: 120, title: '订单数量', filters: [{data: ''}],
      field: 'quantity', width: 120, title: t('order.quantity'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'area', width: 100, title: '订单面积', filters: [{data: ''}],
      field: 'area', width: 100, title: t('order.area'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'create_time',
      width: 100,
      title: '分架时间',
      title: t('processCard.splitFrameTime'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
    },
    {field: 'startTime', width: 120, title: '切割开始时间', showOverflow: "ellipsis"},
    {field: 'completionsNum', width: 100, title: '完工数量'},
    {field: 'received_quantity', width: 120, title: '入库数量'},
    {field: 'receivedNo', width: 120, title: '未入库数量'},
    {field: 'accomplish', width: 120, title: '是否清单'},
    {field: 'daysDifference', width: 120, title: '生产天数'},
    {field: 'startTime', width: 120, title: t('report.startTime'), showOverflow: "ellipsis"},
    {field: 'completionsNum', width: 100, title: t('reportingWorks.completedQuantity')},
    {field: 'received_quantity', width: 120, title: t('report.inventoryNum')},
    {field: 'receivedNo', width: 120, title: t('report.receivedNo')},
    {field: 'accomplish', width: 120, title: t('report.accomplish')},
    {field: 'daysDifference', width: 120, title: t('report.daysDifference')},
  ],//表头按钮
  toolbarConfig: {
@@ -296,15 +296,15 @@
      <el-row :gutter="0">
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -327,10 +327,10 @@
      </template>
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportOrderPlanDecomposition',
                                          '订单计划分解报表',
                    @click="exportExcel('/report/orderPlanDecomposition',
                                          t('report.orderPlanDecomposition'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -48,17 +48,17 @@
})
const columns = [
  // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'product_name', width: 150, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'glass_child',width: 130, title: '单片名称' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'order_type', width: 120,title: '订单类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'process_id',width: 110, title: '流程卡号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'order_number', width: 90,title: '订单序号',showOverflow:"ellipsis"},
  {field: 'technology_number', width: 90,title: '小片顺序',showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: '数量'},
  {field: 'broken_num',width: 90, title: '次破数量'},
  {field: 'shippedQuantity',width: 120, title: '发货数量'},
  {field: 'inventory',width: 120, title: '入库数量'},
  {field: 'inventoryArea',width: 120, title: '入库面积'},
  {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'glass_child',width: 130, title:  t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'order_number', width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
  {field: 'technology_number', width: 90,title: t('processCard.technologyNumber'),showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
  {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  {field: 'inventory',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
]
//需要合并的列
let column = [1,3,8]
@@ -67,7 +67,7 @@
  request.post(`/report/processCardProgress/${form.orderId}`,column).then((res) => {
    if (res.code == 200) {
      if(res.data.data.length===0){
        ElMessage.warning('未查询到此订单流程卡数据')
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue
@@ -20,7 +20,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -223,51 +223,51 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {field: 'create_time', width: 120, title: '下单时间'},
    {field: 'delivery_date', width: 120, title: '交货日期'},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {field: 'create_time', width: 120, title:  t('report.orderTime')},
    {field: 'delivery_date', width: 120, title:  t('report.deliveryDate')},
    {
      field: 'order_id', width: 120, title: '销售单号', filters: [{data: ''}],
      field: 'order_id', width: 120, title: t('order.orderId'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'process_id',
      width: 120,
      title: '流程卡号',
      title: t('processCard.processId'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name', width: 130, title: '客户名称', filters: [{data: ''}],
      field: 'customer_name', width: 130, title: t('customer.customerName'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'project', width: 120, title: '项目名称', filters: [{data: ''}],
      field: 'project', width: 120, title: t('order.project'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'batch', width: 100, title: '批次', filters: [{data: ''}],
      field: 'batch', width: 100, title: t('order.batch'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'order_number', width: 100, title: '序号'},
    {field: 'technology_number', width: 120, title: '小片顺序', showOverflow: "ellipsis"},
    {field: 'glass_child', width: 100, title: '单片名称'},
    {field: 'child_width', width: 120, title: '宽'},
    {field: 'child_height', width: 120, title: '高'},
    {field: 'quantity', width: 120, title: '订单数量'},
    {field: 'childArea', width: 120, title: '单片面积'},
    {field: 'actualArea', width: 120, title: '实际面积'},
    {field: 'completeNum', width: 120, title: '已完成数量'},
    {field: 'completeArea', width: 120, title: '已完成面积'},
    {field: 'incompleteNum', width: 120, title: '未完成数量'},
    {field: 'incompleteArea', width: 120, title: '未完成面积'},
    {field: 'product_name', width: 120, title: '成品名称'},
    {field: 'order_number', width: 100, title: t('order.OrderNum')},
    {field: 'technology_number', width: 120, title: t('processCard.technologyNumber'), showOverflow: "ellipsis"},
    {field: 'glass_child', width: 100, title: t('reportingWorks.glassChild')},
    {field: 'child_width', width: 120, title: t('order.width')},
    {field: 'child_height', width: 120, title: t('order.height')},
    {field: 'quantity', width: 120, title: t('order.quantity')},
    {field: 'childArea', width: 120, title: t('order.trueArea')},
    {field: 'actualArea', width: 120, title: t('order.trueGrossArea')},
    {field: 'completeNum', width: 120, title: t('report.completedQuantity')},
    {field: 'completeArea', width: 120, title: t('report.completedArea')},
    {field: 'incompleteNum', width: 120, title: t('report.unfinishedQuantity')},
    {field: 'incompleteArea', width: 120, title: t('report.unfinishedArea')},
    {field: 'product_name', width: 120, title: t('order.product')},
  ],//表头按钮
  toolbarConfig: {
@@ -312,12 +312,12 @@
    inputProject = null
  }
  if(date===null){
    ElMessage.warning("请先选择日期")
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
  }
  if(processes===null){
    ElMessage.warning("请先选择工序")
    ElMessage.warning(t('report.pleaseSelectAProcessFirst'))
    return
  }
@@ -326,7 +326,7 @@
  const timeDiff = Math.abs(date2.getTime() - date1.getTime());
  const daysDiff = timeDiff / (1000 * 3600 * 24);
  if(Math.floor(daysDiff)>180){
    ElMessage.warning("导出的筛选时间不能超过180天")
    ElMessage.warning(t('report.theFilteringTimeForExportCannotExceed180Days'))
    return
  }
   let dataMp = ref({
@@ -364,9 +364,9 @@
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
@@ -374,7 +374,7 @@
        &nbsp;&nbsp;
        <el-input v-model="form.orderId" :placeholder="$t('order.orderId')" clearable style="width: 130px"></el-input>
        &nbsp;&nbsp;
        <el-input v-model="form.project" clearable placeholder="项目名称" style="width: 130px"></el-input>
        <el-input v-model="form.project" clearable :placeholder="$t('order.project')" style="width: 130px"></el-input>
        &nbsp;
        <el-select v-model="value" clearable default-value="default_city" style="width: 120px">
          <el-option
@@ -384,7 +384,7 @@
              :value="item.basic_name"
          />
        </el-select>
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -408,17 +408,17 @@
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button link size="small" type="primary" @click="getTableRow(row,'edit')">编辑</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'setType')">反审</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'delete')">删除</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'edit')">{{$t('basicData.edit')}}</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'setType')">{{$t('basicData.cancelReview')}}</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'delete')">{{$t('basicData.delete')}}</el-button>
      </template>
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportProcessToBeCompleted',
                                          '工序待完成报表',
                                          t('report.processToBeCompleted'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -57,18 +57,18 @@
})
const columns = [
  {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'order_number', width: 150, title: '订单序号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'shape',width: 130, title: '形状' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'product_name', width: 120,title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_width',width: 110, title: '宽',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_height', width: 90,title: '高',showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: '数量'},
  {field: 'technology_number',width: 90, title: '小片顺序'},
  {field: 'glass_child',width: 120, title: '单片名称'},
  {field: 'inventoryNum',width: 120, title: '入库数量'},
  {field: 'inventoryArea',width: 120, title: '入库面积'},
  {field: 'shippedQuantity',width: 120, title: '发货数量'},
  {field: 'area',width: 120, title: '发货面积'},
  {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_width',width: 110, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')},
  {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')},
  {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
  {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  {field: 'area',width: 120, title: t('report.area')},
]
//需要合并的列
let column = [1,2,3]
@@ -77,7 +77,7 @@
  request.post(`/report/productionSchedule/${form.orderId}`,column).then((res) => {
    if (res.code == 200) {
      if(res.data.data.length===0){
        ElMessage.warning('未查询到此订单数据')
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
north-glass-erp/northglass-erp/src/views/pp/report/QualityReport.vue
@@ -22,7 +22,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -202,16 +202,16 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'order_id', width: 120, title: '销售单号', filters: [{data: ''}],
      field: 'order_id', width: 120, title: t('order.orderId'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name',
      width: 120,
      title: '客户名称',
      title: t('customer.customerName'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
@@ -220,39 +220,39 @@
    {
      field: 'project',
      width: 120,
      title: '项目名称',
      title: t('order.project'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'order_number', width: 130, title: '订单序号', filters: [{data: ''}],
      field: 'order_number', width: 130, title: t('order.OrderNum'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'technology_number', width: 120, title: '小片顺序', filters: [{data: ''}],
      field: 'technology_number', width: 120, title: t('processCard.technologyNumber'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'product_name', width: 100, title: '产品名称', filters: [{data: ''}],
      field: 'product_name', width: 100, title: t('order.product'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'quantity',
      width: 100,
      title: '订单数量',
      title:  t('order.quantity'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
    },
    {field: 'quantityMax', width: 120, title: '投入数量', showOverflow: "ellipsis"},
    {field: 'breakage_quantity', width: 100, title: '次破数量'},
    {field: 'patch_num', width: 120, title: '补片数量'},
    {field: 'received_quantity', width: 120, title: '入库数量'},
    {field: 'finished', width: 120, title: '成品率'},
    {field: 'quantityMax', width: 120, title: t('report.quantityMax'), showOverflow: "ellipsis"},
    {field: 'breakage_quantity', width: 100, title: t('reportingWorks.quantityBroken')},
    {field: 'patch_num', width: 120, title:  t('reportingWorks.quantityBroken')},
    {field: 'received_quantity', width: 120, title: t('report.patchNum')},
    {field: 'finished', width: 120, title: t('report.finished')},
  ],//表头按钮
  toolbarConfig: {
@@ -293,15 +293,15 @@
      <el-row :gutter="0">
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -326,9 +326,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportQualityReport',
                                          '品质报表',
                                          t('report.qualityReport'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/report/RawMaterialRequisition.vue
@@ -22,7 +22,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -202,38 +202,38 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'project_no',
      width: 120,
      title: '工程编号',
      title: t('report.projectNo'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'material_name', width: 120, title: '物料名称', filters: [{data: ''}],
      field: 'material_name', width: 120, title: t('mainIngredient.materialName'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'producer',title: '原片产地', filters: [{data: ''}],
      field: 'producer',title: t('mainIngredient.producer'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'width',
      title: '宽',
      title: t('order.width'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
    },
    {field: 'height',  title: '高', showOverflow: "ellipsis"},
    {field: 'quantity', title: '已领数量'},
    {field: 'area', title: '已领面积'},
    {field: 'date_of_manufacture',  title: '原片生产日期'},
    {field: 'date',  title: '领出日期'},
    {field: 'height',  title: t('order.height'), showOverflow: "ellipsis"},
    {field: 'quantity', title: t('report.quantityClaimed')},
    {field: 'area', title: t('report.areaClaimed')},
    {field: 'date_of_manufacture',  title: t('mainIngredient.dateOfManufacture')},
    {field: 'date',  title: t('report.dateClaimed')},
  ],//表头按钮
  toolbarConfig: {
@@ -274,15 +274,15 @@
      <el-row :gutter="0">
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -316,9 +316,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportRawMaterialRequisition',
                                          '原片领料报表',
                                          t('report.rawMaterialRequisition'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
    </vxe-grid>
north-glass-erp/northglass-erp/src/views/pp/report/Report.vue
@@ -45,12 +45,12 @@
      >
        <el-sub-menu index="1" >
          <template #title >生产报表</template>
          <el-menu-item index="/main/report/WorkInProgress">在制品报表</el-menu-item>
          <el-menu-item index="/main/report/ProcessToBeCompleted">工序待完成</el-menu-item>
          <el-menu-item index="/main/report/ProductionSchedule">生产发货进度</el-menu-item>
          <el-menu-item index="/main/report/ProcessCardProgress">流程卡进度</el-menu-item>
          <el-menu-item index="/main/report/OrderPlanDecomposition">订单计划分解</el-menu-item>
          <template #title >{{$t('report.productionReport')}}</template>
          <el-menu-item index="/main/report/WorkInProgress">{{$t('report.workInProgressReport')}}</el-menu-item>
          <el-menu-item index="/main/report/ProcessToBeCompleted">{{$t('report.processToBeCompleted')}}</el-menu-item>
          <el-menu-item index="/main/report/ProductionSchedule">{{$t('report.productionAndShippingProgress')}}</el-menu-item>
          <el-menu-item index="/main/report/ProcessCardProgress">{{$t('report.processCardProgress')}}</el-menu-item>
          <el-menu-item index="/main/report/OrderPlanDecomposition">{{$t('report.orderPlanDecomposition')}}</el-menu-item>
        </el-sub-menu>
<!--        <el-sub-menu  index="2" popper-class="test">-->
<!--          <template #title>产量报表</template>-->
@@ -58,16 +58,16 @@
<!--          <el-menu-item index="/main/report/EquipmentOutput">设备产量</el-menu-item>-->
<!--        </el-sub-menu>-->
        <el-sub-menu  index="3" popper-class="test">
          <template #title>次破报表</template>
          <el-menu-item  index="/main/report/DamageReport">次破报表</el-menu-item>
          <el-menu-item index="/main/report/CrossProcessBreaking">跨工序次破</el-menu-item>
          <template #title>{{$t('report.secondaryBrokenReport')}}</template>
          <el-menu-item  index="/main/report/DamageReport">{{$t('report.secondaryBrokenReport')}}</el-menu-item>
          <el-menu-item index="/main/report/CrossProcessBreaking">{{$t('report.crossProcessBreakdown')}}</el-menu-item>
        </el-sub-menu>
        <el-menu-item  index="/main/report/TeamOutput">班组产量</el-menu-item>
        <el-menu-item  index="/main/report/SplittingDetailsOutside">分架明细</el-menu-item>
        <el-menu-item  index="/main/report/TaskCompletionStatus">任务完成情况</el-menu-item>
        <el-menu-item  index="/main/report/RawMaterialRequisition">原片领料</el-menu-item>
        <el-menu-item  index="/main/report/QualityReport">品质报表</el-menu-item>
        <el-menu-item  index="/main/report/Yield">成品率报表</el-menu-item>
        <el-menu-item  index="/main/report/TeamOutput">{{$t('report.teamOutput')}}</el-menu-item>
        <el-menu-item  index="/main/report/SplittingDetailsOutside">{{$t('report.splittingDetails')}}</el-menu-item>
        <el-menu-item  index="/main/report/TaskCompletionStatus">{{$t('report.TaskCompletionStatus')}}</el-menu-item>
        <el-menu-item  index="/main/report/RawMaterialRequisition">{{$t('report.rawMaterialRequisition')}}</el-menu-item>
        <el-menu-item  index="/main/report/QualityReport">{{$t('report.qualityReport')}}</el-menu-item>
        <el-menu-item  index="/main/report/Yield">{{$t('report.yieldReport')}}</el-menu-item>
<!--        <el-menu-item  index="/main/report/OrderBOMOutside">BOM报表</el-menu-item>-->
      </el-menu>
    </div>
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue
@@ -187,43 +187,43 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'processId', width: 120, title: '流程卡号', filters: [{data: ''}],
      field: 'processId', width: 120, title: t('processCard.processId'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'orderNumber',
      width: 120,
      title: '订单序号',
      title: t('order.OrderNum'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'technologyNumber', width: 130, title: '小片顺序', filters: [{data: ''}],
      field: 'technologyNumber', width: 130, title: t('processCard.technologyNumber'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'project', width: 120, title: '项目名称', filters: [{data: ''}],
      field: 'project', width: 120, title: t('order.project'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'batch', width: 100, title: '批次', filters: [{data: ''}],
      field: 'batch', width: 100, title: t('order.batch'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'childWidth', width: 120, title: '宽'},
    {field: 'childHeight', width: 120, title: '高'},
    {field: 'quantity', width: 120, title: '订单数'},
    {field: 'childWidth', width: 120, title: t('order.width')},
    {field: 'childHeight', width: 120, title: t('order.height')},
    {field: 'quantity', width: 120, title: t('order.quantity')},
    {field: 'area', width: 100, title: '面积'},
    {field: 'shape', width: 120, title: '形状',},
    {field: 'remarks', width: 100, title: '备注'},
    {field: 'area', width: 100, title: t('order.area')},
    {field: 'shape', width: 120, title: t('order.shape'),},
    {field: 'remarks', width: 100, title: t('basicData.remarks')},
  ],//表头按钮
  toolbarConfig: {
@@ -260,7 +260,7 @@
        <el-input v-model="form.orderId" :placeholder="$t('order.orderId')" clearable style="width: 130px"></el-input>
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
north-glass-erp/northglass-erp/src/views/pp/report/TaskCompletionStatus.vue
@@ -77,14 +77,14 @@
})
const columns = [
  {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'customerName', width: 150, title: '客户名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'project',width: 130, title: '项目名称' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'batch', width: 120,title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'orderId',width: 110, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'quantity', width: 90,title: '订单数量',showOverflow:"ellipsis"},
  {field: 'area', width: 90,title: '订单面积'},
  {field: 'shippedQuantity',width: 90, title: '发货数量'},
  {field: 'shippedArea',width: 120, title: '发货面积'},
  {field: 'customerName', width: 150, title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'project',width: 130, title: t('order.project') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'batch', width: 120,title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'orderId',width: 110, title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'quantity', width: 90,title: t('order.quantity'),showOverflow:"ellipsis"},
  {field: 'area', width: 90,title: t('order.area')},
  {field: 'shippedQuantity',width: 90, title: t('delivery.deliveryQuantity')},
  {field: 'shippedArea',width: 120, title: t('report.area')},
]
//需要合并的列
let column = [1,2,3]
@@ -95,7 +95,7 @@
  request.post(`/report/taskCompletionStatus/${startTime}/${endTime}`,column).then((res) => {
    if (res.code == 200) {
      if(res.data.data.length===0){
        ElMessage.warning('未查询到此订单数据')
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
@@ -224,9 +224,9 @@
<!--            style="width: 130px"></el-input>-->
        <el-date-picker
            v-model="time.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
@@ -277,9 +277,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportTaskCompletionStatus',
                                          '任务完成情况报表',
                                          t('report.TaskCompletionStatus'),
                                          time.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
    </vxe-grid>
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -19,7 +19,7 @@
})
//工序
const value = ref('切割')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -219,35 +219,35 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 40},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 40},
    {
      field: 'reportingWorkTime', width: 160, title: '报工时间',
      field: 'reportingWorkTime', width: 160, title: t('reportingWorks.reportingWorkTime'),
    },
    {
      field: 'thisProcess',
      width: 100,
      title: '报工工序',
      title: t('reportingWorks.reportingProcess'),
      showOverflow: "ellipsis",
      filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'teamsGroupsName', width: 100, title: '报工班组',filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'teamsGroupsName', width: 100, title: t('reportingWorks.teamsType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'project', width: 120, title: '项目名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'project', width: 120, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {
      field: 'processId', width: 140, title: '流程卡号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }
      field: 'processId', width: 140, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {field: 'orderNumber', width: 60, title: '序号'},
    {field: 'width', width: 100, title: '宽'},
    {field: 'height', width: 100, title: '高'},
    {field: 'shape', width: 90, title: '形状'},
    {field: 'thickness', width: 90, title: '厚度',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'edgingType', width: 110, title: '磨边类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'completedQuantity', width: 90, title: '完工数量'},
    {field: 'area', width: 100, title: '完工面积'},
    {field: 'productName', width: 150, title: '产品名称'},
    {field: 'orderNumber', width: 60, title: t('order.OrderNum')},
    {field: 'width', width: 100, title: t('order.width')},
    {field: 'height', width: 100, title: t('order.height')},
    {field: 'shape', width: 90, title: t('order.shape')},
    {field: 'thickness', width: 90, title: t('order.totalThickness'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'edgingType', width: 110, title: t('order.edgingType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'completedQuantity', width: 90, title: t('reportingWorks.completedQuantity')},
    {field: 'area', width: 100, title: t('reportingWorks.completedArea')},
    {field: 'productName', width: 150, title: t('order.product')},
  ],//表头按钮
  toolbarConfig: {
@@ -285,12 +285,12 @@
function exportExcel(url, fileName,date) {
  let processes = value.value
  if(date===null){
    ElMessage.warning("请先选择日期")
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
  }
  if(processes===null){
    ElMessage.warning("请先选择工序")
    ElMessage.warning(t('report.pleaseSelectAProcessFirst'))
    return
  }
@@ -299,7 +299,7 @@
  const timeDiff = Math.abs(date2.getTime() - date1.getTime());
  const daysDiff = timeDiff / (1000 * 3600 * 24);
  if(Math.floor(daysDiff)>180){
    ElMessage.warning("导出的筛选时间不能超过180天")
    ElMessage.warning(t('report.theFilteringTimeForExportCannotExceed180Days'))
    return
  }
  let dataMp = ref({
@@ -334,9 +334,9 @@
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
@@ -350,7 +350,7 @@
              :value="item.basic_name"
          />
        </el-select>
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -383,9 +383,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportTeamOutput',
                                          '班组产量明细',
                                          t('report.teamOutput'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
    </vxe-grid>
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -20,7 +20,7 @@
})
//工序
const value = ref('磨边')
const value = ref(t('machine.edgeGrinding'))
//表尾求和
const sumNum = (list, field) => {
@@ -224,47 +224,47 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'thisProcess', width: 120, title: '工序', filters: [{data: ''}],
      field: 'thisProcess', width: 120, title: t('report.workingProcedure'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'process_id',
      width: 120,
      title: '流程卡号',
      title: t('processCard.processId'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name', width: 130, title: '客户名称', filters: [{data: ''}],
      field: 'customer_name', width: 130, title: t('customer.customerName'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'project', width: 120, title: '项目名称', filters: [{data: ''}],
      field: 'project', width: 120, title: t('order.project'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'batch', width: 100, title: '批次', filters: [{data: ''}],
      field: 'batch', width: 100, title: t('order.batch'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'order_number', width: 100, title: '序号'},
    {field: 'technology_number', width: 120, title: '小片顺序', showOverflow: "ellipsis"},
    {field: 'shape', width: 100, title: '形状'},
    {field: 'process', width: 120, title: '工艺流程'},
    {field: 'quantity', width: 120, title: '订单数'},
    {field: 'child_width', width: 120, title: '宽'},
    {field: 'child_height', width: 120, title: '高'},
    {field: 'stockNum', width: 120, title: '库存数'},
    {field: 'stockArea', width: 120, title: '库存面积'},
    {field: 'product_name', width: 120, title: '成品名称'},
    {field: 'bend_radius', width: 120, title: '弯钢半径'},
    {field: 'order_number', width: 100, title: t('order.OrderNum')},
    {field: 'technology_number', width: 120, title: t('processCard.technologyNumber'), showOverflow: "ellipsis"},
    {field: 'shape', width: 100, title: t('order.shape')},
    {field: 'process', width: 120, title: t('craft.process')},
    {field: 'quantity', width: 120, title: t('order.quantity')},
    {field: 'child_width', width: 120, title: t('order.width')},
    {field: 'child_height', width: 120, title: t('order.height')},
    {field: 'stockNum', width: 120, title: t('productStock.inventoryQuantity')},
    {field: 'stockArea', width: 120, title: t('report.inventoryArea')},
    {field: 'product_name', width: 120, title:  t('order.product')},
    {field: 'bend_radius', width: 120, title: t('order.bendRadius')},
  ],//表头按钮
  toolbarConfig: {
@@ -310,12 +310,12 @@
    inputProject = null
  }
  if(date===null){
    ElMessage.warning("请先选择日期")
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
  }
  if(processes===null){
    ElMessage.warning("请先选择工序")
    ElMessage.warning(t('report.pleaseSelectAProcessFirst'))
    return
  }
@@ -324,7 +324,7 @@
  const timeDiff = Math.abs(date2.getTime() - date1.getTime());
  const daysDiff = timeDiff / (1000 * 3600 * 24);
  if(Math.floor(daysDiff)>180){
    ElMessage.warning("导出的筛选时间不能超过180天")
    ElMessage.warning(t('report.theFilteringTimeForExportCannotExceed180Days'))
    return
  }
  let dataMp = ref({
@@ -361,9 +361,9 @@
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
@@ -371,7 +371,7 @@
        &nbsp;&nbsp;
        <el-input v-model="form.orderId" :placeholder="$t('order.orderId')" clearable style="width: 130px"></el-input>
        &nbsp;&nbsp;
        <el-input v-model="form.project" clearable placeholder="项目名称" style="width: 130px"></el-input>
        <el-input v-model="form.project" clearable :placeholder="$t('order.project')" style="width: 130px"></el-input>
        &nbsp;
        <el-select v-model="value" clearable default-value="default_city" style="width: 120px">
          <el-option
@@ -381,7 +381,7 @@
              :value="item.basic_name"
          />
        </el-select>
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -405,9 +405,9 @@
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button link size="small" type="primary" @click="getTableRow(row,'edit')">编辑</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'setType')">反审</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'delete')">删除</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'edit')">{{$t('basicData.edit')}}</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'setType')">{{$t('basicData.cancelReview')}}</el-button>
        <el-button link size="small" type="primary" @click="getTableRow(row,'delete')">{{$t('basicData.delete')}}</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
@@ -420,9 +420,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportWorkInProgress',
                                          '在制品报表',
                                          t('report.workInProgressReport'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
    </vxe-grid>
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue
@@ -204,29 +204,29 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'process', width: 120, title: '工序', filters: [{data: ''}],
      field: 'process', width: 120, title: t('report.workingProcedure'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'order_id',
      width: 120,
      title: '销售单号',
      title: t('order.orderId'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name', title: '客户名称', filters: [{data: ''}],
      field: 'customer_name', title: t('customer.customerName'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'project',
      title: '项目名称',
      title: t('order.project'),
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
@@ -234,23 +234,23 @@
    },
    {
      field: 'product_name',  title: '产品名称', filters: [{data: ''}],
      field: 'product_name',  title: t('order.product'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'finishedArea',  title: '完工面积', filters: [{data: ''}],
      field: 'finishedArea',  title: t('reportingWorks.completedArea'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'brokenArea',
      title: '次破面积',
      title: t('reportingWorks.wornArea'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
    },
    {field: 'area', width: 120, title: '总面积', showOverflow: "ellipsis"},
    {field: 'finished', width: 100, title: '成品率'},
    {field: 'area', width: 120, title: t('productStock.totalArea'), showOverflow: "ellipsis"},
    {field: 'finished', width: 100, title: t('report.finished')},
  ],//表头按钮
  toolbarConfig: {
@@ -286,12 +286,12 @@
  let processes = value.value
  if(date===null){
    ElMessage.warning("请先选择日期")
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
  }
  if(processes===null){
    ElMessage.warning("请先选择工序")
    ElMessage.warning(t('report.pleaseSelectAProcessFirst'))
    return
  }
@@ -300,7 +300,7 @@
  const timeDiff = Math.abs(date2.getTime() - date1.getTime());
  const daysDiff = timeDiff / (1000 * 3600 * 24);
  if(Math.floor(daysDiff)>180){
    ElMessage.warning("导出的筛选时间不能超过180天")
    ElMessage.warning(t('report.theFilteringTimeForExportCannotExceed180Days'))
    return
  }
  let dataMp = ref({
@@ -332,9 +332,9 @@
      <el-row :gutter="0">
        <el-date-picker
            v-model="form.date1"
            end-placeholder="结束时间"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD"
            start-placeholder="开始时间"
            style="width: 100px"
            type="daterange"
            value-format="YYYY-MM-DD"
@@ -348,7 +348,7 @@
              :value="item.basic_name"
          />
        </el-select>
        <el-button type="primary" @click="getWorkOrder">查询</el-button>
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
      </el-row>
    </div>
@@ -373,9 +373,9 @@
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel('/report/exportYield',
                                          '成品率报表',
                                          t('report.yieldReport'),
                                          form.date1)">
          导出</vxe-button>
          {{t('basicData.export')}}</vxe-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -264,7 +264,9 @@
            return new Error((`${row.completedQuantity}+${brokenNum}>${row.quantity}`))
          }
          if(titleUploadData.value.reportingWorkId!=null  && row.completedQuantity<row.minQuantity){
            return new Error(`请输入大于等于${row.minQuantity}的数字`)
            return new Error(`${t('reportingWorks.pleaseGreaterThanOrEqual1')}
            ${row.minQuantity}
            ${t('reportingWorks.pleaseGreaterThanOrEqual2')}`)
          }
        }
@@ -544,8 +546,8 @@
  let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1
  if((breakageQuantityCount>brokenRow.value.quantity*1) ){
    ElMessage.warning(`损耗数:'${breakageQuantityCount}'
                               不能大于${brokenRow.value.quantity*1}`)
    ElMessage.warning(`${t('reportingWorks.lossCount1')}':'${breakageQuantityCount}
                               ${t('reportingWorks.lossCount2')}${brokenRow.value.quantity*1}`)
    return false
  }
  brokenRow.value.completedQuantity = brokenRow.value.quantity-breakageQuantityCount
@@ -641,7 +643,9 @@
  for(let item of uniqueByOrderNum){
    if(!checkSameNumForId(notFinishList,item.order_number)){
      ElMessage.error(`请检查订单序号: ${item.order_number} 报工数量是否相同!`)
      ElMessage.error(`${t('reportingWorks.pleaseCheckTheOrderNumber1')}':'
      ${item.order_number}
       ${t('reportingWorks.pleaseCheckTheOrderNumber1')}`)
      return false
    }
  }
@@ -682,11 +686,11 @@
      router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
    }else{
      const errorObj = JSON.parse(res.msg)
      const msg = "序号:"+errorObj.orderNumber+'\n'
          +'小片顺序:'+errorObj.technologyNumber+'\n'
          +"实际可报工数量:"+errorObj.processNum+'<'+
          "报工数量:"+errorObj.sumNum+'\n'
          +"请刷新界面重新报工"
      const msg = t('reportingWorks.pleaseNumber1')+":"+errorObj.orderNumber+'\n'
          +t('reportingWorks.pleaseNumber2')+':'+errorObj.technologyNumber+'\n'
          +t('reportingWorks.pleaseNumber3')+':'+errorObj.processNum+'<'+
          +t('reportingWorks.pleaseNumber4')+':'+errorObj.sumNum+'\n'
          +t('reportingWorks.pleaseNumber5')
      ElMessage.error(msg)
    }
@@ -817,7 +821,7 @@
    return
  }
  if (titleSelectJson.value.thisProcessType.indexOf(process) == -1 && process != "切割" && titleSelectJson.value.thisProcessType != "") {
  if (titleSelectJson.value.thisProcessType.indexOf(process) === -1 && process !== t('machine.cutting') && titleSelectJson.value.thisProcessType !== "") {
    ElMessage.warning(t('reportingWorks.thisProcessNotProcessCard'))
    return
  }
@@ -893,11 +897,11 @@
    }
    if (item.quantity < item.completedQuantity) {
      ElMessage.success("序号" + item.order_number + "的数量不能大于上工序数量")
      ElMessage.success(t('reportingWorks.pleaseNumber6') + item.order_number + t('reportingWorks.pleaseNumber7'))
    } else if (item.breakageQuantity * 1 + item.completedQuantity * 1 > item.quantity * 1) {
      ElMessage.success("请输入序号" + item.order_number + "正确的完工或次破数量")
      ElMessage.success(t('reportingWorks.pleaseNumber8') + item.order_number + t('reportingWorks.pleaseNumber9'))
    }
    sum = item.completedQuantity * 1 + sum * 1
north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryPrinting.vue
@@ -73,6 +73,22 @@
    return
  }
  form.value.deliveryId = props.deliveryId*/
  /*form.value.orderId='NG24060501'
  request.post(`/Delivery/getSelectOrderPrinting`,form.value).then((res) => {
    if(res.code==200){
      produceList.value = deepClone(res.data.data)
      delivery.value=deepClone(res.data.delivery)
      money.value=deepClone(res.data.money)
      console.log(res.data.data)
    }else{
      ElMessage.warning(res.msg)
      router.push("/login")
    }
  })*/
  if(route.query.deliveryID===null  || route.query.deliveryID===undefined || route.query.deliveryID===''){
    return
  }
@@ -90,6 +106,8 @@
      router.push("/login")
    }
  })
})
@@ -217,6 +235,120 @@
    </div>
  </div>
<!--  <div>
    <el-button @click="Printing" style="margin-top: -5px"  id="searchButton" type="primary" >打印</el-button>
    <div id="pis" style="width: 100%;height: 100%">
      <div style="font-size: 30px;text-align: center;font-weight: bold;">常州市吉利玻璃有限公司</div>
      <el-row :gutter="20">
        <el-col :span="7"><div></div></el-col>
        <el-col :span="10"><div style="font-size: 25px;text-align: center;font-weight: bold;">销售发货单</div></el-col>
        <el-col :span="7">
          <div style="display: flex;margin-top: 10px;">
            <div style="font-weight: bold;font-size: 15px">发货单号:</div>
            <div style="font-weight: bold;font-size: 15px">{{delivery.deliveryId}}</div>
          </div>
        </el-col>
      </el-row>
      <div style="border: 1px solid #d3dce6;border-collapse: collapse;width: 100%;height: 100%;">
        <table id="table1" style="border: 1px solid #d3dce6;border-collapse: collapse;width: 100%;height: 100%;">
          <tr>
            <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{delivery.customerName}}</span></th>
            <th style="text-align: left;border:none;" colspan="3">项目名称:<span>{{delivery.project}}</span></th>
            <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{delivery.contacts}}</span></th>
          </tr>
          <tr>
            <th style="text-align: left;border:none;" colspan="6">送货地址:<span>{{delivery.deliveryAddress}}</span></th>
            <th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th>
          </tr>
          <tr>
            <th style="width: 6%;">序号</th>
            <th style="width: 20%;">楼层编号</th>
            <th style="width: 20%;">宽(弧度)*高</th>
            <th style="width: 10%;">数量</th>
            <th style="width: 10%;">面积</th>
            <th style="width: 10%;">单价</th>
            <th style="width: 12%;">金额</th>
            <th style="width: 12%;">加工要求</th>
          </tr>
          <template v-for="(item, index) in produceList" :key="index" >
            <tr>
              <td style="font-size: 15px;font-weight: bold;" colspan="3">产品名称:<span>{{item.DeliveryDetail.productName}}</span></td>
              <td style="font-size: 15px;font-weight: bold;" colspan="3">对方单号:</td>
              <td style="font-size: 15px;font-weight: bold;" colspan="2">订单编号:<span>{{item.DeliveryDetail.orderId}}</span></td>
            </tr>
            <tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1">
              <td>{{items.order_number}}</td>
              <td>{{items.buildingNumber}}</td>
              <td style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td>
              <td>{{items.quantity}}</td>
              <td>{{items.area}}</td>
              <td>{{items.price}}</td>
              <td>{{items.money}}</td>
              <td>{{items.processingNote}}</td>
            </tr>
            <tr class="day-in" >
              <td style="font-size: 15px;font-weight: bold;" colspan="3">小计:</td>
              <td>{{item.DeliveryDetail.quantity}}</td>
              <td>{{item.DeliveryDetail.area}}</td>
              <td></td>
              <td>{{item.DeliveryDetail.money}}</td>
              <td></td>
            </tr>
          </template>
          <tr class="day-in">
            <td style="font-size: 15px;font-weight: bold;" colspan="3">合计:</td>
            <td>{{delivery.quantity}}</td>
            <td>{{delivery.area}}</td>
            <td></td>
            <td>{{delivery.money}}</td>
            <td></td>
          </tr>
          <tr class="day-in">
            <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="3">
              <div style="display: flex;font-size: 10px;">
                <div>加工费用</div>
                <div  style="margin-left: 20%">单价</div>
                <div  style="margin-left: 20%">数量</div>
                <div  style="margin-left: 20%">金额</div>
              </div>
            </td>
            <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">总金额:&nbsp;&nbsp;&nbsp;&nbsp;{{delivery.money}}</td>
          </tr>
          <tr class="day-in">
            <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="3"></td>
            <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额:&nbsp;&nbsp;&nbsp;&nbsp;{{money}}</td>
          </tr>
        </table>
      </div>
      <el-row :gutter="20">
        <el-col :span="3"><div class="bottom">制单员:<span style="font-size: 10px">{{delivery.creator}}</span></div></el-col>
        <el-col :span="5"><div class="bottom">制单日期:<span style="font-size: 10px">{{delivery.createTime}}</span></div></el-col>
        <el-col :span="4"><div class="bottom">发货员:</div></el-col>
        <el-col :span="4"><div class="bottom">司机:</div></el-col>
        <el-col :span="4"><div class="bottom">客户签字:</div></el-col>
        <el-col :span="4"><div class="bottom">签收日期:</div></el-col>
      </el-row>
      <el-row :gutter="20" style="margin-top: 20px;">
        <el-col :span="3"><div class="bottom">架子&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只</div></el-col>
        <el-col :span="21"><div class="bottom">{{takeCare}}</div></el-col>
      </el-row>
      <el-row :gutter="20" style="margin-top: 20px;">
        <el-col :span="24"><div class="bottom">{{remark}}</div></el-col>
      </el-row>
    </div>
  </div>-->
</template>
<style>
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
@@ -291,8 +291,8 @@
    <el-date-picker
        v-model="selectDate"
        type="daterange"
        :start-placeholder="t('basicData.startDate')"
        :end-placeholder="t('basicData.endDate')"
        :start-placeholder="$t('basicData.startDate')"
        :end-placeholder="$t('basicData.endDate')"
        format="YYYY-MM-DD"
        value-format="YYYY-MM-DD"
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -337,20 +337,19 @@
                item=>item.computeArea*1 < errorArea.value*1
            )
            if(errorAreaList.length){
              ElMessageBox.confirm(
                  /*t('order.msg.calculationAreaPrompt1')+
                  ${errorAreaList.length}+
                  t('order.msg.calculationAreaPrompt2')+
                  ${errorArea.value}+
                      t('order.msg.calculationAreaPrompt3')+
                  ${errorArea.value}+*/
                      t('order.msg.calculationAreaPrompt4'),
                  'Warning',
                  {
                    confirmButtonText: t('basicData.confirmButtonText'),
                    cancelButtonText: t('basicData.cancelButtonText'),
                    type: 'warning',
                  }
              ElMessageBox.confirm(`${t('order.msg.calculationAreaPrompt1')}
                  ${errorAreaList.length}
                  ${t('order.msg.calculationAreaPrompt2')}
                  ${errorArea.value}
                  ${t('order.msg.calculationAreaPrompt3')}
                  ${errorArea.value}
                  ${t('order.msg.calculationAreaPrompt4')}`,
                  t('order.msg.warning'),
              {
                confirmButtonText: t('basicData.confirmButtonText'),
                cancelButtonText: t('basicData.cancelButtonText'),
                type: 'warning',
              }
              ).then(()=>{
                errorAreaComputed()
                saveOrder(order)
north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
@@ -108,6 +108,13 @@
        return Result.seccess(deliveryService.getSelectDeliveryPrinting(deliveryDetail));
    }
    @ApiOperation("订单发货订单查询接口")
    @SaCheckPermission("selectDelivery.search")
    @PostMapping("/getSelectOrderPrinting")
    public Result getSelectOrderPrinting( @RequestBody OrderDetail orderDetail){
        return Result.seccess(deliveryService.getSelectOrderPrinting(orderDetail));
    }
    @ApiOperation("发货明细报表")
    @PostMapping("/exportDeliveryDetailReport")
    public void exportDeliveryDetailReport(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
@@ -27,9 +27,14 @@
    List<DeliveryDetail> getSelectDeliveryPrinting(@Param("deliveryDetail") DeliveryDetail deliveryDetail);
    List<OrderDetail> getSelectOrderPrinting(@Param("orderDetail") OrderDetail orderDetail);
    List <Map<String, Object>> getSelectDeliveryDetailPrinting(@Param("deliveryId") String deliveryId,
                                                         @Param("productId") Integer productId,@Param("orderId") String orderId);
    List <Map<String, Object>> getSelectOrderDetailPrinting(@Param("productId") Integer productId,@Param("orderId") String orderId);
    List<DeliveryDetail> getSelectDeliveryDetailReport(@Param("offset") Integer offset,
                                                      @Param("pageSize") Integer pageSize,String startDate, String endDate,
                                                      @Param("deliveryDetail") DeliveryDetail deliveryDetail);
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
@@ -25,6 +25,8 @@
   Delivery getSelectShippingOrderDetailDeliveryPrinting(@Param("deliveryDetail") DeliveryDetail deliveryDetail);
   Order getSelectShippingOrderDetailPrinting(@Param("orderDetail") OrderDetail orderDetail);
    Order getSelectShippingOrderDetailDeliverys(@Param("offset") Integer offset,
                                                 @Param("pageSize") Integer pageSize,
                                                 @Param("orderDetail") OrderDetail orderDetail);
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -366,6 +366,29 @@
    }
    public Map<String, Object> getSelectOrderPrinting(OrderDetail orderDetail) {
        Map<String, Object> map = new HashMap<>();
        List <Map<String, Object>> list=new ArrayList<Map<String, Object>>();//最终结果
        List<OrderDetail> orderDetailList=deliveryDetailMapper.getSelectOrderPrinting(orderDetail);
        for (OrderDetail detail : orderDetailList) {
            Map<String, Object> itemmap = new HashMap<>();
            List<Map<String, Object>> deliveryDetailList2 = deliveryDetailMapper.getSelectOrderDetailPrinting(
                    detail.getProductId(), detail.getOrderId());
            itemmap.put("DeliveryDetail", detail);
            itemmap.put("DeliveryDetailList", deliveryDetailList2);
            list.add(itemmap);
        }
        Order order=deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail);
        map.put("data", list);
        map.put("delivery", deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail));
        map.put("money", toChinese(order.getMoney().toString(), false));
        return map;
    }
    public List<DeliveryDetailDTO> exportDeliveryDetailReport(List<LocalDate> dates) {
        return deliveryDetailMapper.exportDeliveryDetailReport(dates);
    }
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -887,6 +887,17 @@
        group by od.order_id,od.product_name,od.product_id
    </select>
    <select id="getSelectOrderPrinting"  >
        select od.order_id,od.product_id,od.product_name,sum(od.area) as area,sum(od.gross_amount) as money,sum(od.quantity) as quantity from
         order_detail od
        <where>
            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
                and od.order_id like concat('%',#{orderDetail.orderId},'%')
            </if>
        </where>
        group by od.product_name,od.product_id
    </select>
    <select id="getSelectDeliveryDetailPrinting" >
        select od.order_id,
               od.order_number,
@@ -906,6 +917,23 @@
          and od.product_id = #{productId}
    </select>
    <select id="getSelectOrderDetailPrinting" >
        select od.order_id,
               od.order_number,
               od.product_name,
               od.width,
               od.height,
               od.quantity,
               od.gross_amount,
               od.area,
               ifnull(od.processing_note,"") as processingNote,
               ifnull(od.remarks,"") as buildingNumber,
               od.price
        from  order_detail od
        where  od.order_id = #{orderId}
          and od.product_id = #{productId}
    </select>
    <select id="exportDeliveryDetailReport">
        select dd.id,
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
@@ -216,6 +216,19 @@
        </where>
    </select>
    <select id="getSelectShippingOrderDetailPrinting" >
        select
        d.order_id,d.quantity,d.money,d.area,d.project,
        d.customer_id,d.customer_name,d.creator,d.salesman,d.salesman_id
        from sd.`order` d
        <where>
            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
                and d.order_id like concat('%',#{orderDetail.orderId},'%')
            </if>
        </where>
    </select>
    <select id="getSelectShippingOrderDetailDeliverys" >
        select customer_id,customer_name,project,salesman,salesman_id,contacts,contact_number,delivery_address from sd.`order`