zouyu
2026-01-16 30dc46174a37613366081bd1abab8eb71c171f7f
浪潮对接单点登录:MES制造执行系统功能迁移
已修改14个文件
已删除248个文件
81361 ■■■■■ 文件已修改
.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/approvalProcess.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/attendanceManagement.js 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/enterpriseBook.js 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/knowledgeBase.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/meeting.js 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/noticeManagement.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/notificationManagement.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/officeSupplies.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/planTemplate.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/rpaManagement.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/collaborativeApproval/sealManagement.js 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/customerService/index.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/energyManagement/index.js 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/energyManagement/waterManagement.js 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/brand.js 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/calibration.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/defectManagement.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/deviceInfo.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/ledger.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/measurementEquipment.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/repair.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/spareParts.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/upkeep.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fileManagement/bookshelf.js 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fileManagement/borrow.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fileManagement/document.js 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fileManagement/return.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fileManagement/statistics.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financialManagement/expenseManagement.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financialManagement/financialStatements.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financialManagement/revenueManagement.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inspectionManagement/index.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inspectionUpload/index.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockIn.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockManage.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockOut.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockReport.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockWarning.js 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/lavorissce/ledger.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/oaSystem/projectManagement.js 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/advancedPriceManagement.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/arrivalManagement.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/invoiceEntry.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/paymentEntry.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/paymentLedger.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/procurementInvoiceLedger.js 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/procurementLedger.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/procurementPlan.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/projectProfit.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/returnManagement.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/procurementManagement/taxComparison.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/productionManagement/productionOrder.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/deliveryLedger.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/invoiceLedger.js 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/invoiceRegistration.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/paymentShipping.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/receiptPayment.js 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/salesLedger.js 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/salesQuotation.js 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/salespersonManagement.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/strategyControl.js 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/customerFile/index.vue 604 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/product/ImportExcel/index.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/product/index.vue 500 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/supplierManage/index.vue 542 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chatHome/chatHomeIndex/MobileChat.vue 461 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chatHome/chatHomeIndex/ai-jz.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chatHome/chatHomeIndex/ai-wd.js 393 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chatHome/chatHomeIndex/home.vue 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue 371 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/fileList.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index.vue 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index1.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index2.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index3.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index4.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/index5.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/attendanceManagement/index.vue 1244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/enterpriseBook/index.vue 798 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/knowledgeBase/index.vue 826 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/meetingBoard/index.vue 346 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/noticeManagement/index.vue 731 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/index.vue 1200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetApplication/index.vue 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetDraft/index.vue 495 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetExamine/index.vue 418 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetIndex/index.vue 371 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue 416 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetSetting/index.vue 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/summary/index.vue 403 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/officeSupplies/index.vue 512 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/planTemplate/index.vue 867 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/processTracking/index.vue 498 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/reportGeneration/index.vue 596 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/rpaManagement/index.vue 366 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue 753 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/sealManagement/index.vue 764 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/warningSystem/index.vue 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/afterSalesHandling/components/formDia.vue 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/afterSalesHandling/index.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/expiryAfterSales/components/formDia.vue 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/expiryAfterSales/index.vue 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/feedbackRegistration/components/formDia.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/feedbackRegistration/index.vue 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/fakePage/index.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/carbonManagement/index.vue 1553 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/dynamicEnergySaving/index.vue 659 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyArea/index.vue 511 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyCockpit/index.vue 1380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyPeriodTime/index.vue 462 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyPower/components/formDia.vue 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyPower/index.vue 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyTrends/index.vue 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/gasManagement/index.vue 624 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/meterCollection/index.vue 556 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/waterManagement/components/formDia.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/waterManagement/components/waterBillForm.vue 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/waterManagement/index.vue 329 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/waterManagement/waterBill.vue 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/waterManagement/waterTrends.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/brand/index.vue 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/calibration/index.vue 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/defectManagement/index.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/deviceInfo/index.vue 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/gasTank/simple.vue 566 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/formDia.vue 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/qrCodeDia.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/viewFiles.vue 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/viewQrCodeFiles.vue 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/index.vue 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/iotMonitor/index.vue 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/iotMonitor/indexWD.vue 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/kplMonitor/index.vue 714 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/Form.vue 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/Modal.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/index.vue 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/measurementEquipment/components/formDia.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/measurementEquipment/filesDia.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/measurementEquipment/index.vue 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/operationManagement/index.vue 370 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/Form/MaintainForm.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/Form/RepairForm.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/Modal/MaintainModal.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/Modal/RepairModal.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/index.vue 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/spareParts/index.vue 417 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/PlanForm.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Modal/PlanModal.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/index.vue 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/example/DynamicTableExample.vue 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/example/SimpleExample.vue 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/bookshelf/detail.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/bookshelf/index.vue 688 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/borrow/index.vue 647 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/document/attachmentManager.vue 426 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/document/index.vue 1416 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/return/index.vue 699 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/statistics/index.vue 539 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/accounting/index.vue 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/expenseManagement/Form.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/expenseManagement/Modal.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/expenseManagement/index.vue 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/financialStatements/index.vue 507 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/revenueManagement/Form.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/revenueManagement/Modal.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/revenueManagement/filesDia.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/revenueManagement/index.vue 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/index.vue 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/dispatchLog/index.vue 865 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/index.vue 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/issueManagement/index.vue 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/receiptManagement/index.vue 558 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/index.vue 426 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockReport/index.vue 719 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockWarning/index.vue 943 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/lavorissue/ledger/Form.vue 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/lavorissue/ledger/Modal.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/lavorissue/ledger/filesDia.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/lavorissue/ledger/index.vue 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/lavorissue/statistics/index.vue 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitorManagement/areaControl/index.vue 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitorManagement/videoMonitor/index.vue 990 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/components/milestoneList.vue 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/components/phaseGoalList.vue 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/components/projectForm.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/components/taskTree.vue 834 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/index.vue 481 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/oaSystem/projectManagement/projectDetail.vue 565 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/analytics/index.vue 710 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/contractManagement/components/formDia.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/contractManagement/filesDia.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/contractManagement/index.vue 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/dimission/components/formDia.vue 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/dimission/index.vue 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/employeeRecord/components/formDia.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/employeeRecord/index.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/components/formDia.vue 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/components/formDiaXJHT.vue 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/index.vue 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/payrollManagement/components/formDia.vue 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/payrollManagement/index.vue 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/scheduling/index.vue 618 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/selfService/index.vue 804 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/advancedPriceManagement/index.vue 784 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/arrivalManagement/index.vue 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/index.vue 418 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/components/Modal.vue 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/index.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/indexOld.vue 727 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/paymentEntry/index.vue 613 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/paymentHistory/index.vue 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/paymentLedger/index.vue 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/priceManagement/index.vue 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/Modal/UploadModal.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/index.vue 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue 311 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementLedger/index.vue 1609 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementPlan/index.vue 784 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementReport/index.vue 856 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/purchaseOrder/index.vue 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/qualityInspection/index.vue 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/returnManagement/index.vue 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/thePaymentLedger/index.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productManagement/productIdentifier/index.vue 708 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/operationScheduling/components/formDia.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/operationScheduling/index.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionCosting/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionDispatching/components/formDia.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionDispatching/index.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/index.vue 329 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionReporting/components/formDia.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionReporting/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/dataDashboard/index.vue 1493 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/projectProfit/index.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/reportManagement.vue 733 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/reportManagement/index.vue 389 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/taxComparison/index.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/customerManagement/index.vue 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/deliveryLedger/index.vue 312 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/indicatorStats/index.vue 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceLedger/index.vue 445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceRegistration/index.vue 686 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/orderManagement/index.vue 495 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/paymentShipping/index.vue 508 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPayment/index.vue 641 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPaymentHistory/index.vue 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPaymentLedger/index.vue 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/fileList.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 1752 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesQuotation/index.vue 810 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salespersonManagement/index.vue 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/strategyControl/index.vue 1587 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.production
@@ -1,5 +1,5 @@
# é¡µé¢æ ‡é¢˜
VITE_APP_TITLE = ä¸­å°ä¼ä¸šæ•°å­—化转型二级套餐包
VITE_APP_TITLE = èН坼-MES制造执行系统
# ç”Ÿäº§çŽ¯å¢ƒé…ç½®
VITE_APP_ENV = 'production'
src/api/collaborativeApproval/approvalProcess.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/attendanceManagement.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/enterpriseBook.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/knowledgeBase.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/meeting.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/noticeManagement.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/notificationManagement.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/officeSupplies.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/planTemplate.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/rpaManagement.js
ÎļþÒÑɾ³ý
src/api/collaborativeApproval/sealManagement.js
ÎļþÒÑɾ³ý
src/api/customerService/index.js
ÎļþÒÑɾ³ý
src/api/energyManagement/index.js
ÎļþÒÑɾ³ý
src/api/energyManagement/waterManagement.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/brand.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/calibration.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/defectManagement.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/deviceInfo.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/ledger.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/measurementEquipment.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/repair.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/spareParts.js
ÎļþÒÑɾ³ý
src/api/equipmentManagement/upkeep.js
ÎļþÒÑɾ³ý
src/api/fileManagement/bookshelf.js
ÎļþÒÑɾ³ý
src/api/fileManagement/borrow.js
ÎļþÒÑɾ³ý
src/api/fileManagement/document.js
ÎļþÒÑɾ³ý
src/api/fileManagement/return.js
ÎļþÒÑɾ³ý
src/api/fileManagement/statistics.js
ÎļþÒÑɾ³ý
src/api/financialManagement/expenseManagement.js
ÎļþÒÑɾ³ý
src/api/financialManagement/financialStatements.js
ÎļþÒÑɾ³ý
src/api/financialManagement/revenueManagement.js
ÎļþÒÑɾ³ý
src/api/inspectionManagement/index.js
ÎļþÒÑɾ³ý
src/api/inspectionUpload/index.js
ÎļþÒÑɾ³ý
src/api/inventoryManagement/stockIn.js
ÎļþÒÑɾ³ý
src/api/inventoryManagement/stockManage.js
ÎļþÒÑɾ³ý
src/api/inventoryManagement/stockOut.js
ÎļþÒÑɾ³ý
src/api/inventoryManagement/stockReport.js
ÎļþÒÑɾ³ý
src/api/inventoryManagement/stockWarning.js
ÎļþÒÑɾ³ý
src/api/lavorissce/ledger.js
ÎļþÒÑɾ³ý
src/api/oaSystem/projectManagement.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/advancedPriceManagement.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/arrivalManagement.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/invoiceEntry.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/paymentEntry.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/paymentLedger.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/procurementInvoiceLedger.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/procurementLedger.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/procurementPlan.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/projectProfit.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/returnManagement.js
ÎļþÒÑɾ³ý
src/api/procurementManagement/taxComparison.js
ÎļþÒÑɾ³ý
src/api/productionManagement/productionOrder.js
@@ -4,7 +4,7 @@
// åˆ†é¡µæŸ¥è¯¢
export function schedulingListPage(query) {
  return request({
    url: "/salesLedger/scheduling/listPage",
        url: "/productionOrder/listPage",
    method: "get",
    params: query,
  });
@@ -17,3 +17,36 @@
    data: query,
  });
}
// æ–°å¢žç”Ÿäº§è®¢å•
export function addProductionOrder(query) {
    return request({
        url: "/productionOrder/addProductionOrder",
        method: "post",
        data: query,
    });
}
// ä¿®æ”¹ç”Ÿäº§è®¢å•
export function updateProductionOrder(query) {
    return request({
        url: "/productionOrder/updateProductionOrder",
        method: "post",
        data: query,
    });
}
// åˆ é™¤ç”Ÿäº§è®¢å•
export function deleteProductionOrder(query) {
    return request({
        url: "/productionOrder/deleteProductionOrder",
        method: "delete",
        data: query,
    });
}
// æŠ¥è¡¨åˆ†æž
export function reportAnalysis(query) {
    return request({
        url: "/productionOrder/reportAnalysis",
        method: "get",
        params: query,
    });
}
src/api/salesManagement/deliveryLedger.js
ÎļþÒÑɾ³ý
src/api/salesManagement/invoiceLedger.js
ÎļþÒÑɾ³ý
src/api/salesManagement/invoiceRegistration.js
ÎļþÒÑɾ³ý
src/api/salesManagement/paymentShipping.js
ÎļþÒÑɾ³ý
src/api/salesManagement/receiptPayment.js
ÎļþÒÑɾ³ý
src/api/salesManagement/salesLedger.js
ÎļþÒÑɾ³ý
src/api/salesManagement/salesQuotation.js
ÎļþÒÑɾ³ý
src/api/salesManagement/salespersonManagement.js
ÎļþÒÑɾ³ý
src/api/salesManagement/strategyControl.js
ÎļþÒÑɾ³ý
src/router/index.js
@@ -85,27 +85,27 @@
      },
    ],
  },
  {
    path: "/device-info",
    component: () => import("@/views/equipmentManagement/deviceInfo/index.vue"),
    hidden: true,
    name: "DeviceInfo",
    meta: { title: "设备信息", icon: "monitor" },
  },
  // {
  //   path: "/device-info",
  //   component: () => import("@/views/equipmentManagement/deviceInfo/index.vue"),
  //   hidden: true,
  //   name: "DeviceInfo",
  //   meta: { title: "设备信息", icon: "monitor" },
  // },
  // æ·»åŠ é¡¹ç›®è¯¦æƒ…é¡µé¢è·¯ç”±é…ç½®
  {
    path: "/oaSystem/projectManagement/projectDetail",
    component: Layout,
    hidden: true,
    children: [
      {
        path: ":projectId",
        component: () => import("@/views/oaSystem/projectManagement/projectDetail.vue"),
        name: "ProjectDetail",
        meta: { title: "项目详情", activeMenu: "/oaSystem/projectManagement" },
      },
    ],
  },
  // {
  //   path: "/oaSystem/projectManagement/projectDetail",
  //   component: Layout,
  //   hidden: true,
  //   children: [
  //     {
  //       path: ":projectId",
  //       component: () => import("@/views/oaSystem/projectManagement/projectDetail.vue"),
  //       name: "ProjectDetail",
  //       meta: { title: "项目详情", activeMenu: "/oaSystem/projectManagement" },
  //     },
  //   ],
  // },
];
// åŠ¨æ€è·¯ç”±ï¼ŒåŸºäºŽç”¨æˆ·æƒé™åŠ¨æ€åŽ»åŠ è½½
src/views/basicData/customerFile/index.vue
ÎļþÒÑɾ³ý
src/views/basicData/product/ImportExcel/index.vue
ÎļþÒÑɾ³ý
src/views/basicData/product/index.vue
ÎļþÒÑɾ³ý
src/views/basicData/supplierManage/index.vue
ÎļþÒÑɾ³ý
src/views/chatHome/chatHomeIndex/MobileChat.vue
ÎļþÒÑɾ³ý
src/views/chatHome/chatHomeIndex/ai-jz.js
ÎļþÒÑɾ³ý
src/views/chatHome/chatHomeIndex/ai-wd.js
ÎļþÒÑɾ³ý
src/views/chatHome/chatHomeIndex/home.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/fileList.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index1.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index2.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index3.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index4.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/approvalProcess/index5.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/attendanceManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/enterpriseBook/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/knowledgeBase/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/meetingBoard/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/noticeManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetApplication/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetDraft/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetExamine/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetIndex/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetPublish/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/meetSetting/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/notificationManagement/summary/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/officeSupplies/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/planTemplate/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/processTracking/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/reportGeneration/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/rpaManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/sealManagement/index.vue
ÎļþÒÑɾ³ý
src/views/collaborativeApproval/warningSystem/index.vue
ÎļþÒÑɾ³ý
src/views/customerService/afterSalesHandling/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/customerService/afterSalesHandling/index.vue
ÎļþÒÑɾ³ý
src/views/customerService/expiryAfterSales/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/customerService/expiryAfterSales/index.vue
ÎļþÒÑɾ³ý
src/views/customerService/feedbackRegistration/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/customerService/feedbackRegistration/index.vue
ÎļþÒÑɾ³ý
src/views/demo/fakePage/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/carbonManagement/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/dynamicEnergySaving/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyArea/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyCockpit/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyPeriodTime/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyPower/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyPower/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/energyTrends/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/gasManagement/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/meterCollection/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/waterManagement/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/waterManagement/components/waterBillForm.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/waterManagement/index.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/waterManagement/waterBill.vue
ÎļþÒÑɾ³ý
src/views/energyManagement/waterManagement/waterTrends.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/brand/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/calibration/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/defectManagement/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/deviceInfo/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/gasTank/simple.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/inspectionManagement/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/inspectionManagement/components/qrCodeDia.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/inspectionManagement/components/viewFiles.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/inspectionManagement/components/viewQrCodeFiles.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/inspectionManagement/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/iotMonitor/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/iotMonitor/indexWD.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/kplMonitor/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/ledger/Form.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/ledger/Modal.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/ledger/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/measurementEquipment/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/measurementEquipment/filesDia.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/measurementEquipment/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/operationManagement/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/repair/Form/MaintainForm.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/repair/Form/RepairForm.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/repair/Modal/MaintainModal.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/repair/Modal/RepairModal.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/repair/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/spareParts/index.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/upkeep/Form/PlanForm.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
ÎļþÒÑɾ³ý
src/views/equipmentManagement/upkeep/index.vue
ÎļþÒÑɾ³ý
src/views/example/DynamicTableExample.vue
ÎļþÒÑɾ³ý
src/views/example/SimpleExample.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/bookshelf/detail.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/bookshelf/index.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/borrow/index.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/document/attachmentManager.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/document/index.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/return/index.vue
ÎļþÒÑɾ³ý
src/views/fileManagement/statistics/index.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/accounting/index.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/expenseManagement/Form.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/expenseManagement/Modal.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/expenseManagement/index.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/financialStatements/index.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/revenueManagement/Form.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/revenueManagement/Modal.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/revenueManagement/filesDia.vue
ÎļþÒÑɾ³ý
src/views/financialManagement/revenueManagement/index.vue
ÎļþÒÑɾ³ý
src/views/index.vue
@@ -18,126 +18,126 @@
                        </div>
                    </div>
                </div>
                <div class="data-cards">
                    <div class="data-card sales">
                        <div class="data-title">销售数据</div>
                        <div class="data-num">
                            <div>
                                <div class="data-desc">本月销售额/元</div>
                                <div class="data-value">{{businessInfo.monthSaleMoney}}</div>
                            </div>
                            <div>
                                <div class="data-desc">未开票金额/元</div>
                                <div class="data-value">{{businessInfo.monthSaleHaveMoney}}</div>
                            </div>
                        </div>
                    </div>
                    <div class="data-card purchase">
                        <div class="data-title">采购数据</div>
                        <div class="data-num">
                            <div>
                                <div class="data-desc">本月采购额/元</div>
                                <div class="data-value">{{businessInfo.monthPurchaseMoney}}</div>
                            </div>
                            <div>
                                <div class="data-desc">待付款金额/元</div>
                                <div class="data-value">{{businessInfo.monthPurchaseHaveMoney}}</div>
                            </div>
                        </div>
                    </div>
                    <div class="data-card inventory">
                        <div class="data-title">库存数据</div>
                        <div class="data-num">
                            <div>
                                <div class="data-desc">当前库存总量/ä»¶</div>
                                <div class="data-value">{{businessInfo.inventoryNum}}</div>
                            </div>
                            <div>
                                <div class="data-desc">今日入库/ä»¶</div>
                                <div class="data-value">{{businessInfo.todayInventoryNum}}</div>
                            </div>
                        </div>
                    </div>
                </div>
<!--                <div class="data-cards">-->
<!--                    <div class="data-card sales">-->
<!--                        <div class="data-title">销售数据</div>-->
<!--                        <div class="data-num">-->
<!--                            <div>-->
<!--                                <div class="data-desc">本月销售额/元</div>-->
<!--                                <div class="data-value">{{businessInfo.monthSaleMoney}}</div>-->
<!--                            </div>-->
<!--                            <div>-->
<!--                                <div class="data-desc">未开票金额/元</div>-->
<!--                                <div class="data-value">{{businessInfo.monthSaleHaveMoney}}</div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                        -->
<!--                    </div>-->
<!--                    <div class="data-card purchase">-->
<!--                        <div class="data-title">采购数据</div>-->
<!--                        <div class="data-num">-->
<!--                            <div>-->
<!--                                <div class="data-desc">本月采购额/元</div>-->
<!--                                <div class="data-value">{{businessInfo.monthPurchaseMoney}}</div>-->
<!--                            </div>-->
<!--                            <div>-->
<!--                                <div class="data-desc">待付款金额/元</div>-->
<!--                                <div class="data-value">{{businessInfo.monthPurchaseHaveMoney}}</div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="data-card inventory">-->
<!--                        <div class="data-title">库存数据</div>-->
<!--                        <div class="data-num">-->
<!--                            <div>-->
<!--                                <div class="data-desc">当前库存总量/ä»¶</div>-->
<!--                                <div class="data-value">{{businessInfo.inventoryNum}}</div>-->
<!--                            </div>-->
<!--                            <div>-->
<!--                                <div class="data-desc">今日入库/ä»¶</div>-->
<!--                                <div class="data-value">{{businessInfo.todayInventoryNum}}</div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
            </div>
            <!-- å³ï¼šå¾…办事项 -->
            <div class="todo-panel">
                <div class="section-title">待办事项</div>
                <ul class="todo-list" v-if="todoList.length > 0">
                    <li v-for="item in todoList" :key="item.id">
                        <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px">
                            <div style="display: flex;justify-content: space-between;align-items: center;">
                                <div class="todo-title">待办编号:{{item.approveId}}</div>
                                <div class="todo-division">部门:{{item.approveDeptName}}</div>
                                <div class="todo-time">{{item.approveTime}}</div>
                            </div>
                            <div class="todo-division">待办事由:{{item.approveReason}}</div>
                        </div>
                    </li>
                </ul>
                <div v-else style="text-align: center">
                    æš‚无数据
                </div>
            </div>
<!--            <div class="todo-panel">-->
<!--                <div class="section-title">待办事项</div>-->
<!--                <ul class="todo-list" v-if="todoList.length > 0">-->
<!--                    <li v-for="item in todoList" :key="item.id">-->
<!--                        <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px">-->
<!--                            <div style="display: flex;justify-content: space-between;align-items: center;">-->
<!--                                <div class="todo-title">待办编号:{{item.approveId}}</div>-->
<!--                                <div class="todo-division">部门:{{item.approveDeptName}}</div>-->
<!--                                <div class="todo-time">{{item.approveTime}}</div>-->
<!--                            </div>-->
<!--                            <div class="todo-division">待办事由:{{item.approveReason}}</div>-->
<!--                        </div>-->
<!--                    </li>-->
<!--                </ul>-->
<!--                <div v-else style="text-align: center">-->
<!--                    æš‚无数据-->
<!--                </div>-->
<!--            </div>-->
        </div>
        
        <!-- ä¸­éƒ¨æ¨ªå‘两栏 -->
        <div class="dashboard-row">
            <div class="main-panel">
                <div class="section-title">客户合同金额分析</div>
                <div class="contract-summary">
                    <div class="contract-info">
                        <img src="../assets/images/khtitle.png" alt="" style="width: 42px"/>
                        <div class="contract-card">
                            <div class="contract-name">总合同金额(元)</div>
                            <div class="contract-meta">
                                <div class="main-amount">{{sum}}</div>
                                <div>周同比: <span class="up">{{yny}}% </span> æ—¥çŽ¯æ¯”: <span class="up">{{chain}}% </span></div>
                            </div>
                        </div>
                    </div>
                </div>
                <div style="display: flex;align-items: center;gap: 20px;justify-content: space-evenly;height: 180px;margin-top: 20px">
                    <div>
                        <Echarts ref="chart" :legend="pieLegend" :chartStyle="chartStylePie"
                                         :series="materialPieSeries"
                                         :tooltip="pieTooltip"></Echarts>
                    </div>
                    <ul class="contract-list">
                        <li v-for="item in materialPieSeries[0].data" :key="item.name">
                            <div style="display: flex;align-items: center;justify-content: space-between;width: 100%">
                                <div class="line" :style="{color: item.itemStyle.color}">●{{item.name}}</div>
                                <div style="width: 70px">{{item.rate}}%</div>
                                <div>ï¿¥{{item.value}}</div>
                            </div>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="main-panel">
                <div style="display: flex;justify-content: space-between;">
                    <div class="section-title">应收应付统计</div>
                    <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">
                        <el-radio-button label="按周" :value="1" />
                        <el-radio-button label="按月" :value="2" />
                        <el-radio-button label="按季度" :value="3" />
                    </el-radio-group>
                </div>
                <Echarts ref="chart"
                                 :color="barColors2"
                                 :chartStyle="chartStyle"
                                 :grid="grid"
                                 :series="barSeries"
                                 :tooltip="tooltip"
                                 :xAxis="xAxis"
                                 :yAxis="yAxis"
                                 style="height: 260px"></Echarts>
            </div>
        </div>
<!--        <div class="dashboard-row">-->
<!--            <div class="main-panel">-->
<!--                <div class="section-title">客户合同金额分析</div>-->
<!--                <div class="contract-summary">-->
<!--                    <div class="contract-info">-->
<!--                        <img src="../assets/images/khtitle.png" alt="" style="width: 42px"/>-->
<!--                        <div class="contract-card">-->
<!--                            <div class="contract-name">总合同金额(元)</div>-->
<!--                            <div class="contract-meta">-->
<!--                                <div class="main-amount">{{sum}}</div>-->
<!--                                <div>周同比: <span class="up">{{yny}}% </span> æ—¥çŽ¯æ¯”: <span class="up">{{chain}}% </span></div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div style="display: flex;align-items: center;gap: 20px;justify-content: space-evenly;height: 180px;margin-top: 20px">-->
<!--                    <div>-->
<!--                        <Echarts ref="chart" :legend="pieLegend" :chartStyle="chartStylePie"-->
<!--                                         :series="materialPieSeries"-->
<!--                                         :tooltip="pieTooltip"></Echarts>-->
<!--                    </div>-->
<!--                    <ul class="contract-list">-->
<!--                        <li v-for="item in materialPieSeries[0].data" :key="item.name">-->
<!--                            <div style="display: flex;align-items: center;justify-content: space-between;width: 100%">-->
<!--                                <div class="line" :style="{color: item.itemStyle.color}">●{{item.name}}</div>-->
<!--                                <div style="width: 70px">{{item.rate}}%</div>-->
<!--                                <div>ï¿¥{{item.value}}</div>-->
<!--                            </div>-->
<!--                        </li>-->
<!--                    </ul>-->
<!--                </div>-->
<!--            </div>-->
<!--            <div class="main-panel">-->
<!--                <div style="display: flex;justify-content: space-between;">-->
<!--                    <div class="section-title">应收应付统计</div>-->
<!--                    <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">-->
<!--                        <el-radio-button label="按周" :value="1" />-->
<!--                        <el-radio-button label="按月" :value="2" />-->
<!--                        <el-radio-button label="按季度" :value="3" />-->
<!--                    </el-radio-group>-->
<!--                </div>-->
<!--                <Echarts ref="chart"-->
<!--                                 :color="barColors2"-->
<!--                                 :chartStyle="chartStyle"-->
<!--                                 :grid="grid"-->
<!--                                 :series="barSeries"-->
<!--                                 :tooltip="tooltip"-->
<!--                                 :xAxis="xAxis"-->
<!--                                 :yAxis="yAxis"-->
<!--                                 style="height: 260px"></Echarts>-->
<!--            </div>-->
<!--        </div>-->
<!--        -->
        <!-- åº•部横向两栏 -->
        <div class="dashboard-row">
<!--        <div class="dashboard-row">-->
<!--            <div class="main-panel">-->
<!--                <div class="section-title">质量统计</div>-->
<!--                <div class="quality-cards">-->
@@ -155,12 +155,12 @@
<!--                                 :yAxis="yAxis1"-->
<!--                                 style="height: 260px"></Echarts>-->
<!--            </div>-->
            <div class="main-panel">
                <div class="section-title">回款与开票分析</div>
                <Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"
                                 :tooltip="tooltipLine" :xAxis="xAxis2" :yAxis="yAxis2" style="height: 270px;"></Echarts>
            </div>
        </div>
<!--            <div class="main-panel">-->
<!--                <div class="section-title">回款与开票分析</div>-->
<!--                <Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"-->
<!--                                 :tooltip="tooltipLine" :xAxis="xAxis2" :yAxis="yAxis2" style="height: 270px;"></Echarts>-->
<!--            </div>-->
<!--        </div>-->
    </div>
</template>
src/views/inventoryManagement/dispatchLog/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/issueManagement/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/receiptManagement/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/stockManagement/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/stockReport/index.vue
ÎļþÒÑɾ³ý
src/views/inventoryManagement/stockWarning/index.vue
ÎļþÒÑɾ³ý
src/views/lavorissue/ledger/Form.vue
ÎļþÒÑɾ³ý
src/views/lavorissue/ledger/Modal.vue
ÎļþÒÑɾ³ý
src/views/lavorissue/ledger/filesDia.vue
ÎļþÒÑɾ³ý
src/views/lavorissue/ledger/index.vue
ÎļþÒÑɾ³ý
src/views/lavorissue/statistics/index.vue
ÎļþÒÑɾ³ý
src/views/monitorManagement/areaControl/index.vue
ÎļþÒÑɾ³ý
src/views/monitorManagement/videoMonitor/index.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/components/milestoneList.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/components/phaseGoalList.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/components/projectForm.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/components/taskTree.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/index.vue
ÎļþÒÑɾ³ý
src/views/oaSystem/projectManagement/projectDetail.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/analytics/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/contractManagement/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/contractManagement/filesDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/contractManagement/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/dimission/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/dimission/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/employeeRecord/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/employeeRecord/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/onboarding/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/onboarding/components/formDiaXJHT.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/onboarding/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/payrollManagement/components/formDia.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/payrollManagement/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/scheduling/index.vue
ÎļþÒÑɾ³ý
src/views/personnelManagement/selfService/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/advancedPriceManagement/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/arrivalManagement/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/invoiceEntry/components/Modal.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/invoiceEntry/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/invoiceEntry/indexOld.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/paymentEntry/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/paymentHistory/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/paymentLedger/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/priceManagement/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementInvoiceLedger/Modal/UploadModal.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementInvoiceLedger/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementLedger/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementPlan/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/procurementReport/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/purchaseOrder/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/qualityInspection/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/returnManagement/index.vue
ÎļþÒÑɾ³ý
src/views/procurementManagement/thePaymentLedger/index.vue
ÎļþÒÑɾ³ý
src/views/productManagement/productIdentifier/index.vue
ÎļþÒÑɾ³ý
src/views/productionManagement/operationScheduling/components/formDia.vue
@@ -8,7 +8,7 @@
    >
      <el-button type="primary" @click="addRow" style="margin-bottom: 10px;">新增</el-button>
            <span style="font-size: 18px;margin-left: 10px">待排产数量:{{pendingNum}}</span>
      <el-table :data="tableData" border style="width: 100%" :summary-method="summarizeMainTable" show-summary :row-key="row => row.id">
      <el-table :data="tableData" border style="width: 100%" :summary-method="summarizeMainTable" show-summary :row-key="row => row.id" stripe>
        <el-table-column label="序号" width="60">
          <template #default="scope">
            {{ scope.$index + 1 }}
@@ -16,7 +16,11 @@
        </el-table-column>
        <el-table-column label="工序" prop="process">
          <template #default="scope">
                        <el-input v-model="scope.row.process" placeholder="请输入工序" />
            <el-input
                v-model="scope.row.process"
                placeholder="请输入工序"
                clearable
            />
          </template>
        </el-table-column>
        <el-table-column label="单位" prop="unit">
@@ -92,7 +96,6 @@
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {processScheduling} from "@/api/productionManagement/operationScheduling.js";
const { proxy } = getCurrentInstance()
const { work_step } = proxy.useDict("work_step")
const emit = defineEmits(['close'])
const dialogFormVisible = ref(false);
src/views/productionManagement/operationScheduling/index.vue
@@ -2,16 +2,6 @@
    <div class="app-container">
        <div class="search_form">
            <el-form :model="searchForm" :inline="true">
                <el-form-item label="客户名称:">
                    <el-input v-model="searchForm.customerName" placeholder="请输入" clearable prefix-icon="Search"
                                        style="width: 200px;"
                                        @change="handleQuery" />
                </el-form-item>
                <el-form-item label="项目名称:">
                    <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
                                        style="width: 200px;"
                                        @change="handleQuery" />
                </el-form-item>
                <el-form-item label="派工日期:">
                    <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                                                    placeholder="请选择" clearable @change="changeDaterange" />
@@ -32,7 +22,6 @@
            <div style="text-align: right" class="mb10">
                <el-button type="primary" @click="openForm">工序排产</el-button>
                <el-button type="danger" @click="handleDelete" plain>取消排产</el-button>
                <el-button @click="handleOut">导出</el-button>
            </div>
            <PIMTable
                rowKey="id"
@@ -61,9 +50,12 @@
    searchForm: {
        staffName: "",
        status: 1,
        entryDate: null, // å½•入日期
        entryDateStart: undefined,
        entryDateEnd: undefined,
    entryDate: [
      dayjs().format("YYYY-MM-DD"),
      dayjs().add(1, "day").format("YYYY-MM-DD"),
    ], // å½•入日期
    entryDateStart: dayjs().format("YYYY-MM-DD"),
    entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"),
    },
});
const { searchForm } = toRefs(data);
@@ -99,26 +91,6 @@
    {
        label: "派工人",
        prop: "schedulingUserName",
    },
    {
        label: "合同号",
        prop: "salesContractNo",
        width: 200,
    },
    {
        label: "客户合同号",
        prop: "customerContractNo",
        width: 200,
    },
    {
        label: "客户名称",
        prop: "customerName",
        width: 200,
    },
    {
        label: "项目名称",
        prop: "projectName",
        width:300
    },
    {
        label: "产品大类",
@@ -248,22 +220,6 @@
            proxy.$modal.msg("已取消");
        });
};
// å¯¼å‡º
const handleOut = () => {
    ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
        confirmButtonText: "确认",
        cancelButtonText: "取消",
        type: "warning",
    })
        .then(() => {
            proxy.download("/salesLedger/scheduling/exportTwo", {}, "工序排产.xlsx");
        })
        .catch(() => {
            proxy.$modal.msg("已取消");
        });
};
onMounted(() => {
    getList();
});
src/views/productionManagement/productionCosting/index.vue
@@ -57,26 +57,6 @@
        width: 90,
    },
    {
        label: "合同号",
        prop: "salesContractNo",
        width: 220,
    },
    {
        label: "客户合同号",
        prop: "customerContractNo",
        width: 250,
    },
    {
        label: "客户名称",
        prop: "customerName",
        width: 250,
    },
    {
        label: "项目名称",
        prop: "projectName",
        width:300
    },
    {
        label: "产品大类",
        prop: "productCategory",
        width: 160,
src/views/productionManagement/productionDispatching/components/formDia.vue
@@ -9,29 +9,23 @@
      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input v-model="form.projectName" placeholder="请输入" clearable disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="产品大类:" prop="productCategory">
              <el-input v-model="form.productCategory" placeholder="请输入" clearable disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="总数量:" prop="quantity">
              <el-input v-model="form.quantity" placeholder="请输入" clearable disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
                        <el-form-item label="待排产数量:" prop="pendingQuantity">
                            <el-input v-model="form.pendingQuantity" placeholder="请输入" clearable disabled/>
                        </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
                        <el-form-item label="本次排产数量:" prop="schedulingNum">
                            <el-input-number
@@ -103,13 +97,13 @@
const operationType = ref('')
const data = reactive({
  form: {
        projectName: "",
        productCategory: "",
        quantity: "",
        schedulingNum: "",
        schedulingUserId: "",
        schedulingDate: "",
        pendingQuantity: "",
    salesLedgerProductId: "",
  },
  rules: {
        schedulingNum: [{ required: true, message: "请输入", trigger: "blur" },],
@@ -129,6 +123,10 @@
        userList.value = res.data;
    });
    form.value = {...row}
  // ç»‘定外层传入的产品ID到后端需要的 salesLedgerProductId å­—段
  form.value.salesLedgerProductId = row.id;
  // ç¡®ä¿ä¸ä¼šæŠŠåŽŸå§‹ id å½“作排产记录主键传给后端
  delete form.value.id;
    form.value.schedulingNum = 0
    form.value.schedulingUserId = userStore.id
    form.value.schedulingDate = dayjs().format("YYYY-MM-DD");
src/views/productionManagement/productionDispatching/index.vue
@@ -2,32 +2,13 @@
    <div class="app-container">
        <div class="search_form">
            <div>
                <span class="search_title">客户名称:</span>
                <el-input
                    v-model="searchForm.customerName"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
                    clearable
                    prefix-icon="Search"
                />
                <span class="search_title ml10">项目名称:</span>
                <el-input
                    v-model="searchForm.projectName"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
                    clearable
                    prefix-icon="Search"
                />
                <span class="search_title ml10">录入日期:</span>
        <span class="search_title">录入日期:</span>
                <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                                                placeholder="请选择" clearable @change="changeDaterange" />
                <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
            </div>
            <div>
                <el-button type="primary" @click="openForm('add')">生产派工</el-button>
                <el-button @click="handleOut">导出</el-button>
            </div>
        </div>
        <div class="table_list">
@@ -52,38 +33,23 @@
import FormDia from "@/views/productionManagement/productionDispatching/components/formDia.vue";
import dayjs from "dayjs";
import {schedulingListPage} from "@/api/productionManagement/productionOrder.js";
import { ElMessageBox } from "element-plus";
const data = reactive({
    searchForm: {
        customerName: "",
        projectName: "",
        entryDate: null, // å½•入日期
        entryDateStart: undefined,
        entryDateEnd: undefined,
    entryDate: [
      dayjs().format("YYYY-MM-DD"),
      dayjs().add(1, "day").format("YYYY-MM-DD"),
    ], // å½•入日期
    entryDateStart: dayjs().format("YYYY-MM-DD"),
    entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"),
    },
});
const { searchForm } = toRefs(data);
const tableColumn = ref([
    {
        label: "合同号",
        prop: "salesContractNo",
        width: 220,
    },
    {
        label: "客户合同号",
        prop: "customerContractNo",
        width: 250,
    },
    {
        label: "客户名称",
        prop: "customerName",
        width: 250,
    },
    {
        label: "项目名称",
        prop: "projectName",
        width:300
    label: "录入日期",
    prop: "registerDate",
    width: 120,
    },
    {
        label: "产品大类",
@@ -99,11 +65,6 @@
        label: "单位",
        prop: "unit",
        width:90
    },
    {
        label: "录入日期",
        prop: "entryDate",
        width: 120,
    },
    {
        label: "数量",
@@ -189,22 +150,13 @@
    })
};
// å¯¼å‡º
const handleOut = () => {
    ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
        confirmButtonText: "确认",
        cancelButtonText: "取消",
        type: "warning",
    })
        .then(() => {
            proxy.download("/salesLedger/scheduling/exportOne", {}, "生产派工.xlsx");
        })
        .catch(() => {
            proxy.$modal.msg("已取消");
        });
};
onMounted(() => {
  searchForm.value.entryDate = [
    dayjs().format("YYYY-MM-DD"),
    dayjs().add(1, "day").format("YYYY-MM-DD"),
  ]
  searchForm.value.entryDateStart = dayjs().format("YYYY-MM-DD")
  searchForm.value.entryDateEnd = dayjs().add(1, "day").format("YYYY-MM-DD")
    getList();
});
</script>
src/views/productionManagement/productionOrder/index.vue
@@ -2,18 +2,19 @@
    <div class="app-container">
        <div class="search_form">
            <div>
                <span class="search_title">客户名称:</span>
        <span class="search_title">产品大类:</span>
<!--        <el-tree-select-->
<!--            v-model="searchForm.productCategory"-->
<!--            :data="productOptions"-->
<!--            placeholder="请选择"-->
<!--            clearable-->
<!--            check-strictly-->
<!--            :render-after-expand="false"-->
<!--            style="width: 240px"-->
<!--            @change="handleQuery"-->
<!--        />-->
                <el-input
                    v-model="searchForm.customerName"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
                    clearable
                    prefix-icon="Search"
                />
                <span class="search_title ml10">项目名称:</span>
                <el-input
                    v-model="searchForm.projectName"
            v-model="searchForm.productCategory"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
@@ -21,13 +22,14 @@
                    prefix-icon="Search"
                />
                <span class="search_title ml10">录入日期:</span>
                <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
        <el-date-picker v-model="searchForm.registerDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                                                placeholder="请选择" clearable @change="changeDaterange" />
                <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
                >搜索</el-button
                >
            </div>
            <div>
        <el-button type="primary" @click="openDialog('create')">新增订单</el-button>
                <el-button @click="handleOut">导出</el-button>
            </div>
        </div>
@@ -39,116 +41,279 @@
                :page="page"
                :tableLoading="tableLoading"
                @pagination="pagination"
            ></PIMTable>
      >
        <template #action="{ row }">
          <el-button type="primary" link @click="handleEdit(row)">编辑</el-button>
          <el-button type="danger" link @click="handleDelete(row)">删除</el-button>
        </template>
      </PIMTable>
        </div>
    <el-dialog v-model="dialogVisible" :title="dialogTitle" width="40%" @close="closeDialog">
      <el-form ref="formRef" :model="form" :rules="formRules" label-width="100px">
        <el-form-item label="录入日期" prop="registerDate">
          <el-date-picker v-model="form.registerDate" type="date" value-format="YYYY-MM-DD" format="YYYY-MM-DD" placeholder="请选择录入日期" style="width: 100%"/>
        </el-form-item>
        <el-form-item label="产品大类" prop="productCategory">
          <el-input
              v-model="form.productCategory"
              placeholder="请输入产品大类"
              clearable
          />
        </el-form-item>
        <el-form-item label="规格型号" prop="specificationModel">
          <el-input
              v-model="form.specificationModel"
              placeholder="请输入规格型号"
              clearable
          />
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-input
              v-model="form.unit"
              placeholder="请输入单位"
              clearable
          />
        </el-form-item>
        <el-form-item label="数量" prop="quantity">
          <el-input-number v-model="form.quantity" :min="0" :step="0.1" style="width: 100%"/>
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitForm">确认</el-button>
          <el-button @click="closeDialog">取消</el-button>
        </div>
      </template>
    </el-dialog>
    </div>
</template>
<script setup>
import {onMounted, ref} from "vue";
import {onMounted, ref, reactive, toRefs, getCurrentInstance} from "vue";
import { ElMessageBox } from "element-plus";
import dayjs from "dayjs";
import {schedulingListPage} from "@/api/productionManagement/productionOrder.js";
import {schedulingListPage, addProductionOrder, updateProductionOrder, deleteProductionOrder} from "@/api/productionManagement/productionOrder.js";
import {productTreeList} from "@/api/basicData/product.js";
const { proxy } = getCurrentInstance();
const tableColumn = ref([
    {
        label: "录入日期",
        prop: "entryDate",
    prop: "registerDate",
        width: 120,
    },
    {
        label: "合同号",
        prop: "salesContractNo",
        width: 220,
    },
    {
        label: "客户合同号",
        prop: "customerContractNo",
        width: 250,
    },
    {
        label: "客户名称",
        prop: "customerName",
        width: 250,
    },
    {
        label: "项目名称",
        prop: "projectName",
        width:300
    },
    {
        label: "付款状态",
        prop: "status",
        dataType: "tag",
        formatType: (params) => {
            if (params == '未完成') {
                return "danger";
            } else if (params == '已完成') {
                return "success";
            } else {
                return null;
            }
        },
    label: "生产订单号",
    prop: "orderNo",
    },
    {
        label: "产品大类",
        prop: "productCategory",
        width: 160,
    },
    {
        label: "规格型号",
        prop: "specificationModel",
        width: 220,
    },
    {
        label: "单位",
        prop: "unit",
        width:90
    },
    {
        label: "数量",
        prop: "quantity",
    },
  // {
  //     label: "排产数量",
  //     prop: "schedulingNum",
  //     width: 100,
  // },
  // {
  //     label: "完工数量",
  //     prop: "successNum",
  //     width: 100,
  // },
    {
        label: "排产数量",
        prop: "schedulingNum",
        width: 100,
    },
    {
        label: "完工数量",
        prop: "successNum",
        width: 100,
    },
    label: "操作",
    prop: "action",
    width: 120,
    fixed: "right",
    dataType: "slot",
    align: "center",
    slot: "action"
  }
]);
const tableData = ref([]);
const tableLoading = ref(false);
const page = reactive({
const page = ref({
    current: 1,
    size: 100,
    total: 0,
});
const dialogVisible = ref(false);
const dialogTitle = ref("");
const dialogMode = ref(""); // 'create' æˆ– 'edit'
const formRef = ref();
const productOptions = ref([]);
const form = reactive({
  id: null,
  registerDate: dayjs().format("YYYY-MM-DD"),
  productCategory: "",
  specificationModel: "",
  unit: "",
  quantity: null,
});
const formRules = {
  registerDate: [{ required: true, message: "请选择录入日期", trigger: "change" }],
  productCategory: [{ required: true, message: "请输入产品大类", trigger: "blur" }],
  specificationModel: [{ required: true, message: "请输入规格型号", trigger: "blur" }],
  unit: [{ required: true, message: "请输入单位", trigger: "blur" }],
  quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
};
const data = reactive({
    searchForm: {
        customerName: "",
        projectName: "",
        entryDate: null, // å½•入日期
    productCategory: "",
    registerDate: null, // å½•入日期
        entryDateStart: undefined,
        entryDateEnd: undefined,
    },
});
const { searchForm } = toRefs(data);
const openDialog = (mode, row = null) => {
  dialogMode.value = mode;
  if (mode === 'create') {
    dialogTitle.value = "新增生产订单";
    resetForm();
  } else if (mode === 'edit') {
    dialogTitle.value = "编辑生产订单";
    resetForm();
    console.log('编辑数据:', row);
    // å¡«å……编辑数据
    form.id = row.id;
    form.registerDate = row.registerDate;
    form.productCategory = row.productCategory;
    form.specificationModel = row.specificationModel;
    form.unit = row.unit;
    form.quantity = row.quantity;
  }
  dialogVisible.value = true;
};
const closeDialog = () => {
  dialogVisible.value = false;
};
const resetForm = () => {
  form.id = null;
  form.registerDate = dayjs().format("YYYY-MM-DD");
  form.productCategory = "";
  form.specificationModel = "";
  form.unit = "";
  form.quantity = null;
};
const submitForm = () => {
  formRef.value?.validate(async (valid) => {
    if (!valid) return;
    try {
      const payload = {
        registerDate: form.registerDate,
        productCategory: form.productCategory,
        specificationModel: form.specificationModel,
        unit: form.unit,
        quantity: form.quantity,
      };
      if (dialogMode.value === 'create') {
        await addProductionOrder(payload);
        proxy.$modal.msgSuccess("新增成功");
      } else if (dialogMode.value === 'edit') {
        payload.id = form.id;
        await updateProductionOrder(payload);
        proxy.$modal.msgSuccess("编辑成功");
      }
      closeDialog();
      getList();
    } catch (err) {
      console.error(`${dialogMode.value === 'create' ? '新增' : '编辑'}失败`, err);
      proxy.$modal.msgError(`${dialogMode.value === 'create' ? '新增' : '编辑'}失败,请重试`);
    }
  });
};
// ç¼–辑方法
const handleEdit = (row) => {
  openDialog('edit', row);
};
// åˆ é™¤æ–¹æ³•
const handleDelete = (row) => {
  proxy.$modal.confirm(`确定要删除生产订单"${row.orderNo}"吗?`, "删除确认", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    try {
      await deleteProductionOrder([row.id]);
      proxy.$modal.msgSuccess("删除成功");
      getList(); // åˆ·æ–°åˆ—表
    } catch (err) {
      console.error("删除失败", err);
      proxy.$modal.msgError("删除失败,请重试");
    }
  }).catch(() => {
    proxy.$modal.msg("已取消删除");
  });
};
const getProductOptions = () => {
  return productTreeList().then((res) => {
    productOptions.value = convertIdToValue(res || []);
  });
};
const convertIdToValue = (data) => {
  return data.map((item) => {
    const { id, children, ...rest } = item;
    const newItem = {
      ...rest,
      value: id,
    };
    if (children && children.length > 0) {
      newItem.children = convertIdToValue(children);
    }
    return newItem;
  });
};
const findNodeById = (nodes, value) => {
  for (let i = 0; i < nodes.length; i++) {
    if (nodes[i].value === value) {
      return nodes[i].label;
    }
    if (nodes[i].children && nodes[i].children.length > 0) {
      const label = findNodeById(nodes[i].children, value);
      if (label) return label;
    }
  }
  return null;
};
// æŸ¥è¯¢åˆ—表
/** æœç´¢æŒ‰é’®æ“ä½œ */
const handleQuery = () => {
    page.current = 1;
  page.value.current = 1;
    getList();
};
const pagination = (obj) => {
    page.current = obj.page;
    page.size = obj.limit;
  page.value.current = obj.page;
  page.value.size = obj.limit;
    getList();
};
const changeDaterange = (value) => {
@@ -163,13 +328,27 @@
};
const getList = () => {
    tableLoading.value = true;
    // æž„造一个新的对象,不包含entryDate字段
    const params = { ...searchForm.value, ...page };
    params.entryDate = undefined
  // æž„造一个新的对象,不包含entryDate字段和 total å­—段
  const { total, ...pageParams } = page.value;
  const params = { ...searchForm.value, ...pageParams };
  params.registerDate = undefined;
  if (params.productCategory) {
    // å¦‚果是对象类型,获取其label(名称)而不是value(ID)
    if (typeof params.productCategory === "object") {
      params.productCategory = findNodeById(productOptions.value, params.productCategory) || params.productCategory;
    }
    // å¦‚果是ID,转换为名称
    else if (typeof params.productCategory === "string" || typeof params.productCategory === "number") {
      const categoryName = findNodeById(productOptions.value, params.productCategory);
      if (categoryName) {
        params.productCategory = categoryName;
      }
    }
  }
    schedulingListPage(params).then((res) => {
        tableLoading.value = false;
        tableData.value = res.data.records;
        page.total = res.data.total;
    page.value.total = res.data.total;
    }).catch(() => {
        tableLoading.value = false;
    })
@@ -183,7 +362,8 @@
        type: "warning",
    })
        .then(() => {
            proxy.download("/salesLedger/scheduling/export", {}, "生产订单.xlsx");
        // proxy.download("/salesLedger/scheduling/export", {}, "生产订单.xlsx");
        proxy.download("/productionOrder/export", {}, "生产订单.xlsx");
        })
        .catch(() => {
            proxy.$modal.msg("已取消");
@@ -191,6 +371,11 @@
};
onMounted(() => {
  getProductOptions();
  // ä¸è®¾ç½®é»˜è®¤æ—¥æœŸï¼Œå…¨éƒ¨æ¡ä»¶ä¸ºç©ºåŠ è½½
  searchForm.value.registerDate = null;
  searchForm.value.entryDateStart = undefined;
  searchForm.value.entryDateEnd = undefined;
    getList();
});
</script>
src/views/productionManagement/productionReporting/components/formDia.vue
src/views/productionManagement/productionReporting/index.vue
@@ -2,16 +2,6 @@
    <div class="app-container">
        <div class="search_form">
            <el-form :model="searchForm" :inline="true">
                <el-form-item label="客户名称:">
                    <el-input v-model="searchForm.customerName" placeholder="请输入" clearable prefix-icon="Search"
                                        style="width: 200px;"
                                        @change="handleQuery" />
                </el-form-item>
                <el-form-item label="项目名称:">
                    <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
                                        style="width: 200px;"
                                        @change="handleQuery" />
                </el-form-item>
                <el-form-item label="排产日期:">
                    <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                                                    placeholder="请选择" clearable @change="changeDaterange" />
@@ -31,7 +21,6 @@
        <div class="table_list">
            <div style="text-align: right" class="mb10">
                <el-button type="primary" @click="openForm('add')">生产报工</el-button>
                <el-button @click="handleOut">导出</el-button>
            </div>
            <PIMTable
                rowKey="id"
@@ -51,6 +40,7 @@
                        :data="expandData"
                        border
                        show-summary
              stripe
                        :summary-method="summarizeMainTable"
                        v-loading="childrenLoading"
                    >
@@ -112,6 +102,7 @@
                                    size="small"
                                    @click="changeEditType(scope.row)"
                                    v-if="!scope.row.editType"
                    :disabled="scope.row.parentStatus === 3"
                                >编辑</el-button
                                >
                                <el-button
@@ -148,9 +139,12 @@
const data = reactive({
    searchForm: {
        staffName: "",
        entryDate: null, // å½•入日期
        entryDateStart: undefined,
        entryDateEnd: undefined,
    entryDate: [
      dayjs().format("YYYY-MM-DD"),
      dayjs().add(1, "day").format("YYYY-MM-DD"),
    ], // å½•入日期
    entryDateStart: dayjs().format("YYYY-MM-DD"),
    entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"),
    },
});
const { searchForm } = toRefs(data);
@@ -194,26 +188,6 @@
    {
        label: "排产人",
        prop: "schedulingUserName",
    },
    {
        label: "合同号",
        prop: "salesContractNo",
        width: 200,
    },
    {
        label: "客户合同号",
        prop: "customerContractNo",
        width: 200,
    },
    {
        label: "客户名称",
        prop: "customerName",
        width: 200,
    },
    {
        label: "项目名称",
        prop: "projectName",
        width:300
    },
    {
        label: "产品大类",
@@ -413,7 +387,7 @@
        type: "warning",
    })
        .then(() => {
            proxy.download("/salesLedger/work/export", {}, "生产报工.xlsx");
        proxy.download("/staff/staffJoinLeaveRecord/export", {staffState: 1}, "人员入职.xlsx");
        })
        .catch(() => {
            proxy.$modal.msg("已取消");
src/views/reportAnalysis/dataDashboard/index.vue
ÎļþÒÑɾ³ý
src/views/reportAnalysis/projectProfit/index.vue
ÎļþÒÑɾ³ý
src/views/reportAnalysis/reportManagement.vue
ÎļþÒÑɾ³ý
src/views/reportAnalysis/reportManagement/index.vue
@@ -16,18 +16,9 @@
                        @change="handleFilterChange"
                    />
                </el-form-item>
                <el-form-item label="报表类型">
                    <el-select v-model="filterForm.reportType" placeholder="请选择报表类型" @change="handleFilterChange" style="width: 300px">
                        <el-option label="样品进度报表" value="sample" />
                        <el-option label="设备使用报表" value="equipment" />
                        <el-option label="检测项目报表" value="inspection" />
                        <el-option label="领用记录报表" value="usage" />
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="handleFilterChange">查询</el-button>
                    <el-button @click="resetFilter">重置</el-button>
                    <el-button type="success" @click="exportReport">导出报表</el-button>
                </el-form-item>
            </el-form>
        </el-card>
@@ -43,7 +34,7 @@
                            </div>
                            <div class="stat-info">
                                <div class="stat-number">{{ statistics.totalSamples }}</div>
                                <div class="stat-label">总样品数</div>
                                <div class="stat-label">总订单数</div>
                            </div>
                        </div>
                    </el-card>
@@ -56,7 +47,7 @@
                            </div>
                            <div class="stat-info">
                                <div class="stat-number">{{ statistics.activeEquipment }}</div>
                                <div class="stat-label">在用设备</div>
                                <div class="stat-label">待生产数量</div>
                            </div>
                        </div>
                    </el-card>
@@ -69,7 +60,7 @@
                            </div>
                            <div class="stat-info">
                                <div class="stat-number">{{ statistics.completedInspections }}</div>
                                <div class="stat-label">已完成检测</div>
                                <div class="stat-label">已生产数量</div>
                            </div>
                        </div>
                    </el-card>
@@ -82,7 +73,7 @@
                            </div>
                            <div class="stat-info">
                                <div class="stat-number">{{ statistics.totalUsage }}</div>
                                <div class="stat-label">总领用次数</div>
                                <div class="stat-label">总核算工时</div>
                            </div>
                        </div>
                    </el-card>
@@ -98,8 +89,7 @@
                    <el-card class="chart-card" shadow="hover">
                        <template #header>
                            <div class="card-header">
                                <span>样品进度统计</span>
                                <el-button link @click="refreshSampleChart">刷新</el-button>
                                <span>生产报工统计</span>
                            </div>
                        </template>
                        <div ref="sampleChartRef" class="chart-container"></div>
@@ -111,39 +101,10 @@
                    <el-card class="chart-card" shadow="hover">
                        <template #header>
                            <div class="card-header">
                                <span>设备使用率统计</span>
                                <el-button link @click="refreshEquipmentChart">刷新</el-button>
                                <span>生产核算统计</span>
                            </div>
                        </template>
                        <div ref="equipmentChartRef" class="chart-container"></div>
                    </el-card>
                </el-col>
            </el-row>
            <el-row :gutter="20" style="margin-top: 20px;">
                <!-- æ£€æµ‹é¡¹ç›®ç»Ÿè®¡ -->
                <el-col :span="12">
                    <el-card class="chart-card" shadow="hover">
                        <template #header>
                            <div class="card-header">
                                <span>检测项目分布</span>
                                <el-button link @click="refreshInspectionChart">刷新</el-button>
                            </div>
                        </template>
                        <div ref="inspectionChartRef" class="chart-container"></div>
                    </el-card>
                </el-col>
                <!-- é¢†ç”¨è®°å½•趋势 -->
                <el-col :span="12">
                    <el-card class="chart-card" shadow="hover">
                        <template #header>
                            <div class="card-header">
                                <span>领用记录趋势</span>
                                <el-button link @click="refreshUsageChart">刷新</el-button>
                            </div>
                        </template>
                        <div ref="usageChartRef" class="chart-container"></div>
                    </el-card>
                </el-col>
            </el-row>
@@ -153,10 +114,8 @@
        <el-card class="table-card" shadow="hover">
            <template #header>
                <div class="card-header">
                    <span>详细数据</span>
                    <span>生产报工详情</span>
                    <div>
                        <el-button type="primary" size="small" @click="refreshTable">刷新</el-button>
                        <el-button type="success" size="small" @click="exportTable">导出</el-button>
                    </div>
                </div>
            </template>
@@ -169,40 +128,28 @@
                border
            >
                <el-table-column prop="id" label="编号" width="80" />
                <el-table-column prop="name" label="名称" />
                <el-table-column prop="orderNo" label="生产订单号" />
                <el-table-column prop="productCategory" label="产品大类" />
                <el-table-column prop="specificationModel" label="规格型号" />
                <el-table-column prop="unit" label="单位" />
                <el-table-column prop="schedulingUserName" label="排产人" />
                <el-table-column prop="schedulingDate" label="排产日期" />
                <el-table-column prop="process" label="工序" />
                <el-table-column prop="schedulingNum" label="排产数量" />
                <el-table-column prop="finishedNum" label="生产数量" />
        <el-table-column prop="pendingFinishNum" label="待生产数量" >
          <template #default="scope">
            <span>{{ scope.row.schedulingNum - scope.row.finishedNum }}</span>
          </template>
        </el-table-column>
                <el-table-column prop="status" label="状态">
                    <template #default="scope">
                        <el-tag :type="getStatusType(scope.row.status)">
                            {{ scope.row.status }}
                        <el-tag :type="getStatusType(scope.row.status).type">
                            {{ getStatusType(scope.row.status).label }}
                        </el-tag>
                    </template>
                </el-table-column>
                <el-table-column prop="progress" label="进度">
                    <template #default="scope">
                        <el-progress :percentage="scope.row.progress" :status="getProgressStatus(scope.row.progress)" />
                    </template>
                </el-table-column>
                <el-table-column prop="createTime" label="创建时间" width="180" />
                <el-table-column prop="updateTime" label="更新时间" width="180" />
                <el-table-column label="操作" width="150" fixed="right">
                    <template #default="scope">
                        <el-button link size="small" @click="viewDetail(scope.row)">查看</el-button>
                        <el-button link size="small" @click="editItem(scope.row)">编辑</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <div class="pagination-container">
                <el-pagination
                    v-model:current-page="pagination.currentPage"
                    v-model:page-size="pagination.pageSize"
                    :page-sizes="[10, 20, 50, 100]"
                    :total="pagination.total"
                    layout="total, sizes, prev, pager, next, jumper"
                    @size-change="handleSizeChange"
                    @current-change="handleCurrentChange"
                />
            </div>
        </el-card>
    </div>
</template>
@@ -212,6 +159,7 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import * as echarts from 'echarts'
import { Box, Tools, Document, ShoppingCart } from '@element-plus/icons-vue'
import {reportAnalysis} from '@/api/productionManagement/productionOrder'
// å“åº”式数据
const filterForm = reactive({
@@ -220,25 +168,18 @@
})
const statistics = reactive({
    totalSamples: 1250,
    activeEquipment: 45,
    completedInspections: 890,
    totalUsage: 2340
  totalSamples: 0,
  activeEquipment: 0,
  completedInspections: 0,
  totalUsage: 0
})
const tableData = ref([])
const tableLoading = ref(false)
const pagination = reactive({
    currentPage: 1,
    pageSize: 20,
    total: 0
})
// å›¾è¡¨å¼•用
const sampleChartRef = ref(null)
const equipmentChartRef = ref(null)
const inspectionChartRef = ref(null)
const usageChartRef = ref(null)
// å›¾è¡¨å®žä¾‹
let sampleChart = null
@@ -248,60 +189,34 @@
// åˆå§‹åŒ–数据
const initData = () => {
    // æ¨¡æ‹Ÿè¡¨æ ¼æ•°æ®
    tableData.value = [
        {
            id: 'SP001',
            name: '样品A-001',
            type: '金属材料',
            status: '检测中',
            progress: 75,
            createTime: '2025-01-15 09:30:00',
            updateTime: '2025-01-20 14:20:00'
        },
        {
            id: 'SP002',
            name: '样品B-002',
            type: '塑料制品',
            status: '已完成',
            progress: 100,
            createTime: '2025-01-10 10:15:00',
            updateTime: '2025-01-18 16:45:00'
        },
        {
            id: 'SP003',
            name: '样品C-003',
            type: '电子元件',
            status: '待检测',
            progress: 0,
            createTime: '2025-01-22 08:45:00',
            updateTime: '2025-01-22 08:45:00'
        },
        {
            id: 'EQ001',
            name: '检测设备A',
            type: '光谱仪',
            status: '使用中',
            progress: 60,
            createTime: '2025-01-05 14:20:00',
            updateTime: '2025-01-20 11:30:00'
        },
        {
            id: 'EQ002',
            name: '检测设备B',
            type: '显微镜',
            status: '空闲',
            progress: 0,
            createTime: '2025-01-08 16:10:00',
            updateTime: '2025-01-19 09:15:00'
  let startDate=null,endDate=null;
  if(filterForm.dateRange && filterForm.dateRange.length===2){
    startDate = filterForm.dateRange[0];
    endDate = filterForm.dateRange[1];
        }
    ]
    pagination.total = tableData.value.length
  reportAnalysis({startDate:startDate,endDate:endDate}).then(res=>{
    statistics.totalSamples = res.data.totalData.totalOrderNum
    statistics.activeEquipment = res.data.totalData.tobeProduced
    statistics.completedInspections = res.data.totalData.finishProduced
    statistics.totalUsage = res.data.totalData.totalWorkhours
    // åˆå§‹åŒ–图表
    let chartData = res.data.productData?res.data.productData:{
      finishProduced:0,
      inProduced:0,
      tobeProduced:0
    };
    initSampleChart([
      { value: chartData.finishProduced, name: '已完成' },
      { value: chartData.inProduced, name: '生产中' },
      { value: chartData.tobeProduced, name: '待报工' },
    ])
    initEquipmentChart(res.data.workHours)
    tableData.value = res.data.productDetails
  })
}
// åˆå§‹åŒ–样品进度图表
const initSampleChart = () => {
const initSampleChart = (charData) => {
    if (sampleChartRef.value) {
        sampleChart = echarts.init(sampleChartRef.value)
        const option = {
@@ -336,12 +251,7 @@
                    labelLine: {
                        show: false
                    },
                    data: [
                        { value: 450, name: '已完成' },
                        { value: 320, name: '检测中' },
                        { value: 280, name: '待检测' },
                        { value: 200, name: '已暂停' }
                    ]
                    data: charData
                }
            ]
        }
@@ -350,8 +260,16 @@
}
// åˆå§‹åŒ–设备使用图表
const initEquipmentChart = () => {
const initEquipmentChart = (chartData) => {
    if (equipmentChartRef.value) {
    let processData = [];
    let workHoursData = [];
    if(chartData){
      chartData.forEach(item=>{
        processData.push(item.process);
        workHoursData.push(item.workHours);
      })
    }
        equipmentChart = echarts.init(equipmentChartRef.value)
        const option = {
            title: {
@@ -365,22 +283,23 @@
            },
            xAxis: {
                type: 'category',
                data: ['光谱仪', '显微镜', '硬度计', '拉力机', '冲击机', '金相仪']
                data: processData,
        name: '工序'
            },
            yAxis: {
                type: 'value',
                name: '使用率(%)'
                name: '核算工时'
            },
            series: [
                {
                    name: '使用率',
                    name: '核算工时',
                    type: 'bar',
                    data: [85, 60, 75, 90, 45, 70],
                    data: workHoursData,
                    itemStyle: {
                        color: function(params) {
                            const colors = ['#409EFF', '#67C23A', '#E6A23C', '#F56C6C', '#909399', '#9C27B0']
                            return colors[params.dataIndex]
                        }
                        // color: function(params) {
                        //     const colors = ['#409EFF', '#67C23A', '#E6A23C', '#F56C6C', '#909399', '#9C27B0']
                        //     return colors[params.dataIndex]
                        // }
                    }
                }
            ]
@@ -389,92 +308,10 @@
    }
}
// åˆå§‹åŒ–检测项目图表
const initInspectionChart = () => {
    if (inspectionChartRef.value) {
        inspectionChart = echarts.init(inspectionChartRef.value)
        const option = {
            title: {
                show: false
            },
            tooltip: {
                trigger: 'item'
            },
            legend: {
                orient: 'vertical',
                left: 'left'
            },
            series: [
                {
                    name: '检测项目',
                    type: 'pie',
                    radius: '50%',
                    data: [
                        { value: 335, name: '物理性能' },
                        { value: 310, name: '化学分析' },
                        { value: 234, name: '尺寸测量' },
                        { value: 135, name: '外观检查' },
                        { value: 148, name: '其他检测' }
                    ],
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        }
        inspectionChart.setOption(option)
    }
}
// åˆå§‹åŒ–领用记录图表
const initUsageChart = () => {
    if (usageChartRef.value) {
        usageChart = echarts.init(usageChartRef.value)
        const option = {
            title: {
                show: false
            },
            tooltip: {
                trigger: 'axis'
            },
            legend: {
                data: ['领用次数', '归还次数']
            },
            xAxis: {
                type: 'category',
                boundaryGap: false,
                data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
            },
            yAxis: {
                type: 'value'
            },
            series: [
                {
                    name: '领用次数',
                    type: 'line',
                    stack: 'Total',
                    data: [120, 132, 101, 134, 90, 230, 210, 182, 191, 234, 290, 330]
                },
                {
                    name: '归还次数',
                    type: 'line',
                    stack: 'Total',
                    data: [110, 125, 95, 128, 85, 220, 200, 175, 185, 225, 280, 320]
                }
            ]
        }
        usageChart.setOption(option)
    }
}
// äº‹ä»¶å¤„理函数
const handleFilterChange = () => {
    ElMessage.success('筛选条件已更新')
    // è¿™é‡Œå¯ä»¥æ ¹æ®ç­›é€‰æ¡ä»¶é‡æ–°åŠ è½½æ•°æ®
   initData()
}
const resetFilter = () => {
@@ -483,62 +320,13 @@
    ElMessage.info('筛选条件已重置')
}
const exportReport = () => {
    ElMessage.success('报表导出功能开发中...')
}
const refreshSampleChart = () => {
    initSampleChart()
    ElMessage.success('样品进度图表已刷新')
}
const refreshEquipmentChart = () => {
    initEquipmentChart()
    ElMessage.success('设备使用图表已刷新')
}
const refreshInspectionChart = () => {
    initInspectionChart()
    ElMessage.success('检测项目图表已刷新')
}
const refreshUsageChart = () => {
    initUsageChart()
    ElMessage.success('领用记录图表已刷新')
}
const refreshTable = () => {
    tableLoading.value = true
    setTimeout(() => {
        tableLoading.value = false
        ElMessage.success('表格数据已刷新')
    }, 1000)
}
const exportTable = () => {
    ElMessage.success('表格导出功能开发中...')
}
const handleSizeChange = (val) => {
    pagination.pageSize = val
    // é‡æ–°åŠ è½½æ•°æ®
}
const handleCurrentChange = (val) => {
    pagination.currentPage = val
    // é‡æ–°åŠ è½½æ•°æ®
}
const getStatusType = (status) => {
    const statusMap = {
        '已完成': 'success',
        '检测中': 'warning',
        '待检测': 'info',
        '已暂停': 'danger',
        '使用中': 'primary',
        '空闲': 'info'
        '3': {type:'success',label:'已完成'},
        '2': {type:'warning',label:'生产中'},
        '1': {type:'info',label:'待生产'}
    }
    return statusMap[status] || 'info'
    return statusMap[status] || {type:'info',label:'未知状态'}
}
const getProgressStatus = (progress) => {
@@ -548,24 +336,9 @@
    return 'exception'
}
const viewDetail = (row) => {
    ElMessage.info(`查看详情: ${row.name}`)
}
const editItem = (row) => {
    ElMessage.info(`编辑项目: ${row.name}`)
}
// ç”Ÿå‘½å‘¨æœŸ
onMounted(() => {
    initData()
    nextTick(() => {
        initSampleChart()
        initEquipmentChart()
        initInspectionChart()
        initUsageChart()
    })
    // ç›‘听窗口大小变化,重新调整图表大小
    window.addEventListener('resize', () => {
        sampleChart?.resize()
@@ -581,11 +354,6 @@
    padding: 20px;
    background-color: #f5f5f5;
    min-height: 100vh;
}
.page-header {
    margin-bottom: 20px;
    text-align: center;
}
.page-header h2 {
@@ -684,11 +452,6 @@
.table-card {
    margin-bottom: 20px;
}
.pagination-container {
    margin-top: 20px;
    text-align: right;
}
:deep(.el-card__header) {
src/views/reportAnalysis/taxComparison/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/customerManagement/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/deliveryLedger/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/indicatorStats/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/invoiceLedger/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/invoiceRegistration/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/orderManagement/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/paymentShipping/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/receiptPayment/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/receiptPaymentHistory/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/receiptPaymentLedger/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/salesLedger/fileList.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/salesLedger/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/salesQuotation/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/salespersonManagement/index.vue
ÎļþÒÑɾ³ý
src/views/salesManagement/strategyControl/index.vue
ÎļþÒÑɾ³ý
vite.config.js
@@ -7,13 +7,13 @@
  const env = loadEnv(mode, process.cwd());
  const { VITE_APP_ENV } = env;
  const baseUrl =
      env.VITE_APP_ENV === "development"
          ? "http://114.132.189.42:9036"
          : env.VITE_BASE_API;
      VITE_APP_ENV === "development"
          ? "http://127.0.0.1:8009" // å¼€å‘环境后端接口
          : "http://10.136.12.71:8009"; // ç”Ÿäº§çŽ¯å¢ƒåŽç«¯æŽ¥å£
  const javaUrl =
      env.VITE_APP_ENV === "development"
          ? "http://114.132.189.42:9037"
          : env.VITE_JAVA_API;
      VITE_APP_ENV === "development"
          ? "http://127.0.0.1:8009" // å¼€å‘环境后端接口
          : "http://10.136.12.71:8009"; // ç”Ÿäº§çŽ¯å¢ƒåŽç«¯æŽ¥å£
  return {
    define:{
      __BASE_API__: JSON.stringify(javaUrl)