feat(i18n): 添加国际化(i18n)基础设施和多语言支持
- 新增 I18nUtils 工具类提供多语言消息获取功能 - 创建多语言技术方案设计文档 MULTILANG_I18N_DESIGN.md - 编写国际化战略文章 HEALTHLINK_HIS_INTERNATIONALIZATION_STRATEGY.md - 添加国际化战略概述文档 HEALTHLINK_HIS_INTL_STRATEGY.md - 实现基于 MessageSource 的多语言消息处理机制 - 设计支持中英越三语的国际化架构方案 - 规划前端 vue-i18n 和后端 MessageSource 集成方案 - 定义数据库多语言表结构支持菜单和字典国际化 - 制定硬编码消息迁移策略和实施计划 - 建立多语言工作量评估和风险应对措施
This commit is contained in:
@@ -712,6 +712,9 @@
|
||||
"signInFailed": "Medical insurance sign-in failed"
|
||||
},
|
||||
"common": {
|
||||
"1": "Test Patient 1",
|
||||
"2": "Test Patient 2",
|
||||
"40": "40 years",
|
||||
"add": "Add",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
@@ -819,7 +822,258 @@
|
||||
"printBottleLabel": "Print Bottle Label",
|
||||
"viewOrders": "View Orders",
|
||||
"revoke": "Revoke",
|
||||
"unknownError": "Unknown error"
|
||||
"unknownError": "Unknown error",
|
||||
"msg1": "Default printer or specify printer name",
|
||||
"msg2": "Drug ratio row display text",
|
||||
"msg3": "Drug cost column display text",
|
||||
"pleaseEnterSupplier": "Please enter supplier",
|
||||
"pleaseEnterBuyer": "Please enter buyer",
|
||||
"pleaseEnterDocType": "Please enter document type",
|
||||
"pleaseEnterBillingDate": "Please enter billing date",
|
||||
"pleaseEnterCode": "Please enter code",
|
||||
"pleaseEnterItemName": "Please enter item name",
|
||||
"pleaseEnterSpec": "Please enter specification",
|
||||
"pleaseEnterUnit": "Please enter unit",
|
||||
"pleaseEnterQuantity": "Please enter quantity",
|
||||
"pleaseEnterManufacturer": "Please enter manufacturer/origin",
|
||||
"pleaseEnterSpecInventory": "Please enter specification inventory",
|
||||
"pleaseEnterApprovalNumber": "Please enter approval number",
|
||||
"pleaseFillCompleteInfo": "Please fill in complete information",
|
||||
"pleaseSelectSupplierAndWarehouse": "Please select supplier and warehouse",
|
||||
"noMedicineFoundInWarehouse": "No medicine found in this warehouse and supplier",
|
||||
"msg4": "Are you sure to save the data?",
|
||||
"ok": "OK",
|
||||
"msg5": "Added successfully",
|
||||
"saveSuccess": "Saved successfully",
|
||||
"saveFail": "Save failed",
|
||||
"msg6": "Please select rows to delete",
|
||||
"msg7": "Are you sure to delete selected rows?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"pleaseSelectWarehouse": "Please select warehouse",
|
||||
"selectWarehouseBeforeAdd": "Please select warehouse before adding document",
|
||||
"pleaseSelectDocToEdit": "Please select a document to edit",
|
||||
"pleaseSelectDocToDelete": "Please select a document to delete",
|
||||
"approvedDocCannotDelete": "Approved documents cannot be deleted",
|
||||
"msg8": "Are you sure to delete this purchase order?",
|
||||
"deleteFail": "Delete failed",
|
||||
"pleaseSelectDocToAudit": "Please select a document to audit",
|
||||
"docAlreadyApproved": "Document already approved, cannot approve again",
|
||||
"msg9": "Are you sure to approve this purchase order?",
|
||||
"msg10": "Approval successful",
|
||||
"msg11": "Approval failed",
|
||||
"getOrderListFail": "Failed to get order list",
|
||||
"pleaseEnterCurrentQty": "Please enter current quantity",
|
||||
"pleaseEnterLotNumber": "Please enter lot number",
|
||||
"pleaseEnterProductionDate": "Please enter production date",
|
||||
"productionDateCannotExceedExpiry": "Production date cannot exceed expiry date",
|
||||
"pleaseEnterExpiryDate": "Please enter expiry date",
|
||||
"expiryDateCannotPrecedeProduction": "Expiry date cannot precede production date",
|
||||
"pleaseEnterPackaging": "Please enter packaging",
|
||||
"pleaseSelectAcceptanceResult": "Please select acceptance result",
|
||||
"pleaseEnterBatchInventory": "Please enter batch inventory",
|
||||
"pleaseEnterTraceCode": "Please enter trace code",
|
||||
"pleaseEnterTraceCodeUnit": "Please enter trace code unit",
|
||||
"pleaseEnterSupplierContact": "Please enter supplier contact",
|
||||
"pleaseEnterBiller": "Please enter biller",
|
||||
"msg12": "Please enter invoice number",
|
||||
"pleaseSelectProfitLossType": "Please select profit/loss type",
|
||||
"traceCodeNotMatched": "Trace code not matched in inventory, please scan separately",
|
||||
"opFail": "Operation failed",
|
||||
"all": "All",
|
||||
"tableNotInitRetry": "Table not initialized, please refresh and retry",
|
||||
"noPrintItemSelected": "No print item selected, print failed",
|
||||
"getPrintDataFailRetry": "Failed to get print data, please retry later",
|
||||
"yuan": " Yuan",
|
||||
"msg13": "Prescription print failed: ",
|
||||
" remaining:": " Remaining: ",
|
||||
" expiryDate:": " Expiry: ",
|
||||
"zeroYuan": "0.00 Yuan",
|
||||
" yuan": " Yuan",
|
||||
"getDispensingDetailsFail": "Failed to get dispensing details",
|
||||
"getConsumableDetailsFail": "Failed to get consumable details",
|
||||
"none": "None",
|
||||
"consumableDispensingFail": "Consumable dispensing failed",
|
||||
"medicineDispensingFail": "Medicine dispensing failed",
|
||||
"msg14": "Dispensing successful",
|
||||
"msg15": "Dispensing failed: ",
|
||||
"msg16": "Insufficient batch inventory",
|
||||
"msg17": "Dispensing qty cannot exceed total",
|
||||
"msg18": "Dispensing qty cannot be less than total",
|
||||
"msg19": "No items selected for dispensing",
|
||||
"msg20": "Voiding...",
|
||||
"msg21": "Please select void reason",
|
||||
"msg22": "No data selected",
|
||||
"pleaseEnterPayAmount": "Please enter payment amount",
|
||||
"payAmountMustBePositive": "Payment amount must be greater than 0",
|
||||
"cash": "Cash",
|
||||
"wechat": "WeChat",
|
||||
"alipay": "Alipay",
|
||||
"unionpay": "UnionPay",
|
||||
"pleaseEnterValidPayAmount": "Please enter a valid payment amount",
|
||||
"pleaseSelectPayMethod": "Please select payment method",
|
||||
"chargeSuccess": "Charge successful",
|
||||
"chargeFail": "Charge failed",
|
||||
"networkErrorRetry": "Network error, please retry",
|
||||
"patientList": "Patient List",
|
||||
"surgicalWard": "Surgical Ward",
|
||||
"msg23": "Please enter inpatient number first!",
|
||||
"msg24": "Please select a patient first!",
|
||||
"defaultHospitalName": "Default Hospital",
|
||||
"msg25": " years",
|
||||
"selfPay": "Self Pay",
|
||||
"inpatientDeposit": "Inpatient Deposit",
|
||||
"msg26": "RMB: ",
|
||||
"printSuccess": "Print successful",
|
||||
"msg27": "Print failed: ",
|
||||
"msg28": "Zero",
|
||||
"msg29": "One",
|
||||
"msg30": "Two",
|
||||
"msg31": "Three",
|
||||
"msg32": "Four",
|
||||
"msg33": "Five",
|
||||
"msg34": "Six",
|
||||
"msg35": "Seven",
|
||||
"msg36": "Eight",
|
||||
"msg37": "Nine",
|
||||
"msg38": "Ten",
|
||||
"msg39": "Hundred",
|
||||
"msg40": "Thousand",
|
||||
"msg41": "Ten Thousand",
|
||||
"msg42": "Hundred Million",
|
||||
"msg43": "Dime",
|
||||
"msg44": "Cent",
|
||||
"msg45": "Negative",
|
||||
"msg46": "Zero Yuan",
|
||||
"msg47": "Exact",
|
||||
"msg48": "Copy successful!",
|
||||
"msg49": "Copy failed!",
|
||||
"employeeMedicalInsurance": "Employee Medical Insurance",
|
||||
"outpatientChargeDetails": "Outpatient Charge Details",
|
||||
"msg50": "Please enter valid settlement amount",
|
||||
"msg51": "Discount",
|
||||
"msg52": "Please enter cash amount",
|
||||
"msg53": "Payment QR Code",
|
||||
"isBetween": "Range judgment using isBetween method",
|
||||
"pleaseSelectChargeItem": "Please select a charge item",
|
||||
"preSettlementFail": "Pre-settlement failed",
|
||||
"financeDept": "Finance Dept",
|
||||
"msg55": "Loading...",
|
||||
"opSuccess": "Operation successful",
|
||||
"register": "Register",
|
||||
"editRegistration": "Edit Registration",
|
||||
"invalidRowData": "Invalid row data",
|
||||
"patientIdNotExist": "Patient ID not found",
|
||||
"encounterIdNotExist": "Encounter ID not found",
|
||||
"patientInfoNotFound": "Patient info not found",
|
||||
"loadSuccess": "Load successful",
|
||||
"inpatientInfoNotFound": "Inpatient info not found",
|
||||
"msg56": "Registration failed: ",
|
||||
"validPatientInfoNotFound": "Valid patient info not found",
|
||||
"nameRequired": "Name is required",
|
||||
"pleaseSelectGender": "Please select gender",
|
||||
"ageRequired": "Age is required",
|
||||
"phoneRequired": "Phone is required",
|
||||
"pleaseEnterPatientName": "Please enter patient name",
|
||||
"pleaseEnterPhone": "Please enter phone number",
|
||||
"pleaseEnterAge": "Please enter age",
|
||||
"pleaseSelectAdmissionDept": "Please select admission department",
|
||||
"pleaseSelectAdmissionWard": "Please select admission ward",
|
||||
"pleaseSelectAdmissionDiagnosis": "Please select admission diagnosis",
|
||||
"depositNotFilledConfirmReg": "Deposit amount not filled, confirm registration?",
|
||||
"msg57": "Need medical insurance registration?",
|
||||
"medicalInsuranceRegConfirm": "Medical Insurance Registration",
|
||||
"jumpToInsuranceRegFail": "Failed to navigate to insurance registration",
|
||||
"msg58": "Bank Card",
|
||||
"msg59": "Insurance Info",
|
||||
"msg60": "WeChat Card",
|
||||
"admissionDeptNotFilled": "Admission department not filled",
|
||||
"admissionWardNotFilled": "Admission ward not filled",
|
||||
"admissionDateNotFilled": "Admission date not filled",
|
||||
"admissionDiagnosisNotFilled": "Admission diagnosis not filled",
|
||||
"pleaseEnterReason": "Please enter reason",
|
||||
"msg61": " E-invoice red flush failed",
|
||||
"msg62": "Red flush successful",
|
||||
"msg63": " Registration e-invoice failed",
|
||||
"msg64": " Inpatient e-invoice failed",
|
||||
"msg65": " Outpatient e-invoice failed",
|
||||
"msg66": " E-invoice type unclear",
|
||||
"pleaseEnterRefundReason": "Please enter refund reason",
|
||||
"refundReasonTooLong": "Refund reason cannot exceed 200 characters",
|
||||
"refundSuccess": "Refund successful",
|
||||
"msg67": "Settlement cancelled!",
|
||||
"pleaseEnterDerateAmount": "Please enter derate amount",
|
||||
"msg68": "Patient not found!",
|
||||
"copySuccess": "Copy successful",
|
||||
"copyFail": "Copy failed",
|
||||
"msg69": "Print invoice!",
|
||||
"msg72": "Settlement successful!",
|
||||
"msg73": "Cancel patient medical insurance discharge registration?",
|
||||
"testPatientName": "Test Patient",
|
||||
"admissionBedNo": "Admission Bed No.",
|
||||
"admissionDept": "Admission Dept",
|
||||
"domicileAddress": "Domicile Address",
|
||||
"homeAddress": "Home Address",
|
||||
"workUnit": "Work Unit",
|
||||
"maritalStatus": "Marital Status",
|
||||
"medicalRecordTime": "Record Writing Time",
|
||||
"ethnicity": "Ethnicity",
|
||||
"medicalHistoryNarrator": "History Narrator",
|
||||
"occupation": "Occupation",
|
||||
"contactPerson": "Contact Person",
|
||||
"relationship": "Relationship",
|
||||
"reliability": "Reliability",
|
||||
"chiefComplaint": "Chief Complaint",
|
||||
"presentIllness": "Present Illness",
|
||||
"pastHistory": "Past History",
|
||||
"personalHistory": "Personal History",
|
||||
"msg75": "Marital & Reproductive History",
|
||||
"msg76": "Family History",
|
||||
"msg77": "To be checked",
|
||||
"msg78": "Please select time",
|
||||
"msg79": "Temperature",
|
||||
"msg80": "Pulse",
|
||||
"msg81": "Respiration",
|
||||
"msg82": "Blood Pressure",
|
||||
"confirmMsg711": "...?",
|
||||
"confirmTitle711": "Tip",
|
||||
"confirmMsg841": "...?",
|
||||
"confirmTitle841": "Tip",
|
||||
"confirmMsg422": "...?",
|
||||
"confirmTitle422": "Tip",
|
||||
"confirmMsg485": "...?",
|
||||
"confirmTitle485": "Tip",
|
||||
"errorMsg176": "Production date cannot exceed expiry date",
|
||||
"errorMsg197": "Expiry date cannot precede production date",
|
||||
"confirmMsg508": "...?",
|
||||
"confirmTitle508": "Tip",
|
||||
"confirmMsg568": "...?",
|
||||
"confirmTitle568": "Tip",
|
||||
"confirmMsg423": "...?",
|
||||
"confirmTitle423": "Tip",
|
||||
"confirmMsg486": "...?",
|
||||
"confirmTitle486": "Tip",
|
||||
"confirmMsg498": "...?",
|
||||
"confirmTitle498": "Tip",
|
||||
"confirmMsg558": "...?",
|
||||
"confirmTitle558": "Tip",
|
||||
"strConcat340_ XX:": " Remaining: ",
|
||||
"strConcat347_ XXXX:": " Expiry: ",
|
||||
"strConcat357_ XXXX:": " Expiry: ",
|
||||
"returnMsg474": "0.00 Yuan",
|
||||
"strConcatAfter476_ X": " Yuan",
|
||||
"loadingText901": "Voiding...",
|
||||
"strConcatAfter109_ X": " Yuan",
|
||||
"strConcatAfter115_ X": " Yuan",
|
||||
"strConcatAfter117_ X": " Yuan",
|
||||
"strConcatAfter119_ X": " Yuan",
|
||||
"strConcatAfter123_ X": " Yuan",
|
||||
"strConcatAfter128_ X": " Yuan",
|
||||
"returnMsg349": "Please enter cash amount",
|
||||
"strConcatAfter351_XXXXX": "Payment QR Code",
|
||||
"returnMsg577": "Cash",
|
||||
"returnMsg579": "Alipay",
|
||||
"returnMsg581": "WeChat Card",
|
||||
"returnMsg583": "Bank Card"
|
||||
},
|
||||
"component": {
|
||||
"rightToolbar": {
|
||||
@@ -1186,7 +1440,15 @@
|
||||
"add_4": "添加部门",
|
||||
"required_5": "显示排序不能为空",
|
||||
"name_required_6": "部门名称不能为空",
|
||||
"required_7": "上级部门不能为空"
|
||||
"required_7": "上级部门不能为空",
|
||||
"confirmDelete": "Are you sure to delete department \"{name}\"?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"addDept": "Add Department",
|
||||
"editDept": "Edit Department",
|
||||
"addSuccess": "Added successfully",
|
||||
"editSuccess": "Modified successfully",
|
||||
"emailInvalid": "Please enter a valid email address",
|
||||
"phoneInvalid": "Please enter a valid phone number"
|
||||
},
|
||||
"tenant": {
|
||||
"tenantId": "Tenant ID",
|
||||
@@ -1279,7 +1541,22 @@
|
||||
},
|
||||
"msg": {
|
||||
"configFound": "Config {code}, found value:"
|
||||
}
|
||||
},
|
||||
"confirmDelete": "Are you sure to delete tenant ID \"{id}\"?",
|
||||
"confirmEnable": "Are you sure to enable tenant ID \"{id}\"?",
|
||||
"confirmDisable": "Are you sure to disable tenant ID \"{id}\"?",
|
||||
"confirmStatusChange": "Are you sure to {action} tenant \"{id}\"?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"enableSuccess": "Enabled successfully",
|
||||
"disableSuccess": "Disabled successfully",
|
||||
"addTenant": "Add Tenant",
|
||||
"editTenant": "Edit Tenant",
|
||||
"configSaveSuccess": "Configuration saved successfully",
|
||||
"configSaveSuccessRefresh": "Configuration saved, user info refreshed",
|
||||
"getConfigFail": "Failed to get configuration",
|
||||
"configSaveFail": "Failed to save configuration",
|
||||
"emailInvalid": "Please enter a valid email address",
|
||||
"phoneInvalid": "Please enter a valid phone number"
|
||||
},
|
||||
"post": {
|
||||
"postCode": "Post code",
|
||||
@@ -1298,7 +1575,13 @@
|
||||
"add_4": "添加岗位",
|
||||
"required_5": "岗位顺序不能为空",
|
||||
"required_6": "岗位编码不能为空",
|
||||
"name_required_7": "岗位名称不能为空"
|
||||
"name_required_7": "岗位名称不能为空",
|
||||
"confirmDelete": "Are you sure to delete post ID \"{id}\"?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"addPost": "Add Post",
|
||||
"editPost": "Edit Post",
|
||||
"addSuccess": "Added successfully",
|
||||
"editSuccess": "Modified successfully"
|
||||
},
|
||||
"config": {
|
||||
"configName": "Parameter name",
|
||||
@@ -1316,7 +1599,14 @@
|
||||
"add_5": "添加参数",
|
||||
"required_6": "参数键值不能为空",
|
||||
"required_7": "参数键名不能为空",
|
||||
"name_required_8": "参数名称不能为空"
|
||||
"name_required_8": "参数名称不能为空",
|
||||
"confirmDelete": "Are you sure to delete config ID \"{id}\"?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"addConfig": "Add Parameter",
|
||||
"editConfig": "Edit Parameter",
|
||||
"addSuccess": "Added successfully",
|
||||
"editSuccess": "Modified successfully",
|
||||
"refreshCacheSuccess": "Cache refreshed successfully"
|
||||
},
|
||||
"notice": {
|
||||
"noticeTitle": "Notice title",
|
||||
@@ -1343,7 +1633,17 @@
|
||||
"str_7": "修改公告",
|
||||
"add_8": "添加公告",
|
||||
"type_required_9": "公告类型不能为空",
|
||||
"required_10": "公告标题不能为空"
|
||||
"required_10": "公告标题不能为空",
|
||||
"confirmDelete": "Are you sure to delete notice ID \"{id}\"?",
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"addNotice": "Add Notice",
|
||||
"editNotice": "Edit Notice",
|
||||
"addSuccess": "Added successfully",
|
||||
"editSuccess": "Modified successfully",
|
||||
"publishSuccess": "Published successfully",
|
||||
"cancelPublish": "Publication cancelled",
|
||||
"confirmPublish": "Are you sure to publish this notice? It will be visible to all users.",
|
||||
"confirmCancelPublish": "Are you sure to cancel publication? It will no longer be visible to users."
|
||||
},
|
||||
"authRole": {
|
||||
"seqNo": "No."
|
||||
@@ -1877,7 +2177,20 @@
|
||||
"placeholderExprExample": "{\"age\":\">=60\",\"regType\":\"Expert\"}",
|
||||
"callnumbervoice": {
|
||||
"placeholderPrefix": "e.g.: Please",
|
||||
"placeholderSuffix": "e.g.: Go to consultation room"
|
||||
"placeholderSuffix": "e.g.: Go to consultation room",
|
||||
"defaultPrefix": "Please",
|
||||
"defaultSuffix": "Go to consultation room",
|
||||
"msgSaveSuccess": "Settings saved successfully!",
|
||||
"msgSaveFailed": "Save failed: ",
|
||||
"msgRetryLater": "Please try again later",
|
||||
"msgLoadSuccess": "Configuration loaded successfully",
|
||||
"msgNoConfig": "No existing config found, using defaults",
|
||||
"msgNoConfigWarning": "No config data found, will use defaults",
|
||||
"msgLoadFailed": "Failed to load settings: ",
|
||||
"msgRestored": "Restored to original settings",
|
||||
"msgConfirmCancel": "Are you sure you want to cancel all changes?",
|
||||
"errFillPrefix": "Please fill in the call prefix",
|
||||
"errFillSuffix": "Please fill in the call suffix"
|
||||
}
|
||||
},
|
||||
"billing": {
|
||||
@@ -6967,6 +7280,10 @@
|
||||
"exportPartFailed": "InspectionPartExportFailed",
|
||||
"notImplemented": "Feature in development"
|
||||
},
|
||||
"export": {
|
||||
"methodData": "CheckMethodData",
|
||||
"partData": "CheckPartData"
|
||||
},
|
||||
"validation": {
|
||||
"codeRequired": "Please enterCode",
|
||||
"nameRequired": "Please enterName",
|
||||
@@ -8923,8 +9240,8 @@
|
||||
"profitLossOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码"
|
||||
"pleaseEnter_medicine_2": "Please enter trace code unit",
|
||||
"pleaseEnter_medicine_3": "Please enter trace code"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -8932,8 +9249,8 @@
|
||||
"returnToWarehouseOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码"
|
||||
"pleaseEnter_medicine_2": "Please enter trace code unit",
|
||||
"pleaseEnter_medicine_3": "Please enter trace code"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -8948,9 +9265,9 @@
|
||||
"stocktakingOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码",
|
||||
"pleaseEnter_4": "请输入包装情况"
|
||||
"pleaseEnter_medicine_2": "Please enter trace code unit",
|
||||
"pleaseEnter_medicine_3": "Please enter trace code",
|
||||
"pleaseEnter_4": "Please enter packaging"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -11000,8 +11317,8 @@
|
||||
},
|
||||
"components": {
|
||||
"str_1": "打印标题",
|
||||
"str_2": " 元",
|
||||
"str_3": " 元"
|
||||
"str_2": " Yuan",
|
||||
"str_3": " Yuan"
|
||||
},
|
||||
"transferManagent": {
|
||||
"row_required0_1": "行调拨单价不能为空或为0",
|
||||
|
||||
@@ -712,6 +712,9 @@
|
||||
"signInFailed": "Đăng ký bảo hiểm y tế thất bại"
|
||||
},
|
||||
"common": {
|
||||
"1": "BN thử 1",
|
||||
"2": "BN thử 2",
|
||||
"40": "40 tuổi",
|
||||
"add": "Thêm",
|
||||
"edit": "Sửa",
|
||||
"delete": "Xóa",
|
||||
@@ -819,7 +822,258 @@
|
||||
"printBottleLabel": "In nhãn chai",
|
||||
"viewOrders": "Xem y lệnh",
|
||||
"revoke": "Thu hồi",
|
||||
"unknownError": "Lỗi không xác định"
|
||||
"unknownError": "Lỗi không xác định",
|
||||
"msg1": "Máy in mặc định hoặc chỉ định tên máy in",
|
||||
"msg2": "Text hiển thị dòng tỷ lệ thuốc",
|
||||
"msg3": "Text hiển thị cột chi phí thuốc",
|
||||
"pleaseEnterSupplier": "Vui lòng nhập nhà cung cấp",
|
||||
"pleaseEnterBuyer": "Vui lòng nhập người mua",
|
||||
"pleaseEnterDocType": "Vui lòng nhập loại chứng từ",
|
||||
"pleaseEnterBillingDate": "Vui lòng nhập ngày lập",
|
||||
"pleaseEnterCode": "Vui lòng nhập mã",
|
||||
"pleaseEnterItemName": "Vui lòng nhập tên sản phẩm",
|
||||
"pleaseEnterSpec": "Vui lòng nhập quy cách",
|
||||
"pleaseEnterUnit": "Vui lòng nhập đơn vị",
|
||||
"pleaseEnterQuantity": "Vui lòng nhập số lượng",
|
||||
"pleaseEnterManufacturer": "Vui lòng nhập nhà SX/xuất xứ",
|
||||
"pleaseEnterSpecInventory": "Vui lòng nhập tồn kho quy cách",
|
||||
"pleaseEnterApprovalNumber": "Vui lòng nhập số phê duyệt",
|
||||
"pleaseFillCompleteInfo": "Vui lòng điền đầy đủ thông tin",
|
||||
"pleaseSelectSupplierAndWarehouse": "Vui lòng chọn NCC và kho",
|
||||
"noMedicineFoundInWarehouse": "本仓库和供应商没有找到药品信息",
|
||||
"msg4": "Xác nhận lưu dữ liệu?",
|
||||
"ok": "Đồng ý",
|
||||
"msg5": "Thêm thành công",
|
||||
"saveSuccess": "Lưu thành công",
|
||||
"saveFail": "Lưu thất bại",
|
||||
"msg6": "Vui lòng chọn dòng để xóa",
|
||||
"msg7": "Xác nhận xóa các dòng đã chọn?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"pleaseSelectWarehouse": "Vui lòng chọn kho",
|
||||
"selectWarehouseBeforeAdd": "Vui lòng chọn kho trước khi thêm chứng từ",
|
||||
"pleaseSelectDocToEdit": "Vui lòng chọn chứng từ để sửa",
|
||||
"pleaseSelectDocToDelete": "Vui lòng chọn chứng từ để xóa",
|
||||
"approvedDocCannotDelete": "Chứng từ đã duyệt không thể xóa",
|
||||
"msg8": "Xác nhận xóa đơn mua hàng này?",
|
||||
"deleteFail": "Xóa thất bại",
|
||||
"pleaseSelectDocToAudit": "Vui lòng chọn chứng từ để duyệt",
|
||||
"docAlreadyApproved": "Chứng từ đã duyệt, không thể duyệt lại",
|
||||
"msg9": "Xác nhận duyệt đơn mua hàng này?",
|
||||
"msg10": "Duyệt thành công",
|
||||
"msg11": "Duyệt thất bại",
|
||||
"getOrderListFail": "获取订货单列表失败",
|
||||
"pleaseEnterCurrentQty": "Vui lòng nhập số lượng tồn",
|
||||
"pleaseEnterLotNumber": "Vui lòng nhập số lô",
|
||||
"pleaseEnterProductionDate": "Vui lòng nhập ngày sản xuất",
|
||||
"productionDateCannotExceedExpiry": "NSX không được lớn hơn HSD",
|
||||
"pleaseEnterExpiryDate": "Vui lòng nhập ngày hết hạn",
|
||||
"expiryDateCannotPrecedeProduction": "HSD không được nhỏ hơn NSX",
|
||||
"pleaseEnterPackaging": "Vui lòng nhập tình trạng đóng gói",
|
||||
"pleaseSelectAcceptanceResult": "Vui lòng chọn kết quả nghiệm thu",
|
||||
"pleaseEnterBatchInventory": "Vui lòng nhập tồn kho lô",
|
||||
"pleaseEnterTraceCode": "Vui lòng nhập mã truy xuất",
|
||||
"pleaseEnterTraceCodeUnit": "Vui lòng nhập ĐV mã truy xuất",
|
||||
"pleaseEnterSupplierContact": "Vui lòng nhập người liên hệ NCC",
|
||||
"pleaseEnterBiller": "Vui lòng nhập người lập",
|
||||
"msg12": "Vui lòng nhập số hóa đơn",
|
||||
"pleaseSelectProfitLossType": "Vui lòng chọn loại lãi/lỗ",
|
||||
"traceCodeNotMatched": "未在库存中匹配到追溯码,请在发药列表中单独扫描",
|
||||
"opFail": "Thao tác thất bại",
|
||||
"all": "Tất cả",
|
||||
"tableNotInitRetry": "表格组件未初始化,请刷新页面重试",
|
||||
"noPrintItemSelected": "未选择要打印的项目,请重新选择,打印失败",
|
||||
"getPrintDataFailRetry": "获取打印数据失败,请稍后重试",
|
||||
"yuan": " Nguyên",
|
||||
"msg13": "In đơn thuốc thất bại: ",
|
||||
" remaining:": " Còn lại: ",
|
||||
" expiryDate:": " Hạn dùng: ",
|
||||
"zeroYuan": "0.00 Nguyên",
|
||||
" yuan": " Nguyên",
|
||||
"getDispensingDetailsFail": "获取发药明细失败",
|
||||
"getConsumableDetailsFail": "获取耗材明细失败",
|
||||
"none": "Không",
|
||||
"consumableDispensingFail": "耗材发药失败",
|
||||
"medicineDispensingFail": "药品发药失败",
|
||||
"msg14": "Cấp phát thành công",
|
||||
"msg15": "Cấp phát thất bại: ",
|
||||
"msg16": "Tồn kho lô không đủ",
|
||||
"msg17": "SL cấp phát không được vượt tổng",
|
||||
"msg18": "SL cấp phát không được nhỏ hơn tổng",
|
||||
"msg19": "Chưa chọn mục cấp phát",
|
||||
"msg20": "Đang hủy...",
|
||||
"msg21": "Vui lòng chọn lý do hủy",
|
||||
"msg22": "Chưa chọn dữ liệu",
|
||||
"pleaseEnterPayAmount": "Vui lòng nhập số tiền",
|
||||
"payAmountMustBePositive": "Số tiền phải lớn hơn 0",
|
||||
"cash": "Tiền mặt",
|
||||
"wechat": "WeChat",
|
||||
"alipay": "Alipay",
|
||||
"unionpay": "UnionPay",
|
||||
"pleaseEnterValidPayAmount": "Vui lòng nhập số tiền hợp lệ",
|
||||
"pleaseSelectPayMethod": "Vui lòng chọn PTTT",
|
||||
"chargeSuccess": "Thu phí thành công",
|
||||
"chargeFail": "Thu phí thất bại",
|
||||
"networkErrorRetry": "Lỗi mạng, vui lòng thử lại",
|
||||
"patientList": "Danh sách BN",
|
||||
"surgicalWard": "综合外科病区",
|
||||
"msg23": "Vui lòng nhập số nhập viện trước!",
|
||||
"msg24": "Vui lòng chọn bệnh nhân trước!",
|
||||
"defaultHospitalName": "中联医院",
|
||||
"msg25": " tuổi",
|
||||
"selfPay": "Tự trả",
|
||||
"inpatientDeposit": "住院预缴款",
|
||||
"msg26": "Nhân dân tệ: ",
|
||||
"printSuccess": "In thành công",
|
||||
"msg27": "In thất bại: ",
|
||||
"msg28": "Không",
|
||||
"msg29": "Một",
|
||||
"msg30": "Hai",
|
||||
"msg31": "Ba",
|
||||
"msg32": "Bốn",
|
||||
"msg33": "Năm",
|
||||
"msg34": "Sáu",
|
||||
"msg35": "Bảy",
|
||||
"msg36": "Tám",
|
||||
"msg37": "Chín",
|
||||
"msg38": "Mười",
|
||||
"msg39": "Trăm",
|
||||
"msg40": "Nghìn",
|
||||
"msg41": "Vạn",
|
||||
"msg42": "Tỷ",
|
||||
"msg43": "Hào",
|
||||
"msg44": "Xu",
|
||||
"msg45": "Âm",
|
||||
"msg46": "Không Nguyên",
|
||||
"msg47": "Nguyên",
|
||||
"msg48": "Sao chép thành công!",
|
||||
"msg49": "Sao chép thất bại!",
|
||||
"employeeMedicalInsurance": "BHYT cán bộ",
|
||||
"outpatientChargeDetails": "门诊收费明细",
|
||||
"msg50": "Vui lòng nhập số tiền thanh toán hợp lệ",
|
||||
"msg51": "Ưu đãi",
|
||||
"msg52": "Vui lòng nhập số tiền mặt",
|
||||
"msg53": "Mã QR thanh toán",
|
||||
"isBetween": "Phạm vi sử dụng phương thức isBetween",
|
||||
"pleaseSelectChargeItem": "Vui lòng chọn mục thu phí",
|
||||
"preSettlementFail": "Tính trước thất bại",
|
||||
"financeDept": "Phòng tài chính",
|
||||
"msg55": "Đang tải...",
|
||||
"opSuccess": "Thao tác thành công",
|
||||
"register": "Đăng ký",
|
||||
"editRegistration": "Sửa đăng ký",
|
||||
"invalidRowData": "Dữ liệu dòng không hợp lệ",
|
||||
"patientIdNotExist": "Mã BN không tồn tại",
|
||||
"encounterIdNotExist": "Mã khám không tồn tại",
|
||||
"patientInfoNotFound": "Không tìm thấy thông tin BN",
|
||||
"loadSuccess": "Tải thành công",
|
||||
"inpatientInfoNotFound": "未获取到住院信息",
|
||||
"msg56": "Đăng ký thất bại: ",
|
||||
"validPatientInfoNotFound": "未获取到有效的患者信息",
|
||||
"nameRequired": "Họ tên không được trống",
|
||||
"pleaseSelectGender": "Vui lòng chọn giới tính",
|
||||
"ageRequired": "Tuổi không được trống",
|
||||
"phoneRequired": "SĐT không được trống",
|
||||
"pleaseEnterPatientName": "请输入患者姓名",
|
||||
"pleaseEnterPhone": "请输入联系方式",
|
||||
"pleaseEnterAge": "请输入年龄",
|
||||
"pleaseSelectAdmissionDept": "请选择入院科室",
|
||||
"pleaseSelectAdmissionWard": "请选择入院病区",
|
||||
"pleaseSelectAdmissionDiagnosis": "请选择入院诊断",
|
||||
"depositNotFilledConfirmReg": "住院预交金额未填写,确认登记吗",
|
||||
"msg57": "是否需要进行医保登记?",
|
||||
"medicalInsuranceRegConfirm": "医保登记确认",
|
||||
"jumpToInsuranceRegFail": "跳转到医保登记页面失败",
|
||||
"msg58": "Thẻ ngân hàng",
|
||||
"msg59": "Thông tin BHYT",
|
||||
"msg60": "Thẻ WeChat",
|
||||
"admissionDeptNotFilled": "Chưa nhập khoa nhập viện",
|
||||
"admissionWardNotFilled": "Chưa nhập khu nhập viện",
|
||||
"admissionDateNotFilled": "Chưa nhập ngày nhập viện",
|
||||
"admissionDiagnosisNotFilled": "Chưa nhập chẩn đoán",
|
||||
"pleaseEnterReason": "Vui lòng nhập lý do",
|
||||
"msg61": " Xóa đỏ e-invoice thất bại",
|
||||
"msg62": "Xóa đỏ thành công",
|
||||
"msg63": " Hóa đơn điện tử đăng ký thất bại",
|
||||
"msg64": " Hóa đơn điện tử nội trú thất bại",
|
||||
"msg65": " Hóa đơn điện tử ngoại trú thất bại",
|
||||
"msg66": " Loại hóa đơn điện tử không rõ",
|
||||
"pleaseEnterRefundReason": "Vui lòng nhập lý do hoàn phí",
|
||||
"refundReasonTooLong": "Lý do không quá 200 ký tự",
|
||||
"refundSuccess": "Hoàn phí thành công",
|
||||
"msg67": "Hủy thanh toán thành công!",
|
||||
"pleaseEnterDerateAmount": "Vui lòng nhập số tiền giảm",
|
||||
"msg68": "Không tìm thấy BN!",
|
||||
"copySuccess": "Sao chép thành công",
|
||||
"copyFail": "Sao chép thất bại",
|
||||
"msg69": "打印发票!",
|
||||
"msg72": "Thanh toán thành công!",
|
||||
"msg73": "是否取消患者的医保出院登记?",
|
||||
"testPatientName": "BN thử nghiệm",
|
||||
"admissionBedNo": "Số giường nhập viện",
|
||||
"admissionDept": "Khoa nhập viện",
|
||||
"domicileAddress": "Địa chỉ hộ khẩu",
|
||||
"homeAddress": "Địa chỉ nhà",
|
||||
"workUnit": "Nơi làm việc",
|
||||
"maritalStatus": "Tình trạng hôn nhân",
|
||||
"medicalRecordTime": "Thời gian viết bệnh án",
|
||||
"ethnicity": "Dân tộc",
|
||||
"medicalHistoryNarrator": "Người kể bệnh sử",
|
||||
"occupation": "Nghề nghiệp",
|
||||
"contactPerson": "联系人",
|
||||
"relationship": "Quan hệ",
|
||||
"reliability": "Mức độ tin cậy",
|
||||
"chiefComplaint": "Triệu chứng chính",
|
||||
"presentIllness": "Bệnh sử hiện tại",
|
||||
"pastHistory": "Tiền sử bệnh",
|
||||
"personalHistory": "Tiền sử cá nhân",
|
||||
"msg75": "Tiền sử hôn nhân sinh đẻ",
|
||||
"msg76": "Tiền sử gia đình",
|
||||
"msg77": "Cần kiểm tra",
|
||||
"msg78": "Vui lòng chọn thời gian",
|
||||
"msg79": "Nhiệt độ",
|
||||
"msg80": "Mạch",
|
||||
"msg81": "Hô hấp",
|
||||
"msg82": "Huyết áp",
|
||||
"confirmMsg711": "...?",
|
||||
"confirmTitle711": "Thông báo",
|
||||
"confirmMsg841": "...?",
|
||||
"confirmTitle841": "Thông báo",
|
||||
"confirmMsg422": "...?",
|
||||
"confirmTitle422": "Thông báo",
|
||||
"confirmMsg485": "...?",
|
||||
"confirmTitle485": "Thông báo",
|
||||
"errorMsg176": "Ngày sản xuất không được lớn hơn ngày hết hạn",
|
||||
"errorMsg197": "Ngày hết hạn không được nhỏ hơn ngày sản xuất",
|
||||
"confirmMsg508": "...?",
|
||||
"confirmTitle508": "Thông báo",
|
||||
"confirmMsg568": "...?",
|
||||
"confirmTitle568": "Thông báo",
|
||||
"confirmMsg423": "...?",
|
||||
"confirmTitle423": "Thông báo",
|
||||
"confirmMsg486": "...?",
|
||||
"confirmTitle486": "Thông báo",
|
||||
"confirmMsg498": "...?",
|
||||
"confirmTitle498": "Thông báo",
|
||||
"confirmMsg558": "...?",
|
||||
"confirmTitle558": "Thông báo",
|
||||
"strConcat340_ XX:": " Remaining: ",
|
||||
"strConcat347_ XXXX:": " Expiry: ",
|
||||
"strConcat357_ XXXX:": " Expiry: ",
|
||||
"returnMsg474": "0.00 Yuan",
|
||||
"strConcatAfter476_ X": " Yuan",
|
||||
"loadingText901": "Đang hủy...",
|
||||
"strConcatAfter109_ X": " Yuan",
|
||||
"strConcatAfter115_ X": " Yuan",
|
||||
"strConcatAfter117_ X": " Yuan",
|
||||
"strConcatAfter119_ X": " Yuan",
|
||||
"strConcatAfter123_ X": " Yuan",
|
||||
"strConcatAfter128_ X": " Yuan",
|
||||
"returnMsg349": "Please enter cash amount",
|
||||
"strConcatAfter351_XXXXX": "Mã QR thanh toán",
|
||||
"returnMsg577": "Tiền mặt",
|
||||
"returnMsg579": "Alipay",
|
||||
"returnMsg581": "Thẻ WeChat",
|
||||
"returnMsg583": "Thẻ ngân hàng"
|
||||
},
|
||||
"component": {
|
||||
"rightToolbar": {
|
||||
@@ -1186,7 +1440,15 @@
|
||||
"add_4": "添加部门",
|
||||
"required_5": "显示排序不能为空",
|
||||
"name_required_6": "部门名称不能为空",
|
||||
"required_7": "上级部门不能为空"
|
||||
"required_7": "上级部门不能为空",
|
||||
"confirmDelete": "Bạn có chắc chắn muốn xóa phòng ban \"{name}\" không?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"addDept": "Thêm phòng ban",
|
||||
"editDept": "Sửa phòng ban",
|
||||
"addSuccess": "Thêm thành công",
|
||||
"editSuccess": "Sửa thành công",
|
||||
"emailInvalid": "Vui lòng nhập đúng địa chỉ email",
|
||||
"phoneInvalid": "Vui lòng nhập đúng số điện thoại"
|
||||
},
|
||||
"tenant": {
|
||||
"tenantId": "ID người thuê",
|
||||
@@ -1279,7 +1541,22 @@
|
||||
},
|
||||
"msg": {
|
||||
"configFound": "Cấu hình {code}, tìm thấy giá trị:"
|
||||
}
|
||||
},
|
||||
"confirmDelete": "Bạn có chắc chắn muốn xóa ID thuê bao \"{id}\" không?",
|
||||
"confirmEnable": "Bạn có chắc chắn muốn kích hoạt ID thuê bao \"{id}\" không?",
|
||||
"confirmDisable": "Bạn có chắc chắn muốn vô hiệu hóa ID thuê bao \"{id}\" không?",
|
||||
"confirmStatusChange": "Bạn có chắc chắn muốn {action} thuê bao \"{id}\" không?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"enableSuccess": "Kích hoạt thành công",
|
||||
"disableSuccess": "Vô hiệu hóa thành công",
|
||||
"addTenant": "Thêm thuê bao",
|
||||
"editTenant": "Sửa thuê bao",
|
||||
"configSaveSuccess": "Lưu cấu hình thành công",
|
||||
"configSaveSuccessRefresh": "Lưu cấu hình thành công, thông tin người dùng đã được làm mới",
|
||||
"getConfigFail": "Lấy cấu hình thất bại",
|
||||
"configSaveFail": "Lưu cấu hình thất bại",
|
||||
"emailInvalid": "Vui lòng nhập đúng địa chỉ email",
|
||||
"phoneInvalid": "Vui lòng nhập đúng số điện thoại"
|
||||
},
|
||||
"post": {
|
||||
"postCode": "Mã vị trí",
|
||||
@@ -1298,7 +1575,13 @@
|
||||
"add_4": "添加岗位",
|
||||
"required_5": "岗位顺序不能为空",
|
||||
"required_6": "岗位编码不能为空",
|
||||
"name_required_7": "岗位名称不能为空"
|
||||
"name_required_7": "岗位名称不能为空",
|
||||
"confirmDelete": "Bạn có chắc chắn muốn xóa ID vị trí \"{id}\" không?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"addPost": "Thêm vị trí",
|
||||
"editPost": "Sửa vị trí",
|
||||
"addSuccess": "Thêm thành công",
|
||||
"editSuccess": "Sửa thành công"
|
||||
},
|
||||
"config": {
|
||||
"configName": "Tên tham số",
|
||||
@@ -1316,7 +1599,14 @@
|
||||
"add_5": "添加参数",
|
||||
"required_6": "参数键值不能为空",
|
||||
"required_7": "参数键名不能为空",
|
||||
"name_required_8": "参数名称不能为空"
|
||||
"name_required_8": "参数名称不能为空",
|
||||
"confirmDelete": "Bạn có chắc chắn muốn xóa ID tham số \"{id}\" không?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"addConfig": "Thêm tham số",
|
||||
"editConfig": "Sửa tham số",
|
||||
"addSuccess": "Thêm thành công",
|
||||
"editSuccess": "Sửa thành công",
|
||||
"refreshCacheSuccess": "Làm mới bộ nhớ đệm thành công"
|
||||
},
|
||||
"notice": {
|
||||
"noticeTitle": "Tiêu đề thông báo",
|
||||
@@ -1343,7 +1633,17 @@
|
||||
"str_7": "修改公告",
|
||||
"add_8": "添加公告",
|
||||
"type_required_9": "公告类型不能为空",
|
||||
"required_10": "公告标题不能为空"
|
||||
"required_10": "公告标题不能为空",
|
||||
"confirmDelete": "Bạn có chắc chắn muốn xóa ID thông báo \"{id}\" không?",
|
||||
"deleteSuccess": "Xóa thành công",
|
||||
"addNotice": "Thêm thông báo",
|
||||
"editNotice": "Sửa thông báo",
|
||||
"addSuccess": "Thêm thành công",
|
||||
"editSuccess": "Sửa thành công",
|
||||
"publishSuccess": "Xuất bản thành công",
|
||||
"cancelPublish": "Đã hủy xuất bản",
|
||||
"confirmPublish": "Bạn có chắc chắn muốn xuất bản thông báo này? Nó sẽ hiển thị cho tất cả người dùng.",
|
||||
"confirmCancelPublish": "Bạn có chắc chắn muốn hủy xuất bản? Nó sẽ không còn hiển thị cho người dùng."
|
||||
},
|
||||
"authRole": {
|
||||
"seqNo": "STT"
|
||||
@@ -1877,7 +2177,20 @@
|
||||
"placeholderExprExample": "{\"age\":\">=60\",\"regType\":\"Chuyên gia\"}",
|
||||
"callnumbervoice": {
|
||||
"placeholderPrefix": "VD: Xin mời",
|
||||
"placeholderSuffix": "VD: Đến phòng khám"
|
||||
"placeholderSuffix": "VD: Đến phòng khám",
|
||||
"defaultPrefix": "Xin mời",
|
||||
"defaultSuffix": "Đến phòng khám",
|
||||
"msgSaveSuccess": "Cài đặt đã được lưu thành công!",
|
||||
"msgSaveFailed": "Lưu thất bại: ",
|
||||
"msgRetryLater": "Vui lòng thử lại sau",
|
||||
"msgLoadSuccess": "Tải cấu hình thành công",
|
||||
"msgNoConfig": "Không tìm thấy cấu hình hiện có, sử dụng mặc định",
|
||||
"msgNoConfigWarning": "Không tìm thấy dữ liệu cấu hình, sẽ sử dụng mặc định",
|
||||
"msgLoadFailed": "Tải cài đặt thất bại: ",
|
||||
"msgRestored": "Đã khôi phục về cài đặt gốc",
|
||||
"msgConfirmCancel": "Bạn có chắc chắn muốn hủy tất cả thay đổi?",
|
||||
"errFillPrefix": "Vui lòng điền tiền tố gọi",
|
||||
"errFillSuffix": "Vui lòng điền hậu tố gọi"
|
||||
}
|
||||
},
|
||||
"pharmacy": {
|
||||
@@ -6988,6 +7301,10 @@
|
||||
"exportPartFailed": "InspectionPartExportFailed",
|
||||
"notImplemented": "Tính năng đang phát triển"
|
||||
},
|
||||
"export": {
|
||||
"methodData": "DuLieuPhuongPhapKiemTra",
|
||||
"partData": "DuLieuBoPhanKiemTra"
|
||||
},
|
||||
"validation": {
|
||||
"codeRequired": "Please enterCode",
|
||||
"nameRequired": "Please enterName",
|
||||
@@ -8923,8 +9240,8 @@
|
||||
"profitLossOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码"
|
||||
"pleaseEnter_medicine_2": "Vui lòng nhập ĐV mã truy xuất",
|
||||
"pleaseEnter_medicine_3": "Vui lòng nhập mã truy xuất"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -8932,8 +9249,8 @@
|
||||
"returnToWarehouseOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码"
|
||||
"pleaseEnter_medicine_2": "Vui lòng nhập ĐV mã truy xuất",
|
||||
"pleaseEnter_medicine_3": "Vui lòng nhập mã truy xuất"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -8948,9 +9265,9 @@
|
||||
"stocktakingOrder": {
|
||||
"components": {
|
||||
"get_list_fail_1": "获取订货单列表失败:",
|
||||
"pleaseEnter_medicine_2": "请输入药品追溯码单位",
|
||||
"pleaseEnter_medicine_3": "请输入药品追溯码",
|
||||
"pleaseEnter_4": "请输入包装情况"
|
||||
"pleaseEnter_medicine_2": "Vui lòng nhập ĐV mã truy xuất",
|
||||
"pleaseEnter_medicine_3": "Vui lòng nhập mã truy xuất",
|
||||
"pleaseEnter_4": "Vui lòng nhập tình trạng đóng gói"
|
||||
},
|
||||
"agree_approval_fail_1": "同意审批失败:",
|
||||
"delete_fail_2": "删除失败:"
|
||||
@@ -11000,8 +11317,8 @@
|
||||
},
|
||||
"components": {
|
||||
"str_1": "打印标题",
|
||||
"str_2": " 元",
|
||||
"str_3": " 元"
|
||||
"str_2": " Nguyên",
|
||||
"str_3": " Nguyên"
|
||||
},
|
||||
"transferManagent": {
|
||||
"row_required0_1": "行调拨单价不能为空或为0",
|
||||
|
||||
@@ -712,6 +712,9 @@
|
||||
"signInFailed": "医保签到失败"
|
||||
},
|
||||
"common": {
|
||||
"1": "迪丽热巴之子1",
|
||||
"2": "迪丽热巴之子2",
|
||||
"40": "40岁",
|
||||
"add": "新增",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
@@ -819,7 +822,258 @@
|
||||
"printBottleLabel": "打印瓶签",
|
||||
"viewOrders": "查看医嘱",
|
||||
"revoke": "撤销",
|
||||
"unknownError": "未知错误"
|
||||
"unknownError": "未知错误",
|
||||
"msg1": ", // 留空使用默认打印机,或指定打印机名称如 ",
|
||||
"msg2": "); // 药品占比行显示文字",
|
||||
"msg3": "), // 在药品成本列显示文字",
|
||||
"pleaseEnterSupplier": "请输入供应商",
|
||||
"pleaseEnterBuyer": "请输入采购员",
|
||||
"pleaseEnterDocType": "请输入单据类型",
|
||||
"pleaseEnterBillingDate": "请输入开单日期",
|
||||
"pleaseEnterCode": "请输入编号",
|
||||
"pleaseEnterItemName": "请输入品名",
|
||||
"pleaseEnterSpec": "请输入规格",
|
||||
"pleaseEnterUnit": "请输入单位",
|
||||
"pleaseEnterQuantity": "请输入数量",
|
||||
"pleaseEnterManufacturer": "请输入厂家/产地",
|
||||
"pleaseEnterSpecInventory": "请输入规格库存",
|
||||
"pleaseEnterApprovalNumber": "请输入批注文号",
|
||||
"pleaseFillCompleteInfo": "请填写完整信息",
|
||||
"pleaseSelectSupplierAndWarehouse": "请选择供应商和仓库",
|
||||
"noMedicineFoundInWarehouse": "本仓库和供应商没有找到药品信息",
|
||||
"msg4": "确认保存数据吗?",
|
||||
"ok": "确定",
|
||||
"msg5": "新增成功",
|
||||
"saveSuccess": "保存成功",
|
||||
"saveFail": "保存失败",
|
||||
"msg6": "请选择要删除的行",
|
||||
"msg7": "确认删除选中的行吗?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"pleaseSelectWarehouse": "请选择库房",
|
||||
"selectWarehouseBeforeAdd": "新增单据前,请选择库房",
|
||||
"pleaseSelectDocToEdit": "请选择要编辑的单据",
|
||||
"pleaseSelectDocToDelete": "请选择要删除的单据",
|
||||
"approvedDocCannotDelete": "已审批的单据不能删除",
|
||||
"msg8": "确认删除该采购单吗?",
|
||||
"deleteFail": "删除失败",
|
||||
"pleaseSelectDocToAudit": "请选择要审核的单据",
|
||||
"docAlreadyApproved": "该单据已审批,不能重复审批",
|
||||
"msg9": "确认同意该采购单吗?",
|
||||
"msg10": "同意审批成功",
|
||||
"msg11": "同意审批失败",
|
||||
"getOrderListFail": "获取订货单列表失败",
|
||||
"pleaseEnterCurrentQty": "请输入现存数量",
|
||||
"pleaseEnterLotNumber": "请输入产品批号",
|
||||
"pleaseEnterProductionDate": "请输入生产日期",
|
||||
"productionDateCannotExceedExpiry": "生产日期不能大于失效日期",
|
||||
"pleaseEnterExpiryDate": "请输入失效日期",
|
||||
"expiryDateCannotPrecedeProduction": "失效日期不能小于生产日期",
|
||||
"pleaseEnterPackaging": "请输入包装情况",
|
||||
"pleaseSelectAcceptanceResult": "请选择验收结果",
|
||||
"pleaseEnterBatchInventory": "请输入批次库存",
|
||||
"pleaseEnterTraceCode": "请输入药品追溯码",
|
||||
"pleaseEnterTraceCodeUnit": "请输入药品追溯码单位",
|
||||
"pleaseEnterSupplierContact": "请输入供应商联系人",
|
||||
"pleaseEnterBiller": "请输入开单人",
|
||||
"msg12": "请输入发票号",
|
||||
"pleaseSelectProfitLossType": "请选择盈亏类型",
|
||||
"traceCodeNotMatched": "未在库存中匹配到追溯码,请在发药列表中单独扫描",
|
||||
"opFail": "操作失败",
|
||||
"all": "全部",
|
||||
"tableNotInitRetry": "表格组件未初始化,请刷新页面重试",
|
||||
"noPrintItemSelected": "未选择要打印的项目,请重新选择,打印失败",
|
||||
"getPrintDataFailRetry": "获取打印数据失败,请稍后重试",
|
||||
"yuan": "元",
|
||||
"msg13": "处方打印失败: ",
|
||||
" remaining:": " 剩余:",
|
||||
" expiryDate:": " 有效期至:",
|
||||
"zeroYuan": "0.00 元",
|
||||
" yuan": " 元",
|
||||
"getDispensingDetailsFail": "获取发药明细失败",
|
||||
"getConsumableDetailsFail": "获取耗材明细失败",
|
||||
"none": "无",
|
||||
"consumableDispensingFail": "耗材发药失败",
|
||||
"medicineDispensingFail": "药品发药失败",
|
||||
"msg14": "发药成功",
|
||||
"msg15": "发药失败: ",
|
||||
"msg16": "当前批次库存不足",
|
||||
"msg17": "发药数量不能大于总数量",
|
||||
"msg18": "发药数量不能小于总数量",
|
||||
"msg19": "未选择要发药的项目,请重新选择,发药失败",
|
||||
"msg20": "作废中...",
|
||||
"msg21": "请选择作废原因",
|
||||
"msg22": "未选择数据",
|
||||
"pleaseEnterPayAmount": "请输入支付金额",
|
||||
"payAmountMustBePositive": "支付金额必须大于0",
|
||||
"cash": "现金",
|
||||
"wechat": "微信",
|
||||
"alipay": "支付宝",
|
||||
"unionpay": "银联",
|
||||
"pleaseEnterValidPayAmount": "请输入有效的支付金额",
|
||||
"pleaseSelectPayMethod": "请选择支付方式",
|
||||
"chargeSuccess": "收费成功",
|
||||
"chargeFail": "收费失败",
|
||||
"networkErrorRetry": "网络错误,请重试",
|
||||
"patientList": "患者列表",
|
||||
"surgicalWard": "综合外科病区",
|
||||
"msg23": "请先输入住院号!",
|
||||
"msg24": "请先选择病人!",
|
||||
"defaultHospitalName": "中联医院",
|
||||
"msg25": "岁",
|
||||
"selfPay": "自费",
|
||||
"inpatientDeposit": "住院预缴款",
|
||||
"msg26": "人民币:",
|
||||
"printSuccess": "打印成功",
|
||||
"msg27": "打印失败: ",
|
||||
"msg28": "零",
|
||||
"msg29": "壹",
|
||||
"msg30": "贰",
|
||||
"msg31": "叁",
|
||||
"msg32": "肆",
|
||||
"msg33": "伍",
|
||||
"msg34": "陆",
|
||||
"msg35": "柒",
|
||||
"msg36": "捌",
|
||||
"msg37": "玖",
|
||||
"msg38": "拾",
|
||||
"msg39": "佰",
|
||||
"msg40": "仟",
|
||||
"msg41": "万",
|
||||
"msg42": "亿",
|
||||
"msg43": "角",
|
||||
"msg44": "分",
|
||||
"msg45": "负",
|
||||
"msg46": "零元",
|
||||
"msg47": "整",
|
||||
"msg48": "复制成功!",
|
||||
"msg49": "复制失败!",
|
||||
"employeeMedicalInsurance": "职工医保",
|
||||
"outpatientChargeDetails": "门诊收费明细",
|
||||
"msg50": "请输入正确的结算金额",
|
||||
"msg51": "优惠",
|
||||
"msg52": "请输入现金金额",
|
||||
"msg53": "支付二维码",
|
||||
"isBetween": "); // 使用isBetween方法进行范围判断,",
|
||||
"pleaseSelectChargeItem": "请选择一条收费项目",
|
||||
"preSettlementFail": "预结算失败",
|
||||
"financeDept": "财务科",
|
||||
"msg55": "正在读取...",
|
||||
"opSuccess": "操作成功",
|
||||
"register": "登记",
|
||||
"editRegistration": "修改登记",
|
||||
"invalidRowData": "无效的行数据",
|
||||
"patientIdNotExist": "患者 ID 不存在",
|
||||
"encounterIdNotExist": "就诊 ID 不存在",
|
||||
"patientInfoNotFound": "未获取到患者信息",
|
||||
"loadSuccess": "加载成功",
|
||||
"inpatientInfoNotFound": "未获取到住院信息",
|
||||
"msg56": "登记失败:",
|
||||
"validPatientInfoNotFound": "未获取到有效的患者信息",
|
||||
"nameRequired": "姓名不能为空",
|
||||
"pleaseSelectGender": "请选择性别",
|
||||
"ageRequired": "年龄不能为空",
|
||||
"phoneRequired": "联系方式不能为空",
|
||||
"pleaseEnterPatientName": "请输入患者姓名",
|
||||
"pleaseEnterPhone": "请输入联系方式",
|
||||
"pleaseEnterAge": "请输入年龄",
|
||||
"pleaseSelectAdmissionDept": "请选择入院科室",
|
||||
"pleaseSelectAdmissionWard": "请选择入院病区",
|
||||
"pleaseSelectAdmissionDiagnosis": "请选择入院诊断",
|
||||
"depositNotFilledConfirmReg": "住院预交金额未填写,确认登记吗",
|
||||
"msg57": "是否需要进行医保登记?",
|
||||
"medicalInsuranceRegConfirm": "医保登记确认",
|
||||
"jumpToInsuranceRegFail": "跳转到医保登记页面失败",
|
||||
"msg58": "银行卡",
|
||||
"msg59": "医保信息",
|
||||
"msg60": "微信卡",
|
||||
"admissionDeptNotFilled": "入院科室未填写",
|
||||
"admissionWardNotFilled": "入院病区未填写",
|
||||
"admissionDateNotFilled": "入院日期未填写",
|
||||
"admissionDiagnosisNotFilled": "入院诊断未填写",
|
||||
"pleaseEnterReason": "请输入原因",
|
||||
"msg61": " 电子票据红冲失败",
|
||||
"msg62": "红冲成功",
|
||||
"msg63": " 挂号电子发票开具失败",
|
||||
"msg64": " 住院电子发票开具失败",
|
||||
"msg65": " 门诊电子发票开具失败",
|
||||
"msg66": " 电子发票类型不明确",
|
||||
"pleaseEnterRefundReason": "请输入退费原因",
|
||||
"refundReasonTooLong": "退费原因长度不能超过200个字符",
|
||||
"refundSuccess": "退费成功",
|
||||
"msg67": "结算取消成功!",
|
||||
"pleaseEnterDerateAmount": "请输入减免金额",
|
||||
"msg68": "未查询到患者!",
|
||||
"copySuccess": "复制成功",
|
||||
"copyFail": "复制失败",
|
||||
"msg69": "打印发票!",
|
||||
"msg72": "结算成功!",
|
||||
"msg73": "是否取消患者的医保出院登记?",
|
||||
"testPatientName": "郭森",
|
||||
"admissionBedNo": "入院床号",
|
||||
"admissionDept": "入院科室",
|
||||
"domicileAddress": "户口地址",
|
||||
"homeAddress": "家庭地址",
|
||||
"workUnit": "工作单位",
|
||||
"maritalStatus": "婚姻状况",
|
||||
"medicalRecordTime": "病历书写时间",
|
||||
"ethnicity": "民族",
|
||||
"medicalHistoryNarrator": "病史陈述者",
|
||||
"occupation": "职业",
|
||||
"contactPerson": "联系人",
|
||||
"relationship": "关系",
|
||||
"reliability": "可靠程度",
|
||||
"chiefComplaint": "主诉",
|
||||
"presentIllness": "现病史",
|
||||
"pastHistory": "既往史",
|
||||
"personalHistory": "个人史",
|
||||
"msg75": "婚育史",
|
||||
"msg76": "家族史",
|
||||
"msg77": "待查",
|
||||
"msg78": "请选择时间",
|
||||
"msg79": "体温",
|
||||
"msg80": "脉搏",
|
||||
"msg81": "呼吸",
|
||||
"msg82": "血压",
|
||||
"confirmMsg711": "确认保存数据吗?",
|
||||
"confirmTitle711": "提示",
|
||||
"confirmMsg841": "确认删除选中的行吗?",
|
||||
"confirmTitle841": "提示",
|
||||
"confirmMsg422": "确认删除该采购单吗?",
|
||||
"confirmTitle422": "提示",
|
||||
"confirmMsg485": "确认同意该采购单吗?",
|
||||
"confirmTitle485": "提示",
|
||||
"errorMsg176": "生产日期不能大于失效日期",
|
||||
"errorMsg197": "失效日期不能小于生产日期",
|
||||
"confirmMsg508": "确认删除该采购单吗?",
|
||||
"confirmTitle508": "提示",
|
||||
"confirmMsg568": "确认同意该采购单吗?",
|
||||
"confirmTitle568": "提示",
|
||||
"confirmMsg423": "确认删除该采购单吗?",
|
||||
"confirmTitle423": "提示",
|
||||
"confirmMsg486": "确认同意该采购单吗?",
|
||||
"confirmTitle486": "提示",
|
||||
"confirmMsg498": "确认删除该采购单吗?",
|
||||
"confirmTitle498": "提示",
|
||||
"confirmMsg558": "确认同意该采购单吗?",
|
||||
"confirmTitle558": "提示",
|
||||
"strConcat340_ XX:": " 剩余:",
|
||||
"strConcat347_ XXXX:": " 有效期至:",
|
||||
"strConcat357_ XXXX:": " 有效期至:",
|
||||
"returnMsg474": "0.00 元",
|
||||
"strConcatAfter476_ X": " 元",
|
||||
"loadingText901": "作废中...",
|
||||
"strConcatAfter109_ X": " 元",
|
||||
"strConcatAfter115_ X": " 元",
|
||||
"strConcatAfter117_ X": " 元",
|
||||
"strConcatAfter119_ X": " 元",
|
||||
"strConcatAfter123_ X": " 元",
|
||||
"strConcatAfter128_ X": " 元",
|
||||
"returnMsg349": "请输入现金金额",
|
||||
"strConcatAfter351_XXXXX": "支付二维码",
|
||||
"returnMsg577": "现金",
|
||||
"returnMsg579": "支付宝",
|
||||
"returnMsg581": "微信卡",
|
||||
"returnMsg583": "银行卡"
|
||||
},
|
||||
"component": {
|
||||
"rightToolbar": {
|
||||
@@ -1189,7 +1443,15 @@
|
||||
"add_4": "添加部门",
|
||||
"required_5": "显示排序不能为空",
|
||||
"name_required_6": "部门名称不能为空",
|
||||
"required_7": "上级部门不能为空"
|
||||
"required_7": "上级部门不能为空",
|
||||
"confirmDelete": "是否确认删除名称为\"{name}\"的数据项?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"addDept": "添加部门",
|
||||
"editDept": "修改部门",
|
||||
"addSuccess": "新增成功",
|
||||
"editSuccess": "修改成功",
|
||||
"emailInvalid": "请输入正确的邮箱地址",
|
||||
"phoneInvalid": "请输入正确的手机号码"
|
||||
},
|
||||
"tenant": {
|
||||
"tenantId": "租户ID",
|
||||
@@ -1282,7 +1544,22 @@
|
||||
},
|
||||
"msg": {
|
||||
"configFound": "配置项 {code}, 找到配置值:"
|
||||
}
|
||||
},
|
||||
"confirmDelete": "是否确认删除租户ID为\"{id}\"的数据项?",
|
||||
"confirmEnable": "是否确认启用租户ID为\"{id}\"的数据项?",
|
||||
"confirmDisable": "是否确认停用租户ID为\"{id}\"的数据项?",
|
||||
"confirmStatusChange": "确认要{action}\"{id}\"租户吗?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"enableSuccess": "启用成功",
|
||||
"disableSuccess": "停用成功",
|
||||
"addTenant": "添加租户",
|
||||
"editTenant": "修改租户",
|
||||
"configSaveSuccess": "配置保存成功",
|
||||
"configSaveSuccessRefresh": "配置保存成功,用户信息已刷新",
|
||||
"getConfigFail": "获取配置项失败",
|
||||
"configSaveFail": "配置保存失败",
|
||||
"emailInvalid": "请输入正确的邮箱地址",
|
||||
"phoneInvalid": "请输入正确的手机号码"
|
||||
},
|
||||
"post": {
|
||||
"postCode": "岗位编码",
|
||||
@@ -1301,7 +1578,13 @@
|
||||
"add_4": "添加岗位",
|
||||
"required_5": "岗位顺序不能为空",
|
||||
"required_6": "岗位编码不能为空",
|
||||
"name_required_7": "岗位名称不能为空"
|
||||
"name_required_7": "岗位名称不能为空",
|
||||
"confirmDelete": "是否确认删除岗位编号为\"{id}\"的数据项?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"addPost": "添加岗位",
|
||||
"editPost": "修改岗位",
|
||||
"addSuccess": "新增成功",
|
||||
"editSuccess": "修改成功"
|
||||
},
|
||||
"config": {
|
||||
"configName": "参数名称",
|
||||
@@ -1319,7 +1602,14 @@
|
||||
"add_5": "添加参数",
|
||||
"required_6": "参数键值不能为空",
|
||||
"required_7": "参数键名不能为空",
|
||||
"name_required_8": "参数名称不能为空"
|
||||
"name_required_8": "参数名称不能为空",
|
||||
"confirmDelete": "是否确认删除参数编号为\"{id}\"的数据项?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"addConfig": "添加参数",
|
||||
"editConfig": "修改参数",
|
||||
"addSuccess": "新增成功",
|
||||
"editSuccess": "修改成功",
|
||||
"refreshCacheSuccess": "刷新缓存成功"
|
||||
},
|
||||
"notice": {
|
||||
"noticeTitle": "公告标题",
|
||||
@@ -1346,7 +1636,17 @@
|
||||
"str_7": "修改公告",
|
||||
"add_8": "添加公告",
|
||||
"type_required_9": "公告类型不能为空",
|
||||
"required_10": "公告标题不能为空"
|
||||
"required_10": "公告标题不能为空",
|
||||
"confirmDelete": "是否确认删除公告编号为\"{id}\"的数据项?",
|
||||
"deleteSuccess": "删除成功",
|
||||
"addNotice": "添加公告",
|
||||
"editNotice": "修改公告",
|
||||
"addSuccess": "新增成功",
|
||||
"editSuccess": "修改成功",
|
||||
"publishSuccess": "发布成功",
|
||||
"cancelPublish": "已取消发布",
|
||||
"confirmPublish": "确认发布该公告吗?发布后将对所有用户可见。",
|
||||
"confirmCancelPublish": "确认取消发布该公告吗?取消后将不再对用户可见。"
|
||||
}
|
||||
},
|
||||
"dict": {
|
||||
@@ -1877,7 +2177,20 @@
|
||||
"placeholderExprExample": "{\"age\":\">=60\",\"regType\":\"专家\"}",
|
||||
"callnumbervoice": {
|
||||
"placeholderPrefix": "例如:请",
|
||||
"placeholderSuffix": "例如:到诊室就诊"
|
||||
"placeholderSuffix": "例如:到诊室就诊",
|
||||
"defaultPrefix": "请",
|
||||
"defaultSuffix": "到诊室就诊",
|
||||
"msgSaveSuccess": "设置保存成功!",
|
||||
"msgSaveFailed": "保存失败:",
|
||||
"msgRetryLater": "请稍后重试",
|
||||
"msgLoadSuccess": "配置加载成功",
|
||||
"msgNoConfig": "未找到现有配置,使用默认设置",
|
||||
"msgNoConfigWarning": "未找到配置数据,将使用默认设置",
|
||||
"msgLoadFailed": "获取设置失败:",
|
||||
"msgRestored": "已恢复到原始设置",
|
||||
"msgConfirmCancel": "确定要取消所有更改吗?",
|
||||
"errFillPrefix": "请填写叫号前缀",
|
||||
"errFillSuffix": "请填写叫号后缀"
|
||||
}
|
||||
},
|
||||
"billing": {
|
||||
@@ -6967,6 +7280,10 @@
|
||||
"exportPartFailed": "检查部位导出失败",
|
||||
"notImplemented": "功能开发中"
|
||||
},
|
||||
"export": {
|
||||
"methodData": "检查方法数据",
|
||||
"partData": "检查部位数据"
|
||||
},
|
||||
"validation": {
|
||||
"codeRequired": "请输入编码",
|
||||
"nameRequired": "请输入名称",
|
||||
|
||||
@@ -130,8 +130,8 @@ const data = reactive({
|
||||
},
|
||||
rules: {
|
||||
amount: [
|
||||
{ required: true, message: '请输入支付金额', trigger: 'blur' },
|
||||
{ type: 'number', min: 0.01, message: '支付金额必须大于0', trigger: 'blur' },
|
||||
{ required: true, message: t('common.pleaseEnterPayAmount'), trigger: 'blur' },
|
||||
{ type: 'number', min: 0.01, message: t('common.payAmountMustBePositive'), trigger: 'blur' },
|
||||
],
|
||||
},
|
||||
});
|
||||
@@ -140,10 +140,10 @@ const { form, rules } = toRefs(data);
|
||||
|
||||
// 支付方式选项
|
||||
const payTypeOptions = [
|
||||
{ label: '现金', value: 220400 },
|
||||
{ label: '微信', value: 220100 },
|
||||
{ label: '支付宝', value: 220200 },
|
||||
{ label: '银联', value: 220300 },
|
||||
{ label: t('common.cash'), value: 220400 },
|
||||
{ label: t('common.wechat'), value: 220100 },
|
||||
{ label: t('common.alipay'), value: 220200 },
|
||||
{ label: t('common.unionpay'), value: 220300 },
|
||||
];
|
||||
|
||||
// 定义当前选中的支付方式,默认选中现金
|
||||
@@ -161,12 +161,12 @@ const payMethods = ref(undefined);
|
||||
async function submit() {
|
||||
// 表单验证
|
||||
if (!form.value.amount || form.value.amount <= 0) {
|
||||
ElMessage.error('请输入有效的支付金额');
|
||||
ElMessage.error(t('common.pleaseEnterValidPayAmount'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!form.value.payLevelEnum) {
|
||||
ElMessage.error('请选择支付方式');
|
||||
ElMessage.error(t('common.pleaseSelectPayMethod'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -179,17 +179,17 @@ async function submit() {
|
||||
try {
|
||||
const res = await savePayment(form.value);
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('收费成功');
|
||||
ElMessage.success(t('common.chargeSuccess'));
|
||||
reset();
|
||||
emit('close', {
|
||||
status: 'success',
|
||||
busNo: props.patientInfo?.busNo,
|
||||
});
|
||||
} else {
|
||||
ElMessage.error(res.msg || '收费失败');
|
||||
ElMessage.error(res.msg || t('common.chargeFail'));
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('网络错误,请重试');
|
||||
ElMessage.error(t('common.networkErrorRetry'));
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ const total = ref(0);
|
||||
const drawerVisible = ref(false);
|
||||
// 筛选表单
|
||||
const filterForm = reactive({
|
||||
ward: '综合外科病区',
|
||||
ward: t('common.surgicalWard'),
|
||||
searchText: '',
|
||||
});
|
||||
|
||||
|
||||
@@ -306,7 +306,7 @@ const tableRowClassName = ({ row, rowIndex }) => {
|
||||
function getPatientInfo() {
|
||||
console.log(queryParams.value.searchKey, 'queryParams.searchKey');
|
||||
if (!queryParams.value.searchKey) {
|
||||
proxy.$modal.msgError('请先输入住院号!');
|
||||
proxy.$modal.msgError(t('common.msg23'));
|
||||
return;
|
||||
}
|
||||
console.log(queryParams.value, 'queryParams.value');
|
||||
@@ -337,7 +337,7 @@ function confirmCharge() {
|
||||
if (patientInfo.value.patientId) {
|
||||
openDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgError('请先选择病人!');
|
||||
proxy.$modal.msgError(t('common.msg24'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ function refund() {
|
||||
if (patientInfo.value.patientId) {
|
||||
openRefundDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgError('请先选择病人!');
|
||||
proxy.$modal.msgError(t('common.msg24'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,14 +356,14 @@ function refund() {
|
||||
*/
|
||||
async function handlePrint(row) {
|
||||
if (!patientInfo.value.patientId) {
|
||||
proxy.$modal.msgError("请先选择病人!");
|
||||
proxy.$modal.msgError(t('common.msg24'));
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const userStore = useUserStore();
|
||||
const amountValue = row.tenderedAmount || 0;
|
||||
const printData = {
|
||||
hospitalName: userStore.tenantName || userStore.hospitalName || userStore.orgName || "中联医院",
|
||||
hospitalName: userStore.tenantName || userStore.hospitalName || userStore.orgName || t('common.defaultHospitalName'),
|
||||
receiptNo: row.paymentNo || "",
|
||||
currentTime: row.operateTime || new Date().toLocaleString(),
|
||||
// 补打标记
|
||||
@@ -372,16 +372,16 @@ async function handlePrint(row) {
|
||||
encounterNosd: patientInfo.value.busNo || "",
|
||||
patientName: patientInfo.value.patientName || "",
|
||||
gender: patientInfo.value.genderEnum_enumText || "",
|
||||
age: patientInfo.value.age ? patientInfo.value.age + "岁" : "",
|
||||
age: patientInfo.value.age ? patientInfo.value.age + t('common.msg25') : "",
|
||||
// 科室信息
|
||||
inHospitalOrgName: patientInfo.value.inHospitalOrgName || "",
|
||||
bedName: patientInfo.value.bedName || "",
|
||||
contractName: patientInfo.value.feeType || patientInfo.value.contractName || "自费",
|
||||
contractName: patientInfo.value.feeType || patientInfo.value.contractName || t('common.selfPay'),
|
||||
// 费用信息
|
||||
chargeItem: "住院预缴款",
|
||||
chargeItem: t('common.inpatientDeposit'),
|
||||
paymentMethod: row.payWayEnum_enumText || row.paymentMethod || row.paymentEnum_enumText || "现金",
|
||||
amountInWords: "人民币:" + convertToChineseNumber(amountValue),
|
||||
balanceAmount: "¥ " + amountValue.toFixed(2) + " 元",
|
||||
amountInWords: t('common.msg26') + convertToChineseNumber(amountValue),
|
||||
balanceAmount: "¥ " + amountValue.toFixed(2) + t('common. yuan'),
|
||||
cashier: userStore.nickName || "",
|
||||
};
|
||||
// 切换为 A5 横向尺寸 (210mm x 148mm)
|
||||
@@ -398,10 +398,10 @@ async function handlePrint(row) {
|
||||
`;
|
||||
}
|
||||
});
|
||||
proxy.$modal.msgSuccess("打印成功");
|
||||
proxy.$modal.msgSuccess(t('common.printSuccess'));
|
||||
} catch (error) {
|
||||
console.error("预交金打印失败:", error);
|
||||
proxy.$modal.msgError("打印失败: " + (error.message || "未知错误"));
|
||||
proxy.$modal.msgError(t('common.msg27') + (error.message || t('common.unknownError')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -492,9 +492,9 @@ async function copyText() {
|
||||
try {
|
||||
// 使用 navigator.clipboard.writeText 复制文本
|
||||
await navigator.clipboard.writeText(form.value.admissionNo);
|
||||
proxy.$modal.msgSuccess('复制成功!');
|
||||
proxy.$modal.msgSuccess(t('common.msg48'));
|
||||
} catch (err) {
|
||||
proxy.$modal.msgError('复制失败!' + err);
|
||||
proxy.$modal.msgError(t('common.msg49') + err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -330,41 +330,41 @@ async function printReceipt(param) {
|
||||
...param,
|
||||
// 基础支付类型
|
||||
YB_FUND_PAY:
|
||||
(param.detail?.find((t) => t.payEnum === 100000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
SELF_PAY: (param.detail?.find((t) => t.payEnum === 200000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 100000)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter109_ X'),
|
||||
SELF_PAY: (param.detail?.find((t) => t.payEnum === 200000)?.amount?.toFixed(2) || '0.00') + t('common. yuan'),
|
||||
OTHER_PAY: param.detail?.find((t) => t.payEnum === 300000)?.amount ?? 0, // 其他(如医院负担金额)
|
||||
|
||||
// 基本医保统筹基金支出
|
||||
YB_TC_FUND_AMOUNT:
|
||||
(param.detail?.find((t) => t.payEnum === 110000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 110000)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter115_ X'),
|
||||
YB_BC_FUND_AMOUNT:
|
||||
(param.detail?.find((t) => t.payEnum === 120000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 120000)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter117_ X'),
|
||||
YB_JZ_FUND_AMOUNT:
|
||||
(param.detail?.find((t) => t.payEnum === 130000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 130000)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter119_ X'),
|
||||
|
||||
// 医保结算返回值
|
||||
FULAMT_OWNPAY_AMT:
|
||||
(param.detail?.find((t) => t.payEnum === 1)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
INSCP_SCP_AMT: (param.detail?.find((t) => t.payEnum === 5)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 1)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter123_ X'),
|
||||
INSCP_SCP_AMT: (param.detail?.find((t) => t.payEnum === 5)?.amount?.toFixed(2) || '0.00') + t('common. yuan'),
|
||||
|
||||
// 特殊支付方式
|
||||
SELF_YB_ZH_PAY:
|
||||
(param.detail?.find((t) => t.payEnum === 210000)?.amount?.toFixed(2) || '0.00') + ' 元',
|
||||
(param.detail?.find((t) => t.payEnum === 210000)?.amount?.toFixed(2) || '0.00') + t('common.strConcatAfter128_ X'),
|
||||
|
||||
Mr_QR_Code: param.regNo,
|
||||
sex: props.patientInfo?.genderEnum_enumText || '',
|
||||
age: props.patientInfo?.age || '',
|
||||
personType: '职工医保',
|
||||
fixmedinsName: (param.fixmedinsName || '') + '门诊收费明细',
|
||||
personType: t('common.employeeMedicalInsurance'),
|
||||
fixmedinsName: (param.fixmedinsName || '') + t('common.outpatientChargeDetails'),
|
||||
name: props.patientInfo?.patientName || '', // 姓名
|
||||
gender: props.patientInfo?.genderEnum_enumText || '', // 性别
|
||||
encounterBusNo: props.patientInfo?.encounterBusNo || '', // 病例号
|
||||
currentDate: currentDate.value, // 收费日期
|
||||
chargedItems: props.chargedItems, // 收费项目
|
||||
totalAmount: props.totalAmount.toFixed(2) + ' 元', // 应收金额
|
||||
itemTotalAmount: total.toFixed(2) + ' 元', // 应收金额
|
||||
displayAmount: displayAmountTemp + ' 元', // 实收金额
|
||||
returnedAmount: returnedAmount.value + ' 元', // 应找零
|
||||
totalAmount: props.totalAmount.toFixed(2) + t('common. yuan'), // 应收金额
|
||||
itemTotalAmount: total.toFixed(2) + t('common. yuan'), // 应收金额
|
||||
displayAmount: displayAmountTemp + t('common. yuan'), // 实收金额
|
||||
returnedAmount: returnedAmount.value + t('common. yuan'), // 应找零
|
||||
userName: userStore.nickName,
|
||||
},
|
||||
],
|
||||
@@ -375,7 +375,7 @@ async function printReceipt(param) {
|
||||
console.log('打印成功');
|
||||
} catch (error) {
|
||||
console.error('打印失败:', error);
|
||||
proxy.$modal.msgError('打印失败: ' + error.message);
|
||||
proxy.$modal.msgError(t('common.msg27') + error.message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ async function submit() {
|
||||
}, 0)
|
||||
.toFixed(2);
|
||||
if (parseFloat(amount) < formData.totalAmount.toFixed(2)) {
|
||||
proxy.$modal.msgError('请输入正确的结算金额');
|
||||
proxy.$modal.msgError(t('common.msg50'));
|
||||
return;
|
||||
}
|
||||
dialogLoading.value = true;
|
||||
@@ -473,10 +473,10 @@ async function print() {
|
||||
encounterBusNo: props.patientInfo.encounterBusNo, // 病例号
|
||||
currentDate: currentDate.value, // 收费日期
|
||||
chargedItems: props.chargedItems, // 收费项目
|
||||
totalAmount: props.totalAmount.toFixed(2) + ' 元', // 应收金额
|
||||
itemTotalAmount: total.toFixed(2) + ' 元', // 项目总金额
|
||||
displayAmount: displayAmount.value + ' 元', // 实收金额
|
||||
returnedAmount: returnedAmount.value + ' 元', // 应找零
|
||||
totalAmount: props.totalAmount.toFixed(2) + t('common. yuan'), // 应收金额
|
||||
itemTotalAmount: total.toFixed(2) + t('common. yuan'), // 项目总金额
|
||||
displayAmount: displayAmount.value + t('common. yuan'), // 实收金额
|
||||
returnedAmount: returnedAmount.value + t('common. yuan'), // 应找零
|
||||
userName: userStore.nickName,
|
||||
},
|
||||
],
|
||||
@@ -487,18 +487,18 @@ async function print() {
|
||||
console.log('打印成功');
|
||||
} catch (error) {
|
||||
console.error('打印失败:', error);
|
||||
proxy.$modal.msgError('打印失败: ' + error.message);
|
||||
proxy.$modal.msgError(t('common.msg27') + error.message);
|
||||
}
|
||||
}
|
||||
|
||||
const currentDate = ref(new Date().toLocaleString());
|
||||
|
||||
const selfPayMethods = [
|
||||
{ label: '现金', value: 220400, isWebPay: false },
|
||||
{ label: '微信', value: 220100, isWebPay: true },
|
||||
{ label: '支付宝', value: 220200, isWebPay: true },
|
||||
{ label: '银联', value: 220300, isWebPay: true },
|
||||
{ label: '优惠', value: 220500, isWebPay: false },
|
||||
{ label: t('common.cash'), value: 220400, isWebPay: false },
|
||||
{ label: t('common.wechat'), value: 220100, isWebPay: true },
|
||||
{ label: t('common.alipay'), value: 220200, isWebPay: true },
|
||||
{ label: t('common.unionpay'), value: 220300, isWebPay: true },
|
||||
{ label: t('common.msg51'), value: 220500, isWebPay: false },
|
||||
];
|
||||
|
||||
// 计算剩余可输入金额
|
||||
@@ -567,12 +567,12 @@ const removePayment = (index) => {
|
||||
formData.selfPay.splice(index, 1);
|
||||
};
|
||||
|
||||
const payTypeText = ref('微信');
|
||||
const payTypeText = ref(t('common.wechat'));
|
||||
const payTypePlaceholder = computed(() => {
|
||||
if (payTypeText.value === '现金') {
|
||||
return '请输入现金金额';
|
||||
if (payTypeText.value === t('common.cash')) {
|
||||
return t('common.returnMsg349');
|
||||
}
|
||||
return payTypeText.value + '支付二维码';
|
||||
return payTypeText.value + t('common.strConcatAfter351_XXXXX');
|
||||
});
|
||||
const clearAmount = (index, value) => {
|
||||
const selectedOption = selfPayMethods.find((item) => item.value === value);
|
||||
|
||||
@@ -597,7 +597,7 @@ const consumablesIdList = ref([]);
|
||||
function confirmCharge() {
|
||||
let selectRows = chargeListRef.value.getSelectionRows();
|
||||
if (selectRows.length == 0) {
|
||||
proxy.$modal.msgWarning('请选择一条收费项目');
|
||||
proxy.$modal.msgWarning(t('common.pleaseSelectChargeItem'));
|
||||
return;
|
||||
}
|
||||
chargeItemIdList.value = selectRows.map((item) => {
|
||||
@@ -635,7 +635,7 @@ function confirmCharge() {
|
||||
}) || [];
|
||||
openDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgError(res?.msg || '预结算失败');
|
||||
proxy.$modal.msgError(res?.msg || t('common.preSettlementFail'));
|
||||
}
|
||||
});
|
||||
// console.log(patientInfo)
|
||||
@@ -674,11 +674,11 @@ async function handleReadCard(value) {
|
||||
operatorId: userStore.id.toString(),
|
||||
operatorName: userStore.name,
|
||||
officeId: 'D83',
|
||||
officeName: '财务科',
|
||||
officeName: t('common.financeDept'),
|
||||
})
|
||||
.then((res) => {
|
||||
readCardLoading.value = true;
|
||||
loadingText.value = '正在读取...';
|
||||
loadingText.value = t('common.msg55');
|
||||
jsonResult = res.data;
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -707,7 +707,7 @@ async function handleReadCard(value) {
|
||||
break;
|
||||
case '03': // 社保卡
|
||||
readCardLoading.value = true;
|
||||
loadingText.value = '正在读取...';
|
||||
loadingText.value = t('common.msg55');
|
||||
await invokeYbPlugin5001(
|
||||
JSON.stringify({
|
||||
FunctionId: 1,
|
||||
@@ -763,7 +763,7 @@ async function handleReadCard(value) {
|
||||
if (userMessage.certNo) {
|
||||
let selectRows = chargeListRef.value.getSelectionRows();
|
||||
if (selectRows.length == 0) {
|
||||
proxy.$modal.msgWarning('请选择一条收费项目');
|
||||
proxy.$modal.msgWarning(t('common.pleaseSelectChargeItem'));
|
||||
return;
|
||||
}
|
||||
chargeItemIdList.value = selectRows.map((item) => {
|
||||
@@ -803,7 +803,7 @@ async function handleReadCard(value) {
|
||||
|
||||
openDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgError(res?.msg || '预结算失败');
|
||||
proxy.$modal.msgError(res?.msg || t('common.preSettlementFail'));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -820,7 +820,7 @@ async function handleReadCard(value) {
|
||||
function payToSelt() {
|
||||
changeToSelfPay(encounterId.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
proxy.$modal.msgSuccess(t('common.opSuccess'));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -831,7 +831,7 @@ function payToSelt() {
|
||||
function patToMedicalInsurance() {
|
||||
changeToMedicalInsurance(encounterId.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
proxy.$modal.msgSuccess(t('common.opSuccess'));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -842,7 +842,7 @@ function patToMedicalInsurance() {
|
||||
function studentPayTosStudentSelf() {
|
||||
changeStudentPayTosStudentSelf(encounterId.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
proxy.$modal.msgSuccess(t('common.opSuccess'));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -853,7 +853,7 @@ function studentPayTosStudentSelf() {
|
||||
function studentSelfToStudentPay() {
|
||||
changeStudentSelfToStudentPay(encounterId.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
proxy.$modal.msgSuccess(t('common.opSuccess'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ const total = ref();
|
||||
const inHospitalInfo = ref({});
|
||||
const alreadyEdit = ref(true);
|
||||
const isEditMode = ref(false);
|
||||
const dialogTitle = ref('登记');
|
||||
const dialogTitle = ref(t('common.register'));
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
@@ -318,7 +318,7 @@ const patient = ref({});
|
||||
const priceTypeList = ref({});
|
||||
const doView = async (row) => {
|
||||
isEditMode.value = false;
|
||||
dialogTitle.value = '查看';
|
||||
dialogTitle.value = t('common.view');
|
||||
const [patientRes, hospitalRes] = await Promise.all([
|
||||
getPatientBasicInfo(row.patientId),
|
||||
getInHospitalInfo(row.encounterId),
|
||||
@@ -331,7 +331,7 @@ const doView = async (row) => {
|
||||
|
||||
const doModify = async (row) => {
|
||||
isEditMode.value = true;
|
||||
dialogTitle.value = '修改登记';
|
||||
dialogTitle.value = t('common.editRegistration');
|
||||
const [patientRes, hospitalRes] = await Promise.all([
|
||||
getPatientBasicInfo(row.patientId),
|
||||
getInHospitalInfo(row.encounterId),
|
||||
|
||||
@@ -211,7 +211,7 @@ const doRegistering = async (row) => {
|
||||
// 确保 row 是对象且包含必要属性
|
||||
if (!row || typeof row !== 'object') {
|
||||
|
||||
ElMessage.error('无效的行数据');
|
||||
ElMessage.error(t('common.invalidRowData'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -220,13 +220,13 @@ const doRegistering = async (row) => {
|
||||
// 检查必要字段是否存在
|
||||
if (patientId === undefined || patientId === null || patientId === '') {
|
||||
|
||||
ElMessage.error('患者 ID 不存在');
|
||||
ElMessage.error(t('common.patientIdNotExist'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (encounterId === undefined || encounterId === null || encounterId === '') {
|
||||
|
||||
ElMessage.error('就诊 ID 不存在');
|
||||
ElMessage.error(t('common.encounterIdNotExist'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ const doRegistering = async (row) => {
|
||||
patient.value = patientRes.data;
|
||||
} else {
|
||||
|
||||
ElMessage.warning('未获取到患者信息');
|
||||
ElMessage.warning(t('common.patientInfoNotFound'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -250,14 +250,14 @@ const doRegistering = async (row) => {
|
||||
inHospitalInfo.value = inHospitalRes.data;
|
||||
patientRegisterVisible.value = true;
|
||||
noFile.value = false;
|
||||
ElMessage.success('加载成功');
|
||||
ElMessage.success(t('common.loadSuccess'));
|
||||
} else {
|
||||
|
||||
ElMessage.error(inHospitalRes.msg || '未获取到住院信息');
|
||||
ElMessage.error(inHospitalRes.msg || t('common.inpatientInfoNotFound'));
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
ElMessage.error('登记失败:' + (error.message || '未知错误'));
|
||||
ElMessage.error(t('common.msg56') + (error.message || t('common.unknownError')));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -374,7 +374,7 @@ const organization = ref([]);
|
||||
const { nationality_code } = proxy.useDict('nationality_code');
|
||||
|
||||
const readCardLoading = ref(false);
|
||||
const loadingText = ref('正在读取...');
|
||||
const loadingText = ref(t('common.msg55'));
|
||||
|
||||
onMounted(() => {
|
||||
getInitOptions();
|
||||
@@ -472,11 +472,11 @@ async function handleReadCard(value) {
|
||||
operatorId: userStore.id.toString(),
|
||||
operatorName: userStore.name,
|
||||
officeId: 'D83',
|
||||
officeName: '财务科',
|
||||
officeName: t('common.financeDept'),
|
||||
})
|
||||
.then((res) => {
|
||||
readCardLoading.value = true;
|
||||
loadingText.value = '正在读取...';
|
||||
loadingText.value = t('common.msg55');
|
||||
console.log(res);
|
||||
jsonResult = res.data;
|
||||
|
||||
@@ -512,7 +512,7 @@ async function handleReadCard(value) {
|
||||
break;
|
||||
case '03': // 社保卡
|
||||
readCardLoading.value = true;
|
||||
loadingText.value = '正在读取...';
|
||||
loadingText.value = t('common.msg55');
|
||||
await invokeYbPlugin5001(
|
||||
JSON.stringify({
|
||||
FunctionId: 1,
|
||||
@@ -584,7 +584,7 @@ async function handleReadCard(value) {
|
||||
// });
|
||||
} else {
|
||||
// 处理无有效数据的情况
|
||||
ElMessage.error('未获取到有效的患者信息');
|
||||
ElMessage.error(t('common.validPatientInfoNotFound'));
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
|
||||
@@ -400,10 +400,10 @@ const data = reactive({
|
||||
genderEnum: 0,
|
||||
},
|
||||
rules: {
|
||||
name: [{ required: true, message: '姓名不能为空', trigger: 'change' }],
|
||||
genderEnum: [{ required: true, message: '请选择性别', trigger: 'change' }],
|
||||
age: [{ required: true, message: '年龄不能为空', trigger: 'change' }],
|
||||
phone: [{ required: true, message: '联系方式不能为空', trigger: 'change' }],
|
||||
name: [{ required: true, message: t('common.nameRequired'), trigger: 'change' }],
|
||||
genderEnum: [{ required: true, message: t('common.pleaseSelectGender'), trigger: 'change' }],
|
||||
age: [{ required: true, message: t('common.ageRequired'), trigger: 'change' }],
|
||||
phone: [{ required: true, message: t('common.phoneRequired'), trigger: 'change' }],
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -233,37 +233,37 @@ const handleSubmit = () => {
|
||||
if (!paramsDic?.name) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请输入患者姓名',
|
||||
message: t('common.pleaseEnterPatientName'),
|
||||
});
|
||||
return;
|
||||
} else if (!paramsDic?.phone) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请输入联系方式',
|
||||
message: t('common.pleaseEnterPhone'),
|
||||
});
|
||||
return;
|
||||
} else if (!paramsDic?.age) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请输入年龄',
|
||||
message: t('common.pleaseEnterAge'),
|
||||
});
|
||||
return;
|
||||
} else if (!paramsDic1?.inHospitalOrgId) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请选择入院科室',
|
||||
message: t('common.pleaseSelectAdmissionDept'),
|
||||
});
|
||||
return;
|
||||
} else if (!paramsDic1?.wardLocationId) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请选择入院病区',
|
||||
message: t('common.pleaseSelectAdmissionWard'),
|
||||
});
|
||||
return;
|
||||
} else if (!paramsDic1?.diagnosisDefinitionId) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '请选择入院诊断',
|
||||
message: t('common.pleaseSelectAdmissionDiagnosis'),
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -349,9 +349,9 @@ const handleSubmit = () => {
|
||||
});
|
||||
};
|
||||
if (advance.value == 0) {
|
||||
ElMessageBox.confirm('住院预交金额未填写,确认登记吗', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
ElMessageBox.confirm(t('common.depositNotFilledConfirmReg'), t('common.tip'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
@@ -383,9 +383,9 @@ const handleSubmit = () => {
|
||||
// 自费不需要弹医保
|
||||
if (params.contractNo != '0000') {
|
||||
// 询问是否需要医保登记
|
||||
ElMessageBox.confirm('是否需要进行医保登记?', '医保登记确认', {
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
ElMessageBox.confirm(t('common.msg57'), t('common.medicalInsuranceRegConfirm'), {
|
||||
confirmButtonText: t('common.confirm'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'info',
|
||||
})
|
||||
.then(() => {
|
||||
@@ -414,7 +414,7 @@ const handleSubmit = () => {
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('路由跳转失败:', error);
|
||||
ElMessage.error('跳转到医保登记页面失败');
|
||||
ElMessage.error(t('common.jumpToInsuranceRegFail'));
|
||||
emits('okAct');
|
||||
});
|
||||
} catch (error) {
|
||||
@@ -438,9 +438,9 @@ const handleSubmit = () => {
|
||||
};
|
||||
|
||||
if (advance.value == 0) {
|
||||
ElMessageBox.confirm('住院预交金额未填写,确认登记吗', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
ElMessageBox.confirm(t('common.depositNotFilledConfirmReg'), t('common.tip'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
@@ -510,22 +510,22 @@ const feeTypeOptions = reactive([
|
||||
{
|
||||
type: 'hipCash',
|
||||
payEnum: 220400,
|
||||
label: '现金',
|
||||
label: t('common.cash'),
|
||||
},
|
||||
{
|
||||
type: 'hipAlipay',
|
||||
payEnum: 220200,
|
||||
label: '支付宝',
|
||||
label: t('common.alipay'),
|
||||
},
|
||||
{
|
||||
type: 'wechat',
|
||||
payEnum: 220100,
|
||||
label: '微信',
|
||||
label: t('common.wechat'),
|
||||
},
|
||||
{
|
||||
type: 'hipPayCard',
|
||||
payEnum: 220300,
|
||||
label: '银行卡',
|
||||
label: t('common.msg58'),
|
||||
},
|
||||
]);
|
||||
const advance = ref('0.00');
|
||||
@@ -549,7 +549,7 @@ const medicalInsuranceTitle = ref('');
|
||||
|
||||
/* 患者费别变更 */
|
||||
const onChangFeeType = () => {
|
||||
medicalInsuranceTitle.value = '医保信息'; //医保信息、医保登记
|
||||
medicalInsuranceTitle.value = t('common.msg59'); //医保信息、医保登记
|
||||
medicalInsuranceVisible.value = true;
|
||||
};
|
||||
|
||||
@@ -565,9 +565,9 @@ const printDepositReceipt = async (patientInfo, inHospitalInfo, medicalInsurance
|
||||
// 患者基本信息
|
||||
patientName: patientInfo.patientName || '', // 姓名
|
||||
patientId: patientInfo.idCard || patientInfo.patientCode || '', // ID号
|
||||
contractName: patientInfo.contractName || '自费', // 医保类别
|
||||
contractName: patientInfo.contractName || t('common.selfPay'), // 医保类别
|
||||
gender: patientInfo.genderEnum_enumText || '', // 性别
|
||||
age: patientInfo.age ? patientInfo.age + '岁' : '', // 年龄
|
||||
age: patientInfo.age ? patientInfo.age + t('common.msg25') : '', // 年龄
|
||||
|
||||
// 住院信息
|
||||
encounterNosd: inHospitalInfo.encounterNo || '', // 住院号
|
||||
@@ -575,8 +575,8 @@ const printDepositReceipt = async (patientInfo, inHospitalInfo, medicalInsurance
|
||||
bedName: inHospitalInfo.bedName || '', // 床号
|
||||
|
||||
// 费用信息
|
||||
balanceAmount: '¥ ' + parseFloat(advance.value || 0).toFixed(2) + ' 元', // 金额
|
||||
amountInWords: '人民币:' + convertToChineseNumber(advance.value || '0.00'), // 人民币大写
|
||||
balanceAmount: '¥ ' + parseFloat(advance.value || 0).toFixed(2) + t('common. yuan'), // 金额
|
||||
amountInWords: t('common.msg26') + convertToChineseNumber(advance.value || '0.00'), // 人民币大写
|
||||
|
||||
// 支付方式详情
|
||||
paymentMethod: payLabel, // 支付方式绑定当前选中的具体名称
|
||||
@@ -617,7 +617,7 @@ const printDepositReceipt = async (patientInfo, inHospitalInfo, medicalInsurance
|
||||
console.log('预交金收据打印成功');
|
||||
} catch (error) {
|
||||
console.error('打印失败:', error);
|
||||
ElMessage.error('打印失败: ' + error.message);
|
||||
ElMessage.error(t('common.msg27') + error.message);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -708,13 +708,13 @@ function getWxPayResult() {
|
||||
const payType = () => {
|
||||
switch (currentFeeType.value) {
|
||||
case 'hipCash':
|
||||
return '现金';
|
||||
return t('common.returnMsg577');
|
||||
case 'hipAlipay':
|
||||
return '支付宝';
|
||||
return t('common.returnMsg579');
|
||||
case 'wechat':
|
||||
return '微信卡';
|
||||
return t('common.returnMsg581');
|
||||
case 'hipPayCard':
|
||||
return '银行卡';
|
||||
return t('common.returnMsg583');
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -322,28 +322,28 @@ const rules = reactive({
|
||||
inHospitalOrgId: [
|
||||
{
|
||||
required: true,
|
||||
message: '入院科室未填写',
|
||||
message: t('common.admissionDeptNotFilled'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
],
|
||||
wardLocationId: [
|
||||
{
|
||||
required: true,
|
||||
message: '入院病区未填写',
|
||||
message: t('common.admissionWardNotFilled'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
],
|
||||
startTime: [
|
||||
{
|
||||
required: true,
|
||||
message: '入院日期未填写',
|
||||
message: t('common.admissionDateNotFilled'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
],
|
||||
diagnosisDefinitionId: [
|
||||
{
|
||||
required: true,
|
||||
message: '入院诊断未填写',
|
||||
message: t('common.admissionDiagnosisNotFilled'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -401,7 +401,7 @@ function handleOpenReasonDialog(row) {
|
||||
// 提交原因
|
||||
function submitReason() {
|
||||
if (!reasonForm.value.reason.trim()) {
|
||||
proxy.$message.warning('请输入原因');
|
||||
proxy.$message.warning(t('common.pleaseEnterReason'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ function submitReason() {
|
||||
if(res.data.includes(" 电子票据红冲失败")){
|
||||
proxy.$message.error(res.data);
|
||||
}else{
|
||||
proxy.$message.success('红冲成功');
|
||||
proxy.$message.success(t('common.msg62'));
|
||||
// 关闭弹窗
|
||||
reasonDialogVisible.value = false;
|
||||
|
||||
@@ -497,12 +497,12 @@ function handleRefund(row) {
|
||||
function submitRefund() {
|
||||
// 使用表单验证
|
||||
if (!refundForm.value.reason || refundForm.value.reason.trim() === '') {
|
||||
proxy.$message.warning('请输入退费原因');
|
||||
proxy.$message.warning(t('common.pleaseEnterRefundReason'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (refundForm.value.reason.length > 200) {
|
||||
proxy.$message.warning('退费原因长度不能超过200个字符');
|
||||
proxy.$message.warning(t('common.refundReasonTooLong'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -514,7 +514,7 @@ function submitRefund() {
|
||||
|
||||
inpaUnPay(refundData).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$message.success('退费成功');
|
||||
proxy.$message.success(t('common.refundSuccess'));
|
||||
refundDialogVisible.value = false;
|
||||
getLists();
|
||||
}else {
|
||||
|
||||
@@ -268,7 +268,7 @@ const patientListDialogVisible = ref(false)
|
||||
const goSettleCancel = () => {
|
||||
if (currentPatient.value?.visitCode) {
|
||||
ElMessage({
|
||||
message: '结算取消成功!',
|
||||
message: t('common.msg67'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
|
||||
@@ -85,7 +85,7 @@ const form = reactive({
|
||||
const bpubTypeOption = ref<Array<any>>([])
|
||||
const rules = reactive<FormRules<any>>({
|
||||
amount: [
|
||||
{ required: true, message: '请输入减免金额', trigger: 'blur' },
|
||||
{ required: true, message: t('common.pleaseEnterDerateAmount'), trigger: 'blur' },
|
||||
],
|
||||
})
|
||||
const close = () => {
|
||||
|
||||
@@ -285,7 +285,7 @@ const queryPatient = () => {
|
||||
patientListDialogVisible.value = true
|
||||
} else {
|
||||
ElMessage({
|
||||
message: '未查询到患者!',
|
||||
message: t('common.msg68'),
|
||||
type: 'info',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
@@ -343,7 +343,7 @@ const goSettleCancel = () => {
|
||||
}),
|
||||
}).then((res) => {
|
||||
ElMessage({
|
||||
message: '结算取消成功!',
|
||||
message: t('common.msg67'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
|
||||
@@ -90,9 +90,9 @@ const copyToClipboard = async () => {
|
||||
try {
|
||||
// 使用 Clipboard API 复制文本
|
||||
await toClipboard(12312312312)
|
||||
ElMessage.success('复制成功') // Element Plus 的消息组件
|
||||
ElMessage.success(t('common.copySuccess')) // Element Plus 的消息组件
|
||||
} catch (err) {
|
||||
ElMessage.error('复制失败')
|
||||
ElMessage.error(t('common.copyFail'))
|
||||
console.error('复制失败:', err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ const close = () => {
|
||||
const collectFeeCancel = (row: any) => {};
|
||||
const submitForm = () => {
|
||||
ElMessage({
|
||||
message: '打印发票!',
|
||||
message: t('common.msg69'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
|
||||
@@ -182,7 +182,7 @@ const openAct = () => {
|
||||
//字典等基础数据
|
||||
getPrePayData()
|
||||
}
|
||||
const currentChargeType = ref('现金')
|
||||
const currentChargeType = ref(t('common.cash'))
|
||||
const changeType = (name: string) => {
|
||||
currentChargeType.value = name
|
||||
}
|
||||
|
||||
@@ -420,7 +420,7 @@ const queryPatient = () => {
|
||||
patientListDialogVisible.value = true
|
||||
} else {
|
||||
ElMessage({
|
||||
message: '未查询到患者!',
|
||||
message: t('common.msg68'),
|
||||
type: 'info',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
@@ -521,28 +521,28 @@ const paying = (row) => {
|
||||
}
|
||||
const childDatas = ref([
|
||||
{
|
||||
name: '迪丽热巴之子1',
|
||||
type: '自费',
|
||||
name: t('common.1'),
|
||||
type: t('common.selfPay'),
|
||||
cost: '1500',
|
||||
},
|
||||
{
|
||||
name: '迪丽热巴之子2',
|
||||
type: '自费',
|
||||
name: t('common.2'),
|
||||
type: t('common.selfPay'),
|
||||
cost: '1500',
|
||||
},
|
||||
{
|
||||
name: '迪丽热巴之子2',
|
||||
type: '自费',
|
||||
name: t('common.2'),
|
||||
type: t('common.selfPay'),
|
||||
cost: '1500',
|
||||
},
|
||||
{
|
||||
name: '迪丽热巴之子2',
|
||||
type: '自费',
|
||||
name: t('common.2'),
|
||||
type: t('common.selfPay'),
|
||||
cost: '1500',
|
||||
},
|
||||
{
|
||||
name: '迪丽热巴之子2',
|
||||
type: '自费',
|
||||
name: t('common.2'),
|
||||
type: t('common.selfPay'),
|
||||
cost: '1500',
|
||||
},
|
||||
])
|
||||
@@ -615,7 +615,7 @@ const receiptVisible = ref(false)
|
||||
const goSettle = () => {
|
||||
// receiptVisible.value = true
|
||||
ElMessage({
|
||||
message: '结算成功!',
|
||||
message: t('common.msg72'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
@@ -625,7 +625,7 @@ const goSettle = () => {
|
||||
|
||||
const goSettleCancel = () => {
|
||||
ElMessage({
|
||||
message: '结算取消成功!',
|
||||
message: t('common.msg67'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
@@ -661,9 +661,9 @@ const derateOk = (amount) => {
|
||||
/* 取消医保出院 */
|
||||
const cancelDischarge = async () => {
|
||||
await proxy.$hipMessageBox({
|
||||
title: '提示',
|
||||
title: t('common.tip'),
|
||||
type: 'warn',
|
||||
content: '是否取消患者的医保出院登记?',
|
||||
content: t('common.msg73'),
|
||||
onConfirm: () => {
|
||||
console.log('点击知道了')
|
||||
},
|
||||
|
||||
@@ -572,7 +572,7 @@ const goSettle = () => {
|
||||
console.log(res)
|
||||
// econDetailsInfo.value.settleId = res.id;
|
||||
ElMessage({
|
||||
message: '结算成功!',
|
||||
message: t('common.msg72'),
|
||||
type: 'success',
|
||||
grouping: true,
|
||||
showClose: true,
|
||||
@@ -637,9 +637,9 @@ const derateOk = (amount: number) => {
|
||||
/* 取消医保出院 */
|
||||
const cancelDischarge = async () => {
|
||||
await proxy.$hipMessageBox({
|
||||
title: '提示',
|
||||
title: t('common.tip'),
|
||||
type: 'warn',
|
||||
content: '是否取消患者的医保出院登记?',
|
||||
content: t('common.msg73'),
|
||||
onConfirm: () => {
|
||||
console.log('点击知道了')
|
||||
},
|
||||
|
||||
@@ -197,30 +197,30 @@ const emits = defineEmits([]);
|
||||
const props = defineProps({})
|
||||
const state = reactive({
|
||||
form: {
|
||||
name: '郭森',
|
||||
gender: '男',
|
||||
age: '40岁',
|
||||
bedNumber: '入院床号',
|
||||
department: '入院科室',
|
||||
name: t('common.testPatientName'),
|
||||
gender: t('common.male'),
|
||||
age: t('common.40'),
|
||||
bedNumber: t('common.admissionBedNo'),
|
||||
department: t('common.admissionDept'),
|
||||
inpatientNumber: '0010000637',
|
||||
domicile: '户口地址',
|
||||
homeAddress: '家庭地址',
|
||||
workUnit: '工作单位',
|
||||
domicile: t('common.domicileAddress'),
|
||||
homeAddress: t('common.homeAddress'),
|
||||
workUnit: t('common.workUnit'),
|
||||
idCard: '61010319841004241X',
|
||||
admissionDate: '2025-02-14 11:05',
|
||||
maritalStatus: '婚姻状况',
|
||||
medicalHistoryWritingTime: '病历书写时间',
|
||||
nation: '民族',
|
||||
medicalHistoryNarrator: '病史陈述者',
|
||||
occupation: '职业',
|
||||
contactPerson: '联系人',
|
||||
relationship: '关系',
|
||||
maritalStatus: t('common.maritalStatus'),
|
||||
medicalHistoryWritingTime: t('common.medicalRecordTime'),
|
||||
nation: t('common.ethnicity'),
|
||||
medicalHistoryNarrator: t('common.medicalHistoryNarrator'),
|
||||
occupation: t('common.occupation'),
|
||||
contactPerson: t('common.contactPerson'),
|
||||
relationship: t('common.relationship'),
|
||||
phone: '18691558856',
|
||||
reliability: '可靠程度',
|
||||
chiefComplaint: '主诉',
|
||||
presentIllness: '现病史',
|
||||
pastHistory: '既往史',
|
||||
personalHistory: '个人史',
|
||||
reliability: t('common.reliability'),
|
||||
chiefComplaint: t('common.chiefComplaint'),
|
||||
presentIllness: t('common.presentIllness'),
|
||||
pastHistory: t('common.pastHistory'),
|
||||
personalHistory: t('common.personalHistory'),
|
||||
maritalHistory: '婚育史',
|
||||
familyHistory: '家族史',
|
||||
specialtyCheck: '请输入',
|
||||
|
||||
@@ -9,28 +9,28 @@
|
||||
<!-- 明确列出所有导航项 -->
|
||||
<button
|
||||
class="menu-item active"
|
||||
@click="handleMenuClick('检查类型')"
|
||||
@click="handleMenuClick(MENU_CHECK_TYPE)"
|
||||
>
|
||||
<span class="menu-icon">📋</span>
|
||||
<span class="menu-text">{{ $t('maintain.checkProject.menu.checkType') }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="menu-item"
|
||||
@click="handleMenuClick('检查方法')"
|
||||
@click="handleMenuClick(MENU_CHECK_METHOD)"
|
||||
>
|
||||
<span class="menu-icon">🔬</span>
|
||||
<span class="menu-text">{{ $t('maintain.checkProject.menu.checkMethod') }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="menu-item"
|
||||
@click="handleMenuClick('检查部位')"
|
||||
@click="handleMenuClick(MENU_CHECK_PART)"
|
||||
>
|
||||
<span class="menu-icon">🎯</span>
|
||||
<span class="menu-text">{{ $t('maintain.checkProject.menu.checkPart') }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="menu-item"
|
||||
@click="handleMenuClick('套餐设置')"
|
||||
@click="handleMenuClick(MENU_PACKAGE_SETTINGS)"
|
||||
>
|
||||
<span class="menu-icon">📦</span>
|
||||
<span class="menu-text">{{ $t('maintain.checkProject.menu.packageSettings') }}</span>
|
||||
@@ -41,7 +41,7 @@
|
||||
<!-- 主内容区域 -->
|
||||
<div class="content">
|
||||
<!-- 套餐设置 -->
|
||||
<template v-if="activeMenu === '套餐设置'">
|
||||
<template v-if="activeMenu === MENU_PACKAGE_SETTINGS">
|
||||
<!-- 套餐设置界面(默认显示) -->
|
||||
<PackageSettings
|
||||
v-if="packageView === 'settings'"
|
||||
@@ -58,9 +58,9 @@
|
||||
/>
|
||||
</template>
|
||||
<!-- 检查类型的表格视图 -->
|
||||
<template v-if="activeMenu === '检查类型'">
|
||||
<template v-if="activeMenu === MENU_CHECK_TYPE">
|
||||
<div class="header">
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + menuKeyMap[activeMenu]) }) }}</h1>
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + activeMenu) }) }}</h1>
|
||||
<div class="header-actions">
|
||||
<button
|
||||
class="btn btn-add-new"
|
||||
@@ -282,9 +282,9 @@
|
||||
</template>
|
||||
|
||||
<!-- 检查方法的表格视图 -->
|
||||
<template v-else-if="activeMenu === '检查方法'">
|
||||
<template v-else-if="activeMenu === MENU_CHECK_METHOD">
|
||||
<div class="header">
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + menuKeyMap[activeMenu]) }) }}</h1>
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + activeMenu) }) }}</h1>
|
||||
</div>
|
||||
<div class="search-bar search-bar-method">
|
||||
<div class="search-filters">
|
||||
@@ -548,9 +548,9 @@
|
||||
</template>
|
||||
|
||||
<!-- 检查部位的表格视图 -->
|
||||
<template v-else-if="activeMenu === '检查部位'">
|
||||
<template v-else-if="activeMenu === MENU_CHECK_PART">
|
||||
<div class="header">
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + menuKeyMap[activeMenu]) }) }}</h1>
|
||||
<h1>{{ $t('maintain.checkProject.menuManage', { menu: $t('maintain.checkProject.menu.' + activeMenu) }) }}</h1>
|
||||
</div>
|
||||
<div class="search-bar search-bar-part">
|
||||
<div class="search-item">
|
||||
@@ -877,7 +877,7 @@
|
||||
</template>
|
||||
<!-- 分页区域 -->
|
||||
<div
|
||||
v-if="activeMenu === '检查类型'"
|
||||
v-if="activeMenu === MENU_CHECK_TYPE"
|
||||
class="pagination"
|
||||
>
|
||||
<button
|
||||
@@ -946,10 +946,13 @@ import PackageSettings from './components/PackageSettings.vue';
|
||||
import PackageManagement from './components/PackageManagement.vue';
|
||||
|
||||
// 菜单数据
|
||||
const menus = ['检查类型', '检查方法', '检查部位', '套餐设置'];
|
||||
const activeMenu = ref('检查类型');
|
||||
const MENU_CHECK_TYPE = 'checkType'
|
||||
const MENU_CHECK_METHOD = 'checkMethod'
|
||||
const MENU_CHECK_PART = 'checkPart'
|
||||
const MENU_PACKAGE_SETTINGS = 'packageSettings'
|
||||
|
||||
const menuKeyMap = {'检查类型': 'checkType', '检查方法': 'checkMethod', '检查部位': 'checkPart', '套餐设置': 'packageSettings'};
|
||||
const menus = [MENU_CHECK_TYPE, MENU_CHECK_METHOD, MENU_CHECK_PART, MENU_PACKAGE_SETTINGS];
|
||||
const activeMenu = ref(MENU_CHECK_TYPE);
|
||||
|
||||
// 套餐视图状态: management-套餐管理列表, settings-套餐设置
|
||||
const packageView = ref('settings')
|
||||
@@ -1109,13 +1112,13 @@ const checkTypePagination = reactive({
|
||||
// 当前显示的表格数据
|
||||
const tableData = computed(() => {
|
||||
switch(activeMenu.value) {
|
||||
case '检查类型':
|
||||
case MENU_CHECK_TYPE:
|
||||
return checkTypeData;
|
||||
case '检查方法':
|
||||
case MENU_CHECK_METHOD:
|
||||
return checkMethodData;
|
||||
case '检查部位':
|
||||
case MENU_CHECK_PART:
|
||||
return checkPartData;
|
||||
case '套餐设置':
|
||||
case MENU_PACKAGE_SETTINGS:
|
||||
return packageData;
|
||||
default:
|
||||
return [];
|
||||
@@ -1138,13 +1141,13 @@ const searchParamsPart = reactive({
|
||||
// 获取当前菜单对应的搜索参数
|
||||
const currentSearchParams = computed(() => {
|
||||
switch(activeMenu.value) {
|
||||
case '检查类型':
|
||||
case MENU_CHECK_TYPE:
|
||||
return searchParamsType;
|
||||
case '检查方法':
|
||||
case MENU_CHECK_METHOD:
|
||||
return searchParamsMethod;
|
||||
case '检查部位':
|
||||
case MENU_CHECK_PART:
|
||||
return searchParamsPart;
|
||||
case '套餐设置':
|
||||
case MENU_PACKAGE_SETTINGS:
|
||||
return searchParamsMethod; // 套餐设置可能共享检查方法的搜索参数
|
||||
default:
|
||||
return {};
|
||||
@@ -1333,15 +1336,21 @@ function handleMenuClick(menu) {
|
||||
|
||||
// 更新菜单激活状态
|
||||
const menuItems = document.querySelectorAll('.menu-item');
|
||||
const menuLabels = {
|
||||
[MENU_CHECK_TYPE]: t('maintain.checkProject.menu.checkType'),
|
||||
[MENU_CHECK_METHOD]: t('maintain.checkProject.menu.checkMethod'),
|
||||
[MENU_CHECK_PART]: t('maintain.checkProject.menu.checkPart'),
|
||||
[MENU_PACKAGE_SETTINGS]: t('maintain.checkProject.menu.packageSettings')
|
||||
};
|
||||
menuItems.forEach(item => {
|
||||
item.classList.remove('active');
|
||||
if (item.textContent.trim() === menu) {
|
||||
if (item.textContent.trim() === menuLabels[menu]) {
|
||||
item.classList.add('active');
|
||||
}
|
||||
});
|
||||
|
||||
// 如果点击套餐设置,默认显示套餐设置界面
|
||||
if (menu === '套餐设置') {
|
||||
if (menu === MENU_PACKAGE_SETTINGS) {
|
||||
packageView.value = 'settings'
|
||||
packageMode.value = 'add'
|
||||
currentPackageData.value = null
|
||||
@@ -1387,12 +1396,12 @@ async function handleSaveSuccess() {
|
||||
async function loadMenuData(menu) {
|
||||
try {
|
||||
switch(menu) {
|
||||
case '检查类型':
|
||||
case MENU_CHECK_TYPE:
|
||||
// 使用分页加载检查类型数据
|
||||
await loadCheckTypeDataWithPagination();
|
||||
break;
|
||||
|
||||
case '检查方法':
|
||||
case MENU_CHECK_METHOD:
|
||||
// 清空检查方法数据
|
||||
checkMethodData.splice(0, checkMethodData.length);
|
||||
|
||||
@@ -1445,7 +1454,7 @@ async function loadMenuData(menu) {
|
||||
}
|
||||
break;
|
||||
|
||||
case '检查部位':
|
||||
case MENU_CHECK_PART:
|
||||
// 清空检查部位数据
|
||||
checkPartData.splice(0, checkPartData.length);
|
||||
|
||||
@@ -1501,7 +1510,7 @@ async function loadMenuData(menu) {
|
||||
}
|
||||
break;
|
||||
|
||||
case '套餐设置':
|
||||
case MENU_PACKAGE_SETTINGS:
|
||||
const packageResponse = await listCheckPackage();
|
||||
if (packageResponse && packageResponse.data) {
|
||||
}
|
||||
@@ -1631,24 +1640,24 @@ async function handleConfirm(index) {
|
||||
return;
|
||||
}
|
||||
// 根据不同菜单验证检查类型字段
|
||||
if (activeMenu.value === '检查方法') {
|
||||
if (activeMenu.value === MENU_CHECK_METHOD) {
|
||||
if (!item.checkType || item.checkType.trim() === '') {
|
||||
ElMessage.error(t('maintain.checkProject.validation.checkTypeRequired'));
|
||||
return;
|
||||
}
|
||||
} else if (activeMenu.value === '检查类型') {
|
||||
} else if (activeMenu.value === MENU_CHECK_TYPE) {
|
||||
if (!item.type || item.type.trim() === '') {
|
||||
ElMessage.error(t('maintain.checkProject.validation.checkTypeRequired'));
|
||||
return;
|
||||
}
|
||||
} else if (activeMenu.value === '检查部位') {
|
||||
} else if (activeMenu.value === MENU_CHECK_PART) {
|
||||
if (!item.checkType || item.checkType.trim() === '') {
|
||||
ElMessage.error(t('maintain.checkProject.validation.checkTypeRequired'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 检查类型才需要验证执行科室
|
||||
if (activeMenu.value === '检查类型') {
|
||||
if (activeMenu.value === MENU_CHECK_TYPE) {
|
||||
if (!item.department || item.department.trim() === '') {
|
||||
ElMessage.error(t('maintain.checkProject.validation.departmentRequired'));
|
||||
return;
|
||||
@@ -1657,7 +1666,7 @@ async function handleConfirm(index) {
|
||||
|
||||
try {
|
||||
// 根据当前激活的菜单调用不同的API
|
||||
if (activeMenu.value === '检查方法') {
|
||||
if (activeMenu.value === MENU_CHECK_METHOD) {
|
||||
// 检查方法的保存逻辑
|
||||
if (item.id) {
|
||||
// 修改操作:只传递必要字段
|
||||
@@ -1702,7 +1711,7 @@ async function handleConfirm(index) {
|
||||
ElMessage.warning(t('maintain.checkProject.message.saveNoId'));
|
||||
}
|
||||
}
|
||||
} else if (activeMenu.value === '检查部位') {
|
||||
} else if (activeMenu.value === MENU_CHECK_PART) {
|
||||
// 检查部位的保存逻辑
|
||||
if (item.id) {
|
||||
// 修改操作:只传递必要字段
|
||||
@@ -1820,7 +1829,7 @@ async function handleDelete(index) {
|
||||
}
|
||||
|
||||
// 检查是否为父行
|
||||
const isParentRow = activeMenu.value === '检查类型' && !item.parentId;
|
||||
const isParentRow = activeMenu.value === MENU_CHECK_TYPE && !item.parentId;
|
||||
|
||||
// 如果是父行,查找所有子行
|
||||
let childRows = [];
|
||||
@@ -1848,9 +1857,9 @@ async function handleDelete(index) {
|
||||
}
|
||||
|
||||
// 只需要删除当前行,数据库会通过外键级联自动删除子行
|
||||
if (activeMenu.value === '检查方法') {
|
||||
if (activeMenu.value === MENU_CHECK_METHOD) {
|
||||
await delCheckMethod(validId);
|
||||
} else if (activeMenu.value === '检查部位') {
|
||||
} else if (activeMenu.value === MENU_CHECK_PART) {
|
||||
await delCheckPart(validId);
|
||||
} else {
|
||||
await delCheckType(validId);
|
||||
@@ -1882,7 +1891,7 @@ function handleAddNewRow() {
|
||||
let newRow;
|
||||
|
||||
// 根据当前激活的菜单生成不同的初始数据结构
|
||||
if (activeMenu.value === '检查类型') {
|
||||
if (activeMenu.value === MENU_CHECK_TYPE) {
|
||||
newRow = {
|
||||
row: String(maxRowNum + 1),
|
||||
code: '',
|
||||
@@ -1897,7 +1906,7 @@ function handleAddNewRow() {
|
||||
isNew: true, // 标记为新增行
|
||||
actions: true
|
||||
};
|
||||
} else if (activeMenu.value === '检查方法') {
|
||||
} else if (activeMenu.value === MENU_CHECK_METHOD) {
|
||||
newRow = {
|
||||
row: String(maxRowNum + 1),
|
||||
code: '',
|
||||
@@ -1911,7 +1920,7 @@ function handleAddNewRow() {
|
||||
isNew: true, // 标记为新增行
|
||||
actions: true
|
||||
};
|
||||
} else if (activeMenu.value === '检查部位') {
|
||||
} else if (activeMenu.value === MENU_CHECK_PART) {
|
||||
newRow = {
|
||||
row: String(maxRowNum + 1),
|
||||
code: '',
|
||||
@@ -2004,7 +2013,7 @@ async function handleSearch() {
|
||||
// ElMessage.info(`正在搜索${activeMenu.value}数据...`);
|
||||
|
||||
switch(activeMenu.value) {
|
||||
case '检查方法':
|
||||
case MENU_CHECK_METHOD:
|
||||
// 清空检查方法数据
|
||||
checkMethodData.splice(0, checkMethodData.length);
|
||||
|
||||
@@ -2055,7 +2064,7 @@ async function handleSearch() {
|
||||
}
|
||||
break;
|
||||
|
||||
case '检查部位':
|
||||
case MENU_CHECK_PART:
|
||||
// 清空检查部位数据
|
||||
checkPartData.splice(0, checkPartData.length);
|
||||
|
||||
@@ -2124,19 +2133,19 @@ async function handleSearch() {
|
||||
function handleReset() {
|
||||
// 根据当前活动菜单重置对应的搜索条件
|
||||
switch(activeMenu.value) {
|
||||
case '检查类型':
|
||||
case MENU_CHECK_TYPE:
|
||||
for (const key in searchParamsType) {
|
||||
searchParamsType[key] = '';
|
||||
}
|
||||
break;
|
||||
|
||||
case '检查方法':
|
||||
case MENU_CHECK_METHOD:
|
||||
searchParamsMethod.checkType = '';
|
||||
searchParamsMethod.name = '';
|
||||
searchParamsMethod.packageName = '';
|
||||
break;
|
||||
|
||||
case '检查部位':
|
||||
case MENU_CHECK_PART:
|
||||
searchParamsPart.checkType = '';
|
||||
searchParamsPart.name = '';
|
||||
searchParamsPart.packageName = '';
|
||||
@@ -2153,7 +2162,7 @@ function handleReset() {
|
||||
function handleExport() {
|
||||
console.log('导出表格:', activeMenu.value);
|
||||
|
||||
if (activeMenu.value === '检查方法') {
|
||||
if (activeMenu.value === MENU_CHECK_METHOD) {
|
||||
// 使用封装好的API方法
|
||||
import('@/api/system/checkType').then(apiModule => {
|
||||
apiModule.exportCheckMethod(searchParamsMethod)
|
||||
@@ -2163,7 +2172,7 @@ function handleExport() {
|
||||
const url = window.URL.createObjectURL(data);
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.setAttribute('download', `检查方法数据_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
||||
link.setAttribute('download', `${t('maintain.checkProject.export.methodData')}_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
@@ -2183,7 +2192,7 @@ function handleExport() {
|
||||
ElMessage.error(t('maintain.checkProject.message.exportMethodFailed'));
|
||||
});
|
||||
});
|
||||
} else if (activeMenu.value === '检查部位') {
|
||||
} else if (activeMenu.value === MENU_CHECK_PART) {
|
||||
// 使用封装好的API方法
|
||||
import('@/api/system/checkType').then(apiModule => {
|
||||
apiModule.exportCheckPart(searchParamsPart)
|
||||
@@ -2193,7 +2202,7 @@ function handleExport() {
|
||||
const url = window.URL.createObjectURL(data);
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.setAttribute('download', `检查部位数据_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
||||
link.setAttribute('download', `${t('maintain.checkProject.export.partData')}_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
|
||||
@@ -625,22 +625,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
@@ -952,7 +952,7 @@ const handleAddRow = async () => {
|
||||
|
||||
// 如果有数据,检查是否有空行
|
||||
if (isEmptyRow()) {
|
||||
proxy.$message.error('请填写完整信息');
|
||||
proxy.$message.error(t('common.pleaseFillCompleteInfo'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -986,7 +986,7 @@ const handleAlertOrder = async () => {
|
||||
localTableData.value = [];
|
||||
// 验证表单
|
||||
if (!localForm.value.supplierId || !localForm.value.locationId) {
|
||||
proxy.$message.warning('请选择供应商和仓库');
|
||||
proxy.$message.warning(t('common.pleaseSelectSupplierAndWarehouse'));
|
||||
return;
|
||||
}
|
||||
// 获取药品列表
|
||||
@@ -1117,7 +1117,7 @@ const getMedicineListData = async () => {
|
||||
});
|
||||
// 如果 res.data?.records 为空,则返回空数组
|
||||
if (res.data.records.length === 0) {
|
||||
proxy.$message.warning('本仓库和供应商没有找到药品信息');
|
||||
proxy.$message.warning(t('common.noMedicineFoundInWarehouse'));
|
||||
return [];
|
||||
}
|
||||
// 更新分页数据
|
||||
@@ -1148,9 +1148,9 @@ const handleSave = async () => {
|
||||
const currentFormData = JSON.parse(JSON.stringify(localForm.value));
|
||||
|
||||
// 是否确认保存数据
|
||||
const isConfirm = await proxy.$modal.confirm('确认保存数据吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
const isConfirm = await proxy.$modal.confirm(t('common.confirmMsg711'), t('common.confirmTitle711'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
if (!isConfirm) {
|
||||
@@ -1166,7 +1166,7 @@ const handleSave = async () => {
|
||||
if (localIsAddOrEditOrder.value.isAddOrder) {
|
||||
addOrEditOrder(editData).then((res) => {
|
||||
if (res.code === 200) {
|
||||
proxy.$message.success('新增成功');
|
||||
proxy.$message.success(t('common.msg5'));
|
||||
// 调用父组件的 getList 方法
|
||||
emit('getList');
|
||||
// 清空表单
|
||||
@@ -1180,7 +1180,7 @@ const handleSave = async () => {
|
||||
} else if (localIsAddOrEditOrder.value.isEditOrder) {
|
||||
addOrEditOrder(editData).then((res) => {
|
||||
if (res.code === 200) {
|
||||
proxy.$message.success('保存成功');
|
||||
proxy.$message.success(t('common.saveSuccess'));
|
||||
// 调用父组件的 getList 方法
|
||||
emit('getList');
|
||||
// 清空表单
|
||||
@@ -1188,7 +1188,7 @@ const handleSave = async () => {
|
||||
// 清空 父组件 tableFormRef 表单数据
|
||||
emit('clearForm');
|
||||
} else {
|
||||
proxy.$message.error('保存失败');
|
||||
proxy.$message.error(t('common.saveFail'));
|
||||
}
|
||||
// 关闭加载
|
||||
loading.value = false;
|
||||
@@ -1273,14 +1273,14 @@ const resetAllData = () => {
|
||||
// 删除行
|
||||
const handleDeleteRow = () => {
|
||||
if (selectedRows.value.length === 0) {
|
||||
proxy.$message.warning('请选择要删除的行');
|
||||
proxy.$message.warning(t('common.msg6'));
|
||||
return;
|
||||
}
|
||||
|
||||
proxy
|
||||
.$confirm('确认删除选中的行吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
.$confirm(t('common.confirmMsg841'), t('common.confirmTitle841'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
@@ -1335,7 +1335,7 @@ const handleDeleteRow = () => {
|
||||
});
|
||||
}
|
||||
|
||||
proxy.$message.success('删除成功');
|
||||
proxy.$message.success(t('common.deleteSuccess'));
|
||||
})
|
||||
.catch(() => {
|
||||
// 用户取消删除
|
||||
|
||||
@@ -339,7 +339,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -372,7 +372,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -669,26 +669,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg422'), t('common.confirmTitle422'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -724,7 +724,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -732,26 +732,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg485'), t('common.confirmTitle485'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -791,7 +791,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ const getOrderList = async (locationId) => {
|
||||
// 订货单列表总条数
|
||||
localTableDataTotal.value = res.data.total;
|
||||
} else {
|
||||
proxy.$message.error('获取订货单列表失败');
|
||||
proxy.$message.error(t('common.getOrderListFail'));
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取订货单列表失败:', error);
|
||||
|
||||
@@ -814,19 +814,19 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入现存数量', trigger: 'blur' }],
|
||||
lotNumber: [{ required: true, message: '请输入产品批号', trigger: 'blur' }],
|
||||
purposeLocationId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterCurrentQty'), trigger: 'blur' }],
|
||||
lotNumber: [{ required: true, message: t('common.pleaseEnterLotNumber'), trigger: 'blur' }],
|
||||
purposeLocationId: [{ required: true, message: t('common.pleaseSelect'), trigger: 'blur' }],
|
||||
startTime: [
|
||||
{ required: true, message: '请输入生产日期', trigger: 'blur' },
|
||||
{ required: true, message: t('common.pleaseEnterProductionDate'), trigger: 'blur' },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value) {
|
||||
@@ -835,7 +835,7 @@ const rules = {
|
||||
const endTime = localTableData.value[rowIndex]?.endTime;
|
||||
|
||||
if (endTime && value > endTime) {
|
||||
callback(new Error('生产日期不能大于失效日期'));
|
||||
callback(new Error(t('common.errorMsg176')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
@@ -847,7 +847,7 @@ const rules = {
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{ required: true, message: '请输入失效日期', trigger: 'blur' },
|
||||
{ required: true, message: t('common.pleaseEnterExpiryDate'), trigger: 'blur' },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value) {
|
||||
@@ -856,7 +856,7 @@ const rules = {
|
||||
const startTime = localTableData.value[rowIndex]?.startTime;
|
||||
|
||||
if (startTime && value < startTime) {
|
||||
callback(new Error('失效日期不能小于生产日期'));
|
||||
callback(new Error(t('common.errorMsg197')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
@@ -867,21 +867,21 @@ const rules = {
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
],
|
||||
packagingConditionEnum: [{ required: true, message: '请输入包装情况', trigger: 'blur' }],
|
||||
acceptanceResultEnum: [{ required: true, message: '请选择验收结果', trigger: 'blur' }],
|
||||
batchInventory: [{ required: true, message: '请输入批次库存', trigger: 'blur' }],
|
||||
traceNo: [{ required: true, message: '请输入药品追溯码', trigger: 'blur' }],
|
||||
traceNoUnitCode: [{ required: true, message: '请输入药品追溯码单位', trigger: 'blur' }],
|
||||
phone: [{ required: true, message: '请输入供应商联系人', trigger: 'blur' }],
|
||||
practitionerId: [{ required: true, message: '请输入开单人', trigger: 'blur' }],
|
||||
invoiceNo: [{ required: true, message: '请输入发票号', trigger: 'blur' }],
|
||||
packagingConditionEnum: [{ required: true, message: t('common.pleaseEnterPackaging'), trigger: 'blur' }],
|
||||
acceptanceResultEnum: [{ required: true, message: t('common.pleaseSelectAcceptanceResult'), trigger: 'blur' }],
|
||||
batchInventory: [{ required: true, message: t('common.pleaseEnterBatchInventory'), trigger: 'blur' }],
|
||||
traceNo: [{ required: true, message: t('common.pleaseEnterTraceCode'), trigger: 'blur' }],
|
||||
traceNoUnitCode: [{ required: true, message: t('common.pleaseEnterTraceCodeUnit'), trigger: 'blur' }],
|
||||
phone: [{ required: true, message: t('common.pleaseEnterSupplierContact'), trigger: 'blur' }],
|
||||
practitionerId: [{ required: true, message: t('common.pleaseEnterBiller'), trigger: 'blur' }],
|
||||
invoiceNo: [{ required: true, message: t('common.msg12'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 药品名称
|
||||
const ypName = ref('');
|
||||
|
||||
@@ -344,7 +344,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -383,7 +383,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -448,7 +448,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -754,26 +754,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg508'), t('common.confirmTitle508'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
// 清空右侧表格数据
|
||||
clearForm();
|
||||
// 重新获取列表 库房ID
|
||||
@@ -806,7 +806,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -814,26 +814,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg568'), t('common.confirmTitle568'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
// 重新获取列表
|
||||
@@ -866,7 +866,7 @@ const handleAudit = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,22 +641,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
|
||||
@@ -340,7 +340,7 @@ const buttonShow = ref({
|
||||
isAlertShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -373,7 +373,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -670,26 +670,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg423'), t('common.confirmTitle423'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -725,7 +725,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -733,26 +733,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg486'), t('common.confirmTitle486'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -792,7 +792,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,22 +638,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
|
||||
@@ -340,7 +340,7 @@ const buttonShow = ref({
|
||||
isAlertShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -373,7 +373,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -670,26 +670,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg423'), t('common.confirmTitle423'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -725,7 +725,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -733,26 +733,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg486'), t('common.confirmTitle486'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -792,7 +792,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,22 +638,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
|
||||
@@ -339,7 +339,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -372,7 +372,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -669,26 +669,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg422'), t('common.confirmTitle422'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -724,7 +724,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -732,26 +732,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg485'), t('common.confirmTitle485'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -791,7 +791,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ const getOrderList = async (locationId) => {
|
||||
// 订货单列表总条数
|
||||
localTableDataTotal.value = res.data.total;
|
||||
} else {
|
||||
proxy.$message.error('获取订货单列表失败');
|
||||
proxy.$message.error(t('common.getOrderListFail'));
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取订货单列表失败:', error);
|
||||
|
||||
@@ -888,34 +888,34 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
totalQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
lotNumber: [{ required: true, message: '请输入产品批号', trigger: 'blur' }],
|
||||
purposeLocationId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
reasonCode: [{ required: true, message: '请选择盈亏类型', trigger: 'blur' }],
|
||||
packagingConditionEnum: [{ required: true, message: '请输入包装情况', trigger: 'blur' }],
|
||||
acceptanceResultEnum: [{ required: true, message: '请选择验收结果', trigger: 'blur' }],
|
||||
batchInventory: [{ required: true, message: '请输入批次库存', trigger: 'blur' }],
|
||||
traceNo: [{ required: true, message: '请输入药品追溯码', trigger: 'blur' }],
|
||||
traceNoUnitCode: [{ required: true, message: '请输入药品追溯码单位', trigger: 'blur' }],
|
||||
phone: [{ required: true, message: '请输入供应商联系人', trigger: 'blur' }],
|
||||
practitionerId: [{ required: true, message: '请输入开单人', trigger: 'blur' }],
|
||||
invoiceNo: [{ required: true, message: '请输入发票号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
totalQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
lotNumber: [{ required: true, message: t('common.pleaseEnterLotNumber'), trigger: 'blur' }],
|
||||
purposeLocationId: [{ required: true, message: t('common.pleaseSelect'), trigger: 'blur' }],
|
||||
reasonCode: [{ required: true, message: t('common.pleaseSelectProfitLossType'), trigger: 'blur' }],
|
||||
packagingConditionEnum: [{ required: true, message: t('common.pleaseEnterPackaging'), trigger: 'blur' }],
|
||||
acceptanceResultEnum: [{ required: true, message: t('common.pleaseSelectAcceptanceResult'), trigger: 'blur' }],
|
||||
batchInventory: [{ required: true, message: t('common.pleaseEnterBatchInventory'), trigger: 'blur' }],
|
||||
traceNo: [{ required: true, message: t('common.pleaseEnterTraceCode'), trigger: 'blur' }],
|
||||
traceNoUnitCode: [{ required: true, message: t('common.pleaseEnterTraceCodeUnit'), trigger: 'blur' }],
|
||||
phone: [{ required: true, message: t('common.pleaseEnterSupplierContact'), trigger: 'blur' }],
|
||||
practitionerId: [{ required: true, message: t('common.pleaseEnterBiller'), trigger: 'blur' }],
|
||||
invoiceNo: [{ required: true, message: t('common.msg12'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 药品名称
|
||||
const ypName = ref('');
|
||||
|
||||
@@ -344,7 +344,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -383,7 +383,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -448,7 +448,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -744,26 +744,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg498'), t('common.confirmTitle498'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
// 清空右侧表格数据
|
||||
clearForm();
|
||||
// 重新获取列表 库房ID
|
||||
@@ -796,7 +796,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -804,26 +804,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg558'), t('common.confirmTitle558'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
// 编辑
|
||||
handleEdit(selectedOrder);
|
||||
// 重新获取列表
|
||||
@@ -856,7 +856,7 @@ const handleAudit = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -737,22 +737,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
|
||||
@@ -339,7 +339,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -372,7 +372,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -669,26 +669,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg422'), t('common.confirmTitle422'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -724,7 +724,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -732,26 +732,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg485'), t('common.confirmTitle485'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -791,7 +791,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -737,22 +737,22 @@ const localIsAddOrEditOrder = ref({
|
||||
// 验证规则
|
||||
const rules = {
|
||||
// busNo: [{ required: true, message: '请输入单据号', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: '请输入采购员', trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: '请输入单据类型', trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: '请输入开单日期', trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: '请输入编号', trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: '请输入品名', trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: '请输入规格', trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: '请输入单位', trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: '请输入数量', trigger: 'blur' }],
|
||||
supplierId: [{ required: true, message: t('common.pleaseEnterSupplier'), trigger: 'blur' }],
|
||||
applicantId: [{ required: true, message: t('common.pleaseEnterBuyer'), trigger: 'blur' }],
|
||||
categoryEnum: [{ required: true, message: t('common.pleaseEnterDocType'), trigger: 'blur' }],
|
||||
applyTime: [{ required: true, message: t('common.pleaseEnterBillingDate'), trigger: 'blur' }],
|
||||
itemBusNo: [{ required: true, message: t('common.pleaseEnterCode'), trigger: ['blur', 'change'] }],
|
||||
itemName: [{ required: true, message: t('common.pleaseEnterItemName'), trigger: 'blur' }],
|
||||
totalVolume: [{ required: true, message: t('common.pleaseEnterSpec'), trigger: 'blur' }],
|
||||
unitCode: [{ required: true, message: t('common.pleaseEnterUnit'), trigger: 'blur' }],
|
||||
itemQuantity: [{ required: true, message: t('common.pleaseEnterQuantity'), trigger: 'blur' }],
|
||||
// price: [{ required: true, message: '请输入进货价', trigger: 'blur' }],
|
||||
// totalPrice: [{ required: true, message: '请输入进价金额', trigger: 'blur' }],
|
||||
// retailPrice: [{ required: true, message: '请输入销售价', trigger: 'blur' }],
|
||||
// totalRetailPrice: [{ required: true, message: '请输入销售金额', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: '请输入厂家/产地', trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: '请输入规格库存', trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: '请输入批注文号', trigger: 'blur' }],
|
||||
manufacturerText: [{ required: true, message: t('common.pleaseEnterManufacturer'), trigger: 'blur' }],
|
||||
specificationInventory: [{ required: true, message: t('common.pleaseEnterSpecInventory'), trigger: 'blur' }],
|
||||
approvalNumber: [{ required: true, message: t('common.pleaseEnterApprovalNumber'), trigger: 'blur' }],
|
||||
};
|
||||
// 监听 props.isAddOrEditOrder 的变化
|
||||
watch(
|
||||
|
||||
@@ -339,7 +339,7 @@ const buttonShow = ref({
|
||||
isEditShow: false,
|
||||
});
|
||||
const rules = ref({
|
||||
locationId: [{ required: true, message: '请选择库房', trigger: 'blur' }],
|
||||
locationId: [{ required: true, message: t('common.pleaseSelectWarehouse'), trigger: 'blur' }],
|
||||
});
|
||||
|
||||
// 初始化 获取下拉列表
|
||||
@@ -372,7 +372,7 @@ const handleAdd = async () => {
|
||||
resetFormAndTableData();
|
||||
// 校验库房ID
|
||||
if (!tableForm.value.locationId) {
|
||||
proxy.$modal.msgWarning('新增单据前,请选择库房');
|
||||
proxy.$modal.msgWarning(t('common.selectWarehouseBeforeAdd'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ const handleEdit = async (order) => {
|
||||
resetFormAndTableData();
|
||||
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要编辑的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToEdit'));
|
||||
return;
|
||||
}
|
||||
const res = await getOrderDetail({
|
||||
@@ -669,26 +669,26 @@ const clearForm = () => {
|
||||
// 删除按钮
|
||||
const handleDelete = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要删除的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否可以删除(已审批的单据不能删除)
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('已审批的单据不能删除');
|
||||
proxy.$modal.msgError(t('common.approvedDocCannotDelete'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认删除该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg422'), t('common.confirmTitle422'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 删除单据
|
||||
await deleteOrder(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess(t('common.deleteSuccess'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -724,7 +724,7 @@ const handleDelete = async () => {
|
||||
});
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
proxy.$modal.msgError(t('common.deleteFail'));
|
||||
console.error('删除失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -732,26 +732,26 @@ const handleDelete = async () => {
|
||||
// 审核按钮
|
||||
const handleAudit = async () => {
|
||||
if (!selectedOrder.value) {
|
||||
proxy.$modal.msgError('请选择要审核的单据');
|
||||
proxy.$modal.msgError(t('common.pleaseSelectDocToAudit'));
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否是已审批状态
|
||||
if (selectedOrder.value.statusEnum_enumText === '同意' || selectedOrder.value.statusEnum === 3) {
|
||||
proxy.$modal.msgError('该单据已审批,不能重复审批');
|
||||
proxy.$modal.msgError(t('common.docAlreadyApproved'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await proxy.$modal.confirm('确认同意该采购单吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
await proxy.$modal.confirm(t('common.confirmMsg485'), t('common.confirmTitle485'), {
|
||||
confirmButtonText: t('common.ok'),
|
||||
cancelButtonText: t('common.cancel'),
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
// 同意审批
|
||||
await agreeApproval(selectedOrder.value.supplyBusNo);
|
||||
proxy.$modal.msgSuccess('同意审批成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg10'));
|
||||
|
||||
// 编辑
|
||||
handleEdit(selectedOrder.value);
|
||||
@@ -791,7 +791,7 @@ const handleAudit = async () => {
|
||||
};
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
proxy.$modal.msgError('同意审批失败');
|
||||
proxy.$modal.msgError(t('common.msg11'));
|
||||
console.error('同意审批失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -651,7 +651,7 @@ function submit(value) {
|
||||
itemTraceNo(list).then((res) => {
|
||||
if (res.code === 200) {
|
||||
if (!res.data) {
|
||||
proxy.$modal.msgWarning("未在库存中匹配到追溯码,请在发药列表中单独扫描");
|
||||
proxy.$modal.msgWarning(t('common.traceCodeNotMatched'));
|
||||
openTraceNoDialog.value = false;
|
||||
proxy.$refs["traceNoRef0"].focus();
|
||||
return;
|
||||
@@ -661,7 +661,7 @@ function submit(value) {
|
||||
res.data[item.medicineId] &&
|
||||
res.data[item.medicineId].split(",") > item.quantity
|
||||
) {
|
||||
proxy.$modal.msgWarning("操作失败");
|
||||
proxy.$modal.msgWarning(t('common.opFail'));
|
||||
return;
|
||||
}
|
||||
medicineInfoList.value[index].traceNo = res.data[item.medicineId];
|
||||
@@ -711,7 +711,7 @@ function getList() {
|
||||
);
|
||||
}
|
||||
listInit().then((response) => {
|
||||
departmentList.value = [{value: null, label: '全部'}, ...response.data.departmentOptions];
|
||||
departmentList.value = [{value: null, label: t('common.all')}, ...response.data.departmentOptions];
|
||||
backReason.value = response.data.notPerformedReasonOptions;
|
||||
dispenseStatusOptions.value = response.data.dispenseStatusOptions;
|
||||
preparerDoctorOptions.value = response.data.preparerDoctorOptions;
|
||||
@@ -722,13 +722,13 @@ function getList() {
|
||||
async function printPrescription() {
|
||||
// 空值检查 - 防止 tableRef 为空时报错
|
||||
if (!tableRef.value) {
|
||||
proxy.$modal.msgWarning("表格组件未初始化,请刷新页面重试");
|
||||
proxy.$modal.msgWarning(t('common.tableNotInitRetry'));
|
||||
return;
|
||||
}
|
||||
|
||||
const selectedRows = tableRef.value.getSelectionRows();
|
||||
if (!selectedRows || selectedRows.length === 0) {
|
||||
proxy.$modal.msgWarning("未选择要打印的项目,请重新选择,打印失败");
|
||||
proxy.$modal.msgWarning(t('common.noPrintItemSelected'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -739,7 +739,7 @@ async function printPrescription() {
|
||||
const res = await advicePrint({requestIds: requestIds, isPrescription: "1"});
|
||||
|
||||
if (!res || !res.data || !res.data.adviceItemList) {
|
||||
proxy.$modal.msgWarning("获取打印数据失败,请稍后重试");
|
||||
proxy.$modal.msgWarning(t('common.getPrintDataFailRetry'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -811,7 +811,7 @@ async function printPrescription() {
|
||||
|
||||
result.push({
|
||||
...res.data,
|
||||
medTotalAmount: '¥' + total.toFixed(2) + '元',
|
||||
medTotalAmount: '¥' + total.toFixed(2) + t('common.yuan'),
|
||||
prescriptionList: item,
|
||||
// 医生签名图片 - 确保使用处方对应的医生签名
|
||||
doctorSignature: doctorSignature,
|
||||
@@ -845,7 +845,7 @@ async function printPrescription() {
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('处方打印失败:', error);
|
||||
proxy.$modal.msgError('处方打印失败: ' + (error.message || '未知错误'));
|
||||
proxy.$modal.msgError(t('common.msg13') + (error.message || t('common.unknownError')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -880,14 +880,14 @@ function formatLotNumberLabel(row, item) {
|
||||
if (row.unitCode == item.maxUnitCode) {
|
||||
return (
|
||||
item.inventoryLotNumber +
|
||||
' 剩余:' +
|
||||
t('common.strConcat340_ XX:') +
|
||||
formatInventory(
|
||||
item.inventoryQuantity,
|
||||
item.partPercent,
|
||||
item.maxUnitCode_dictText,
|
||||
item.inventoryUnitCode_dictText
|
||||
) +
|
||||
' 有效期至:' +
|
||||
t('common.strConcat347_ XXXX:') +
|
||||
proxy.formatDateStr(item.expirationDate, 'YYYY-MM-DD')
|
||||
);
|
||||
} else {
|
||||
@@ -897,7 +897,7 @@ function formatLotNumberLabel(row, item) {
|
||||
item.inventoryQuantity +
|
||||
' ' +
|
||||
item.inventoryUnitCode_dictText +
|
||||
' 有效期至:' +
|
||||
t('common.strConcat357_ XXXX:') +
|
||||
proxy.formatDateStr(item.expirationDate, 'YYYY-MM-DD')
|
||||
);
|
||||
}
|
||||
@@ -1014,9 +1014,9 @@ function handleCellDbClick(row, column, cellValue, event) {
|
||||
|
||||
function formatPrice(row, column, cellValue) {
|
||||
if (cellValue === null || cellValue === undefined) {
|
||||
return "0.00 元"; // 如果值为空,返回0.00
|
||||
return t('common.returnMsg474'); // 如果值为空,返回0.00
|
||||
}
|
||||
return cellValue.toFixed(2) + " 元"; // 保留两位小数
|
||||
return cellValue.toFixed(2) + t('common.strConcatAfter476_ X'); // 保留两位小数
|
||||
}
|
||||
|
||||
function tagType(statusEnum) {
|
||||
@@ -1102,7 +1102,7 @@ function getMedicineList(encounterId) {
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
proxy.$modal.msgError('获取发药明细失败');
|
||||
proxy.$modal.msgError(t('common.getDispensingDetailsFail'));
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
@@ -1126,7 +1126,7 @@ function getMedicineList(encounterId) {
|
||||
processMedicineListData();
|
||||
}
|
||||
}).catch(() => {
|
||||
proxy.$modal.msgError('获取发药明细失败');
|
||||
proxy.$modal.msgError(t('common.getDispensingDetailsFail'));
|
||||
}).finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
@@ -1146,7 +1146,7 @@ function getMedicineList(encounterId) {
|
||||
processMedicineListData();
|
||||
}
|
||||
}).catch(() => {
|
||||
proxy.$modal.msgError('获取耗材明细失败');
|
||||
proxy.$modal.msgError(t('common.getConsumableDetailsFail'));
|
||||
}).finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
@@ -1192,7 +1192,7 @@ function processMedicineListData() {
|
||||
}
|
||||
});
|
||||
|
||||
diagnoses.value = medicineInfoList.value.map((item) => item.诊断 || "无").join(", ");
|
||||
diagnoses.value = medicineInfoList.value.map((item) => item.诊断 || t('common.none')).join(", ");
|
||||
}
|
||||
|
||||
function submitMedicine(saveList) {
|
||||
@@ -1213,7 +1213,7 @@ function submitMedicine(saveList) {
|
||||
promises.push(
|
||||
deviceDispense(deviceList).then((res) => {
|
||||
if (res.code != 200) {
|
||||
throw new Error("耗材发药失败");
|
||||
throw new Error(t('common.consumableDispensingFail'));
|
||||
}
|
||||
return res;
|
||||
})
|
||||
@@ -1232,7 +1232,7 @@ function submitMedicine(saveList) {
|
||||
promises.push(
|
||||
prepareMedicion(preparationList).then((res) => {
|
||||
if (res.code != 200) {
|
||||
throw new Error('药品发药失败');
|
||||
throw new Error(t('common.medicineDispensingFail'));
|
||||
}
|
||||
return res;
|
||||
})
|
||||
@@ -1242,7 +1242,7 @@ function submitMedicine(saveList) {
|
||||
promises.push(
|
||||
updateMedicion(preparedList).then((res) => {
|
||||
if (res.code != 200) {
|
||||
throw new Error("药品发药失败");
|
||||
throw new Error(t('common.medicineDispensingFail'));
|
||||
}
|
||||
return res;
|
||||
})
|
||||
@@ -1258,12 +1258,12 @@ function submitMedicine(saveList) {
|
||||
}
|
||||
})
|
||||
.then((response) => {
|
||||
proxy.$modal.msgSuccess("发药成功");
|
||||
proxy.$modal.msgSuccess(t('common.msg14'));
|
||||
// 重新获取数据
|
||||
getMedicineList(currentRow.value.encounterId);
|
||||
})
|
||||
.catch((error) => {
|
||||
proxy.$modal.msgError('发药失败: ' + error.message);
|
||||
proxy.$modal.msgError(t('common.msg15') + error.message);
|
||||
});
|
||||
} else if (projectTypeCode.value == 2) {
|
||||
let preparationList = saveList.filter((item) => {
|
||||
@@ -1274,14 +1274,14 @@ function submitMedicine(saveList) {
|
||||
}); // 已配药列表
|
||||
if (preparedList.length > 0) {
|
||||
updateMedicion(preparedList).then((response) => {
|
||||
proxy.$modal.msgSuccess('发药成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg14'));
|
||||
getMedicineList(currentRow.value.encounterId);
|
||||
});
|
||||
} else {
|
||||
prepareMedicion(preparationList).then((res) => {
|
||||
if (res.code == 200) {
|
||||
updateMedicion(preparationList).then((response) => {
|
||||
proxy.$modal.msgSuccess('发药成功');
|
||||
proxy.$modal.msgSuccess(t('common.msg14'));
|
||||
getMedicineList(currentRow.value.encounterId);
|
||||
});
|
||||
}
|
||||
@@ -1290,7 +1290,7 @@ function submitMedicine(saveList) {
|
||||
} else {
|
||||
deviceDispense(saveList).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess("发药成功");
|
||||
proxy.$modal.msgSuccess(t('common.msg14'));
|
||||
getMedicineList(currentRow.value.encounterId);
|
||||
}
|
||||
});
|
||||
@@ -1305,7 +1305,7 @@ function validInventory(row, item) {
|
||||
quantity = quantity * item.partPercent;
|
||||
}
|
||||
if (quantity > item.inventoryQuantity) {
|
||||
proxy.$modal.msgError('当前批次库存不足');
|
||||
proxy.$modal.msgError(t('common.msg16'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1321,10 +1321,10 @@ function handleQuantity(row) {
|
||||
});
|
||||
if (totalQuantity > row.requestQuantity) {
|
||||
couldSave.value = false;
|
||||
proxy.$modal.msgError('发药数量不能大于总数量');
|
||||
proxy.$modal.msgError(t('common.msg17'));
|
||||
} else if (totalQuantity < row.requestQuantity) {
|
||||
couldSave.value = false;
|
||||
proxy.$modal.msgError('发药数量不能小于总数量');
|
||||
proxy.$modal.msgError(t('common.msg18'));
|
||||
} else {
|
||||
couldSave.value = true;
|
||||
}
|
||||
@@ -1413,7 +1413,7 @@ function handleBatch(row) {
|
||||
};
|
||||
});
|
||||
} else {
|
||||
proxy.$modal.msgWarning('未选择要发药的项目,请重新选择,发药失败');
|
||||
proxy.$modal.msgWarning(t('common.msg19'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1441,7 +1441,7 @@ async function handleConfirm() {
|
||||
return;
|
||||
}
|
||||
|
||||
const loading = ElLoading.service({text: "作废中..."});
|
||||
const loading = ElLoading.service({text: t('common.loadingText901')});
|
||||
|
||||
try {
|
||||
const params = buildParams();
|
||||
@@ -1457,10 +1457,10 @@ async function handleConfirm() {
|
||||
// 分离验证逻辑
|
||||
function validate() {
|
||||
if (!notPerformedReasonEnum.value) {
|
||||
return {success: false, message: "请选择作废原因"};
|
||||
return {success: false, message: t('common.msg21')};
|
||||
}
|
||||
if (!selectedRow.value) {
|
||||
return {success: false, message: "未选择数据"};
|
||||
return {success: false, message: t('common.msg22')};
|
||||
}
|
||||
return {success: true};
|
||||
}
|
||||
|
||||
@@ -361,9 +361,9 @@ const data = reactive({
|
||||
configType: undefined
|
||||
},
|
||||
rules: {
|
||||
configName: [{ required: true, message: "参数名称不能为空", trigger: "blur" }],
|
||||
configKey: [{ required: true, message: "参数键名不能为空", trigger: "blur" }],
|
||||
configValue: [{ required: true, message: "参数键值不能为空", trigger: "blur" }]
|
||||
configName: [{ required: true, message: t('system.config.name_required_8'), trigger: "blur" }],
|
||||
configKey: [{ required: true, message: t('system.config.required_7'), trigger: "blur" }],
|
||||
configValue: [{ required: true, message: t('system.config.required_6'), trigger: "blur" }]
|
||||
}
|
||||
});
|
||||
|
||||
@@ -416,7 +416,7 @@ function handleSelectionChange(selection) {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加参数";
|
||||
title.value = t('system.config.addConfig');
|
||||
}
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
@@ -425,7 +425,7 @@ function handleUpdate(row) {
|
||||
getConfig(configId).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改参数";
|
||||
title.value = t('system.config.editConfig');
|
||||
});
|
||||
}
|
||||
/** 提交按钮 */
|
||||
@@ -434,13 +434,13 @@ function submitForm() {
|
||||
if (valid) {
|
||||
if (form.value.configId != undefined) {
|
||||
updateConfig(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
proxy.$modal.msgSuccess(t('system.config.editSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addConfig(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
proxy.$modal.msgSuccess(t('system.config.addSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -451,11 +451,11 @@ function submitForm() {
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const configIds = row.configId || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function () {
|
||||
proxy.$modal.confirm(t('system.config.confirmDelete', { id: configIds })).then(function () {
|
||||
return delConfig(configIds);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
proxy.$modal.msgSuccess(t('system.config.deleteSuccess'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
/** 导出按钮操作 */
|
||||
@@ -467,7 +467,7 @@ function handleExport() {
|
||||
/** 刷新缓存按钮操作 */
|
||||
function handleRefreshCache() {
|
||||
refreshCache().then(() => {
|
||||
proxy.$modal.msgSuccess("刷新缓存成功");
|
||||
proxy.$modal.msgSuccess(t('system.config.refreshCacheSuccess'));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -314,11 +314,11 @@ const data = reactive({
|
||||
status: undefined
|
||||
},
|
||||
rules: {
|
||||
parentId: [{ required: true, message: "上级部门不能为空", trigger: "blur" }],
|
||||
deptName: [{ required: true, message: "部门名称不能为空", trigger: "blur" }],
|
||||
orderNum: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
|
||||
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
|
||||
phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
||||
parentId: [{ required: true, message: t('system.dept.required_7'), trigger: "blur" }],
|
||||
deptName: [{ required: true, message: t('system.dept.name_required_6'), trigger: "blur" }],
|
||||
orderNum: [{ required: true, message: t('system.dept.required_5'), trigger: "blur" }],
|
||||
email: [{ type: "email", message: t('system.dept.emailInvalid'), trigger: ["blur", "change"] }],
|
||||
phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: t('system.dept.phoneInvalid'), trigger: "blur" }]
|
||||
},
|
||||
});
|
||||
|
||||
@@ -370,7 +370,7 @@ function handleAdd(row) {
|
||||
form.value.parentId = row.deptId;
|
||||
}
|
||||
open.value = true;
|
||||
title.value = "添加部门";
|
||||
title.value = t('system.dept.addDept');
|
||||
}
|
||||
/** 展开/折叠操作 */
|
||||
function toggleExpandAll() {
|
||||
@@ -389,7 +389,7 @@ function handleUpdate(row) {
|
||||
getDept(row.deptId).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改部门";
|
||||
title.value = t('system.dept.editDept');
|
||||
});
|
||||
}
|
||||
/** 提交按钮 */
|
||||
@@ -398,13 +398,13 @@ function submitForm() {
|
||||
if (valid) {
|
||||
if (form.value.deptId != undefined) {
|
||||
updateDept(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
proxy.$modal.msgSuccess(t('system.dept.editSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addDept(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
proxy.$modal.msgSuccess(t('system.dept.addSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -414,11 +414,11 @@ function submitForm() {
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
proxy.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {
|
||||
proxy.$modal.confirm(t('system.dept.confirmDelete', { name: row.deptName })).then(function() {
|
||||
return delDept(row.deptId);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
proxy.$modal.msgSuccess(t('system.dept.deleteSuccess'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
|
||||
@@ -436,8 +436,8 @@ const data = reactive({
|
||||
status: undefined
|
||||
},
|
||||
rules: {
|
||||
noticeTitle: [{ required: true, message: "公告标题不能为空", trigger: "blur" }],
|
||||
noticeType: [{ required: true, message: "公告类型不能为空", trigger: "change" }]
|
||||
noticeTitle: [{ required: true, message: t('system.notice.required_10'), trigger: "blur" }],
|
||||
noticeType: [{ required: true, message: t('system.notice.type_required_9'), trigger: "change" }]
|
||||
},
|
||||
});
|
||||
|
||||
@@ -490,7 +490,7 @@ function handleSelectionChange(selection) {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加公告";
|
||||
title.value = t('system.notice.addNotice');
|
||||
}
|
||||
/**修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
@@ -499,7 +499,7 @@ function handleUpdate(row) {
|
||||
getNotice(noticeId).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改公告";
|
||||
title.value = t('system.notice.editNotice');
|
||||
});
|
||||
}
|
||||
/** 提交按钮 */
|
||||
@@ -508,7 +508,7 @@ function submitForm() {
|
||||
if (valid) {
|
||||
if (form.value.noticeId != undefined) {
|
||||
updateNotice(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
proxy.$modal.msgSuccess(t('system.notice.editSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -516,7 +516,7 @@ function submitForm() {
|
||||
// 新增时默认为未发布状态
|
||||
form.value.publishStatus = "0";
|
||||
addNotice(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
proxy.$modal.msgSuccess(t('system.notice.addSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -527,29 +527,29 @@ function submitForm() {
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const noticeIds = row.noticeId || ids.value
|
||||
proxy.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() {
|
||||
proxy.$modal.confirm(t('system.notice.confirmDelete', { id: noticeIds })).then(function() {
|
||||
return delNotice(noticeIds);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
proxy.$modal.msgSuccess(t('system.notice.deleteSuccess'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
/** 发布按钮操作 */
|
||||
function handlePublish(row) {
|
||||
proxy.$modal.confirm('确认发布该公告吗?发布后将对所有用户可见。').then(function() {
|
||||
proxy.$modal.confirm(t('system.notice.confirmPublish')).then(function() {
|
||||
return publishNotice(row.noticeId);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("发布成功");
|
||||
proxy.$modal.msgSuccess(t('system.notice.publishSuccess'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
/** 取消发布按钮操作 */
|
||||
function handleUnpublish(row) {
|
||||
proxy.$modal.confirm('确认取消发布该公告吗?取消后将不再对用户可见。').then(function() {
|
||||
proxy.$modal.confirm(t('system.notice.confirmCancelPublish')).then(function() {
|
||||
return unpublishNotice(row.noticeId);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("已取消发布");
|
||||
proxy.$modal.msgSuccess(t('system.notice.cancelPublish'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
|
||||
@@ -327,9 +327,9 @@ const data = reactive({
|
||||
status: undefined
|
||||
},
|
||||
rules: {
|
||||
postName: [{ required: true, message: "岗位名称不能为空", trigger: "blur" }],
|
||||
postCode: [{ required: true, message: "岗位编码不能为空", trigger: "blur" }],
|
||||
postSort: [{ required: true, message: "岗位顺序不能为空", trigger: "blur" }],
|
||||
postName: [{ required: true, message: t('system.post.name_required_7'), trigger: "blur" }],
|
||||
postCode: [{ required: true, message: t('system.post.required_6'), trigger: "blur" }],
|
||||
postSort: [{ required: true, message: t('system.post.required_5'), trigger: "blur" }],
|
||||
}
|
||||
});
|
||||
|
||||
@@ -381,7 +381,7 @@ function handleSelectionChange(selection) {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加岗位";
|
||||
title.value = t('system.post.addPost');
|
||||
}
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
@@ -390,7 +390,7 @@ function handleUpdate(row) {
|
||||
getPost(postId).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改岗位";
|
||||
title.value = t('system.post.editPost');
|
||||
});
|
||||
}
|
||||
/** 提交按钮 */
|
||||
@@ -399,13 +399,13 @@ function submitForm() {
|
||||
if (valid) {
|
||||
if (form.value.postId != undefined) {
|
||||
updatePost(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
proxy.$modal.msgSuccess(t('system.post.editSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addPost(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
proxy.$modal.msgSuccess(t('system.post.addSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -416,11 +416,11 @@ function submitForm() {
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const postIds = row.postId || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function() {
|
||||
proxy.$modal.confirm(t('system.post.confirmDelete', { id: postIds })).then(function() {
|
||||
return delPost(postIds);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
proxy.$modal.msgSuccess(t('system.post.deleteSuccess'));
|
||||
}).catch(() => {});
|
||||
}
|
||||
/** 导出按钮操作 */
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-tooltip
|
||||
content="修改"
|
||||
:content="$t('common.edit')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -216,7 +216,7 @@
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
content="删除"
|
||||
:content="$t('common.delete')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -227,7 +227,7 @@
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
content="所属用户"
|
||||
:content="$t('system.tenant.selectUser')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -238,7 +238,7 @@
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
content="合同管理"
|
||||
:content="$t('nav.contractManagement')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -249,7 +249,7 @@
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
content="基本配置"
|
||||
:content="$t('system.tenant.title.basicConfig')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -453,15 +453,15 @@ const data = reactive({
|
||||
},
|
||||
rules: {
|
||||
tenantCode: [
|
||||
{ required: true, message: "租户编码不能为空", trigger: "blur" },
|
||||
{ min: 1, max: 50, message: '长度需在1到50个字符之间', trigger: 'blur' }
|
||||
{ required: true, message: t('system.tenant.required_27'), trigger: "blur" },
|
||||
{ min: 1, max: 50, message: t('system.tenant.150_24'), trigger: 'blur' }
|
||||
],
|
||||
tenantName: [
|
||||
{ required: true, message: "租户名称不能为空", trigger: "blur" },
|
||||
{ min: 1, max: 50, message: '长度需在1到50个字符之间', trigger: 'blur' }
|
||||
{ required: true, message: t('system.tenant.name_required_25'), trigger: "blur" },
|
||||
{ min: 1, max: 50, message: t('system.tenant.150_26'), trigger: 'blur' }
|
||||
],
|
||||
remark: [
|
||||
{ max: 300, message: '备注不能超过300个字符', trigger: 'blur' }
|
||||
{ max: 300, message: t('system.tenant.remark300_23'), trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
});
|
||||
@@ -491,35 +491,35 @@ function resetQuery() {
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const tenantIds = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除租户ID为"' + tenantIds + '"的数据项?').then(function () {
|
||||
proxy.$modal.confirm(t('system.tenant.confirmDelete', { id: tenantIds })).then(function () {
|
||||
return delTenant(tenantIds);
|
||||
}).then((response) => {
|
||||
getList();
|
||||
if (response.code != 0) {
|
||||
proxy.$modal.msgSuccess(response.msg);
|
||||
} else {
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
proxy.$modal.msgSuccess(t('system.tenant.deleteSuccess'));
|
||||
}
|
||||
}).catch(() => { });
|
||||
}
|
||||
/** 启用按钮操作 */
|
||||
function handleEnable() {
|
||||
const tenantIds = ids.value;
|
||||
proxy.$modal.confirm('是否确认启用租户ID为"' + tenantIds + '"的数据项?').then(function () {
|
||||
proxy.$modal.confirm(t('system.tenant.confirmEnable', { id: tenantIds })).then(function () {
|
||||
return enableTenant(ids.value);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("启用成功");
|
||||
proxy.$modal.msgSuccess(t('system.tenant.enableSuccess'));
|
||||
}).catch(() => { });
|
||||
}
|
||||
/** 停用按钮操作 */
|
||||
function handleDisable() {
|
||||
const tenantIds = ids.value;
|
||||
proxy.$modal.confirm('是否确认停用租户ID为"' + tenantIds + '"的数据项?').then(function () {
|
||||
proxy.$modal.confirm(t('system.tenant.confirmDisable', { id: tenantIds })).then(function () {
|
||||
return disableTenant(tenantIds);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("停用成功");
|
||||
proxy.$modal.msgSuccess(t('system.tenant.disableSuccess'));
|
||||
}).catch(() => { });
|
||||
}
|
||||
/** 多选框选中数据 */
|
||||
@@ -530,15 +530,15 @@ function handleSelectionChange(selection) {
|
||||
}
|
||||
/** 租户状态修改 */
|
||||
function handleStatusChange(row) {
|
||||
let text = row.status === "0" ? "启用" : "停用";
|
||||
proxy.$modal.confirm('确认要' + text + '"' + row.id + '"租户吗?').then(function () {
|
||||
let text = row.status === "0" ? t('system.tenant.enableSuccess') : t('system.tenant.disableSuccess');
|
||||
proxy.$modal.confirm(t('system.tenant.confirmStatusChange', { action: row.status === "0" ? t('system.tenant.enableSuccess') : t('system.tenant.disableSuccess'), id: row.id })).then(function () {
|
||||
if (row.status === "0") {
|
||||
return enableTenant(Array.of(row.id));
|
||||
} else {
|
||||
return disableTenant(Array.of(row.id));
|
||||
}
|
||||
}).then(() => {
|
||||
proxy.$modal.msgSuccess(text + "成功");
|
||||
proxy.$modal.msgSuccess(text);
|
||||
}).catch(function () {
|
||||
row.status = row.status === "0" ? "1" : "0";
|
||||
});
|
||||
@@ -565,7 +565,7 @@ function reset() {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加租户";
|
||||
title.value = t('system.tenant.addTenant');
|
||||
}
|
||||
/** 修改租户 */
|
||||
function handleUpdate(row) {
|
||||
@@ -574,7 +574,7 @@ function handleUpdate(row) {
|
||||
getTenantDetail(tenantId).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改租户";
|
||||
title.value = t('system.tenant.editTenant');
|
||||
});
|
||||
}
|
||||
/** 提交按钮 */
|
||||
@@ -583,13 +583,13 @@ function submitForm() {
|
||||
if (valid) {
|
||||
if (form.value.id != undefined) {
|
||||
editTenant(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
proxy.$modal.msgSuccess(t('message.editSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addTenant(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
proxy.$modal.msgSuccess(t('message.addSuccess'));
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -610,7 +610,7 @@ async function handleSetOption(row) {
|
||||
// 设置当前租户信息
|
||||
currentTenantId.value = row.id;
|
||||
currentTenantName.value = row.tenantName;
|
||||
optionTitle.value = `基本配置`;
|
||||
optionTitle.value = t('system.tenant.title.basicConfig');
|
||||
// 获取动态表单配置
|
||||
const formListRes = await getTenantOptionFormList();
|
||||
console.log('动态表单配置:', formListRes);
|
||||
@@ -650,7 +650,7 @@ async function handleSetOption(row) {
|
||||
optionOpen.value = true;
|
||||
} catch (error) {
|
||||
console.error('获取配置项失败:', error);
|
||||
proxy.$modal.msgError("获取配置项失败");
|
||||
proxy.$modal.msgError(t('system.tenant.getConfigFail'));
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -671,12 +671,12 @@ async function submitOptionForm() {
|
||||
// 如果修改的是当前登录用户的租户配置,需要刷新用户信息
|
||||
if (userStore.tenantId === optionForm.tenantId) {
|
||||
await userStore.getInfo();
|
||||
proxy.$modal.msgSuccess("配置保存成功,用户信息已刷新");
|
||||
proxy.$modal.msgSuccess(t('system.tenant.configSaveSuccessRefresh'));
|
||||
} else {
|
||||
proxy.$modal.msgSuccess("配置保存成功");
|
||||
proxy.$modal.msgSuccess(t('system.tenant.configSaveSuccess'));
|
||||
}
|
||||
} else {
|
||||
proxy.$modal.msgError(res.msg || "配置保存失败");
|
||||
proxy.$modal.msgError(res.msg || t('system.tenant.configSaveFail'));
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('表单验证失败:', error);
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-tooltip
|
||||
content="修改"
|
||||
:content="$t('common.edit')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
@@ -72,7 +72,7 @@
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
content="删除"
|
||||
:content="$t('common.delete')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-tooltip
|
||||
content="解绑"
|
||||
:content="$t('system.tenant.unbindUser')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
|
||||
@@ -234,8 +234,8 @@ const loading = ref(false)
|
||||
|
||||
const settings = reactive({
|
||||
playCount: 2,
|
||||
prefix: '请',
|
||||
suffix: '到诊室就诊',
|
||||
prefix: t('triage.callnumbervoice.defaultPrefix'),
|
||||
suffix: t('triage.callnumbervoice.defaultSuffix'),
|
||||
voiceSpeed: 'normal',
|
||||
volume: 80,
|
||||
playInterval: 10,
|
||||
@@ -278,10 +278,10 @@ const saveSettings = async () => {
|
||||
try {
|
||||
// 验证必填数据
|
||||
if (!settings.prefix || settings.prefix.trim() === '') {
|
||||
throw new Error('请填写叫号前缀')
|
||||
throw new Error(t('triage.callnumbervoice.errFillPrefix'))
|
||||
}
|
||||
if (!settings.suffix || settings.suffix.trim() === '') {
|
||||
throw new Error('请填写叫号后缀')
|
||||
throw new Error(t('triage.callnumbervoice.errFillSuffix'))
|
||||
}
|
||||
|
||||
const configData = {
|
||||
@@ -329,23 +329,23 @@ const saveSettings = async () => {
|
||||
})
|
||||
|
||||
console.log('✅ 原始设置已更新:', originalSettings)
|
||||
ElMessage.success('设置保存成功!')
|
||||
ElMessage.success(t('triage.callnumbervoice.msgSaveSuccess'))
|
||||
} catch (error) {
|
||||
console.error('❌ 保存失败:', error)
|
||||
ElMessage.error('保存失败:' + (error.message || '请稍后重试'))
|
||||
ElMessage.error(t('triage.callnumbervoice.msgSaveFailed') + (error.message || t('triage.callnumbervoice.msgRetryLater')))
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const cancelSettings = () => {
|
||||
if (confirm('确定要取消所有更改吗?')) {
|
||||
if (confirm(t('triage.callnumbervoice.msgConfirmCancel'))) {
|
||||
// 恢复到从服务器加载的原始数据
|
||||
if (originalSettings.id) {
|
||||
Object.assign(settings, {
|
||||
playCount: originalSettings.playCount || 2,
|
||||
prefix: originalSettings.callPrefix || '请',
|
||||
suffix: originalSettings.callSuffix || '到诊室就诊',
|
||||
prefix: originalSettings.callPrefix || t('triage.callnumbervoice.defaultPrefix'),
|
||||
suffix: originalSettings.callSuffix || t('triage.callnumbervoice.defaultSuffix'),
|
||||
voiceSpeed: originalSettings.speed || 'normal',
|
||||
volume: originalSettings.volume || 80,
|
||||
playInterval: originalSettings.intervalSeconds || 10,
|
||||
@@ -355,15 +355,15 @@ const cancelSettings = () => {
|
||||
// 如果没有原始数据,恢复到默认值
|
||||
Object.assign(settings, {
|
||||
playCount: 2,
|
||||
prefix: '请',
|
||||
suffix: '到诊室就诊',
|
||||
prefix: t('triage.callnumbervoice.defaultPrefix'),
|
||||
suffix: t('triage.callnumbervoice.defaultSuffix'),
|
||||
voiceSpeed: 'normal',
|
||||
volume: 80,
|
||||
playInterval: 10,
|
||||
repeatPlay: true
|
||||
})
|
||||
}
|
||||
ElMessage.info('已恢复到原始设置')
|
||||
ElMessage.info(t('triage.callnumbervoice.msgRestored'))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,8 +396,8 @@ const loadSettings = async () => {
|
||||
settings.playInterval = intervalFinal
|
||||
|
||||
// 其他字段处理
|
||||
settings.prefix = data.callPrefix || '请'
|
||||
settings.suffix = data.callSuffix || '到诊室就诊'
|
||||
settings.prefix = data.callPrefix || t('triage.callnumbervoice.defaultPrefix')
|
||||
settings.suffix = data.callSuffix || t('triage.callnumbervoice.defaultSuffix')
|
||||
settings.voiceSpeed = mapSpeedToFrontend(data.speed) || 'normal'
|
||||
settings.repeatPlay = data.cycleBroadcast !== undefined ? Boolean(data.cycleBroadcast) : true
|
||||
|
||||
@@ -413,20 +413,20 @@ const loadSettings = async () => {
|
||||
cycleBroadcast: data.cycleBroadcast
|
||||
})
|
||||
|
||||
ElMessage.success('配置加载成功')
|
||||
ElMessage.success(t('triage.callnumbervoice.msgLoadSuccess'))
|
||||
} else {
|
||||
// 如果没有有效配置数据,使用默认设置
|
||||
if (data && Object.keys(data).length > 0) {
|
||||
ElMessage.info('未找到现有配置,使用默认设置')
|
||||
ElMessage.info(t('triage.callnumbervoice.msgNoConfig'))
|
||||
} else {
|
||||
ElMessage.warning('未找到配置数据,将使用默认设置')
|
||||
ElMessage.warning(t('triage.callnumbervoice.msgNoConfigWarning'))
|
||||
}
|
||||
|
||||
// 使用默认配置
|
||||
Object.assign(settings, {
|
||||
playCount: "2",
|
||||
prefix: '请',
|
||||
suffix: '到诊室就诊',
|
||||
prefix: t('triage.callnumbervoice.defaultPrefix'),
|
||||
suffix: t('triage.callnumbervoice.defaultSuffix'),
|
||||
voiceSpeed: 'normal',
|
||||
volume: 80,
|
||||
playInterval: "10",
|
||||
@@ -434,13 +434,13 @@ const loadSettings = async () => {
|
||||
})
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('获取设置失败:' + (error.message || '请稍后重试'))
|
||||
ElMessage.error(t('triage.callnumbervoice.msgLoadFailed') + (error.message || t('triage.callnumbervoice.msgRetryLater')))
|
||||
|
||||
// 错误时使用默认配置
|
||||
Object.assign(settings, {
|
||||
playCount: "2",
|
||||
prefix: '请',
|
||||
suffix: '到诊室就诊',
|
||||
prefix: t('triage.callnumbervoice.defaultPrefix'),
|
||||
suffix: t('triage.callnumbervoice.defaultSuffix'),
|
||||
voiceSpeed: 'normal',
|
||||
volume: 80,
|
||||
playInterval: "10",
|
||||
|
||||
Reference in New Issue
Block a user