diff --git a/.gitignore b/.gitignore
index 128a9f5f..8d47b60d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@ pnpm-lock.yaml
.env.cklocal
.vscode/*
.vscode/settings.json
+launch.json
diff --git a/src/layout/components/Menu/src/Menu.vue b/src/layout/components/Menu/src/Menu.vue
index 94a1da4a..4922afb4 100644
--- a/src/layout/components/Menu/src/Menu.vue
+++ b/src/layout/components/Menu/src/Menu.vue
@@ -202,6 +202,35 @@ $prefix-cls: #{$namespace}-menu;
.#{$elNamespace}-menu-item {
padding-right: 0;
}
+
+ &:not(.#{$elNamespace}-menu--collapse) {
+ .#{$elNamespace}-sub-menu__title,
+ .#{$elNamespace}-menu-item {
+ display: flex;
+ align-items: flex-start;
+ min-height: var(--el-menu-item-height);
+ height: auto;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ white-space: normal;
+ }
+
+ .#{$elNamespace}-sub-menu__icon-arrow {
+ margin-top: 8px;
+ }
+
+ .#{$prefix-cls}__title {
+ display: block;
+ flex: 1;
+ min-width: 0;
+ overflow: visible;
+ text-overflow: initial;
+ white-space: normal;
+ overflow-wrap: anywhere;
+ word-break: break-word;
+ line-height: 1.4;
+ }
+ }
}
}
@@ -228,6 +257,10 @@ $prefix-cls: #{$namespace}-menu;
}
.#{$prefix-cls}__title {
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
/* stylelint-disable-next-line */
max-height: calc(var(--top-tool-height) - 2px) !important;
/* stylelint-disable-next-line */
diff --git a/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
index 8941d9d7..6f7caff7 100644
--- a/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
+++ b/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
@@ -10,14 +10,10 @@ export const useRenderMenuTitle = () => {
return icon ? (
<>
-
+
>
) : (
-
+
)
}
diff --git a/src/locales/en.ts b/src/locales/en.ts
index a1eebaa9..e856ed1c 100644
--- a/src/locales/en.ts
+++ b/src/locales/en.ts
@@ -59,7 +59,7 @@ export default {
copy: 'Copy',
copySuccess: 'Copy Success',
copyError: 'Copy Error',
- code:'Auto-generate on Save'
+ code: 'Auto-generate on Save'
},
ReportDashboard: {
DashboardList: {
@@ -544,42 +544,44 @@ export default {
large: 'Large',
small: 'Small'
},
- home:{
+ home: {
welcome: 'Welcome to use the Besure Digital Intelligent Central Control Platform',
- message: 'The Besure Digital Intelligent Central Control Platform takes production operation as the core, uniformly integrating key business modules such as production planning, data collection, warehousing, equipment, energy, molds, quality, formulas and report analysis, to achieve full-process digital management from planning to execution, from equipment to products, and from data to decision-making.',
- productTitle:'Overall production overview',
+ message:
+ 'The Besure Digital Intelligent Central Control Platform takes production operation as the core, uniformly integrating key business modules such as production planning, data collection, warehousing, equipment, energy, molds, quality, formulas and report analysis, to achieve full-process digital management from planning to execution, from equipment to products, and from data to decision-making.',
+ productTitle: 'Overall production overview',
placeholderCreateTimeStart: 'Start Date',
placeholderCreateTimeEnd: 'End Date',
- productionSchedule:'Real-time production progress',
- productionPlan:'Production plan',
- productionName:'Production name',
- planNumber:'Plan quantity',
- productionLine:'Production line',
- planStartTime:'Plan start time',
- planEndTime:'Plan end time',
- completedQuantity:'Completed quantity',
- qualifiedQuantity:'Qualified quantity',
- unqualifiedQuantity:'Unqualified quantity',
+ productionSchedule: 'Real-time production progress',
+ productionPlan: 'Production plan',
+ productionName: 'Production name',
+ planNumber: 'Plan quantity',
+ productionLine: 'Production line',
+ planStartTime: 'Plan start time',
+ planEndTime: 'Plan end time',
+ completedQuantity: 'Completed quantity',
+ qualifiedQuantity: 'Qualified quantity',
+ unqualifiedQuantity: 'Unqualified quantity',
yieldRate: 'YIELD',
- actualEndTime:'Actual end time',
+ actualEndTime: 'Actual end time',
gtasks: 'Gtask',
- missionNumber:'Mission number',
- taskType:'Task type',
- target:'Target',
- creationTime:'Creation time',
- equipment:'Equipment',
- mould:'Mould',
- equipmentTile:'Overall condition of the collection equipment',
- equipmentCount:'Total equipment count',
- operation:'Operation',
- standbyMode:'Standby mode',
- malfunction:'During the malfunction',
- alerting:'Alerting...',
- useRatio:'use ratio',
- failureRate:'failure rate',
- equipmentTitle:'Statistics of equipment maintenance quantities',
- equipmentClass:'Equipment classification statistics',
- equipmentMessage:'Classify and count by mold type, and select the top 10 items with the largest number of molds.',
+ missionNumber: 'Mission number',
+ taskType: 'Task type',
+ target: 'Target',
+ creationTime: 'Creation time',
+ equipment: 'Equipment',
+ mould: 'Mould',
+ equipmentTile: 'Overall condition of the collection equipment',
+ equipmentCount: 'Total equipment count',
+ operation: 'Operation',
+ standbyMode: 'Standby mode',
+ malfunction: 'During the malfunction',
+ alerting: 'Alerting...',
+ useRatio: 'use ratio',
+ failureRate: 'failure rate',
+ equipmentTitle: 'Statistics of equipment maintenance quantities',
+ equipmentClass: 'Equipment classification statistics',
+ equipmentMessage:
+ 'Classify and count by mold type, and select the top 10 items with the largest number of molds.'
},
login: {
welcome: 'Welcome to the system',
@@ -999,7 +1001,8 @@ export default {
emailInvalid: 'Please input a valid email address',
mobileInvalid: 'Please input a valid mobile number',
importFileRequired: 'Please upload file',
- importSuccessTip: 'Upload success: {createCount}; Update success: {updateCount}; Update failed: {failureCount};',
+ importSuccessTip:
+ 'Upload success: {createCount}; Update success: {updateCount}; Update failed: {failureCount};',
importFailed: 'Upload failed, please upload again!',
importFileLimit: 'Only one file can be uploaded!',
resetPasswordTitle: 'Please input new password for "{username}"',
@@ -1193,7 +1196,7 @@ export default {
},
// Equipment Ledger
EquipmentLedger: {
- images:'Images',
+ images: 'Images',
deviceCode: 'Code',
qrcode: 'QR Code/Barcode',
deviceName: 'Name',
@@ -1277,7 +1280,7 @@ export default {
qrcodeEmpty: 'No QR code',
validatorDeviceCodeRequired: 'Code can not be empty',
gjTitle: 'Select key components',
- bjTitle: 'Select spare parts',
+ bjTitle: 'Select spare parts'
},
// Critical Component
EquipmentKeyItems: {
@@ -1299,7 +1302,7 @@ export default {
qrcodeEmpty: 'No QR code',
validatorCodeRequired: 'Code can not be empty',
validatorNameRequired: 'Name can not be empty',
- images:'images'
+ images: 'images'
},
// Maintenance Project (Project Maintenance)
DvSubject: {
@@ -1327,7 +1330,7 @@ export default {
placeholderInspectionMethod: 'Please select inspection method',
placeholderValueType: 'Please select value type',
placeholderUpperVal: 'Please input upper value',
- placeholderLowerVal: 'Please input lower value',
+ placeholderLowerVal: 'Please input lower value'
},
// Plan Maintenance
PlanMaintenance: {
@@ -1818,8 +1821,8 @@ export default {
addButtonText: 'Add',
exportButtonText: 'Export',
expandButtonText: 'Expand/Collapse',
- tableCodeColumn: 'Category Code',
- tableNameColumn: 'Category Name',
+ tableCodeColumn: 'Code',
+ tableNameColumn: 'Name',
tableSortColumn: 'Sort',
tableStatusColumn: 'Status',
tableCreateTimeColumn: 'Create Time',
@@ -2144,25 +2147,26 @@ export default {
validatorNameRequired: 'Unit name can not be empty',
validatorStatusRequired: 'Unit status can not be empty',
validatorPrimaryFlagRequired: 'Primary unit flag can not be empty',
- import:'Import unit',
+ import: 'Import unit',
importDragText: 'Drag file here, or',
importClickText: 'click to upload',
importUpdateSupport: 'Update existing user data if present',
importFormatLimit: 'Only xls, xlsx format files are allowed.',
importDownloadTemplate: 'Download template',
importFileRequired: 'Please upload file',
- importSuccessTip: 'Upload success: {createCount}; Update success: {updateCount}; Update failed: {failureCount};',
+ importSuccessTip:
+ 'Upload success: {createCount}; Update success: {updateCount}; Update failed: {failureCount};',
importFailed: 'Upload failed, please upload again!',
- importFileLimit: 'Only one file can be uploaded!',
+ importFileLimit: 'Only one file can be uploaded!'
},
CalHoliday: {
setWorkingDays: 'set working days',
setHoliday: 'set holiday',
- lastMonth:'last month',
- today:'today',
- nextMonth:'next month',
- work:'work',
- rest:'rest',
+ lastMonth: 'last month',
+ today: 'today',
+ nextMonth: 'next month',
+ work: 'work',
+ rest: 'rest',
searchDateStartPlaceholder: '开始日期',
searchDateEndPlaceholder: '结束日期',
searchTypeLabel: '类型',
@@ -2216,7 +2220,6 @@ export default {
validatorClassificationRequired: 'File classification can not be empty',
validatorTypeRequired: 'File type can not be empty',
validatorStatusRequired: 'File status can not be empty'
-
}
},
@@ -2762,8 +2765,8 @@ export default {
validatorTypeRequired: 'Type can not be empty',
validatorSampleMethodRequired: 'Sampling method can not be empty',
validatorValRequired: 'Value can not be empty',
- atIntervals:'at intervals',
- extraction:'extraction',
+ atIntervals: 'at intervals',
+ extraction: 'extraction'
},
ZjTask: {
moduleName: 'Inspection Task',
@@ -3025,7 +3028,8 @@ export default {
readDialogSubmitButtonText: 'Read',
readDialogCancelButton: 'Cancel',
readDeviceConfirmMessage: 'Do you want to read device data?',
- readDialogOverwriteTip: 'Reading again will overwrite existing device data and manual parameters',
+ readDialogOverwriteTip:
+ 'Reading again will overwrite existing device data and manual parameters',
detailTabDeviceDataLabel: 'Device Data',
detailTabManualLabel: 'Manual Parameters',
detailDevicePointNameColumn: 'Point Name',
@@ -3038,20 +3042,20 @@ export default {
manualTableReferColumn: 'Reference Value',
manualTableRemarkColumn: 'Remark',
manualTableInputTimeColumn: 'Input Time',
- manualTableEnteringAction:'Re-enroll',
+ manualTableEnteringAction: 'Re-enroll',
manualFormTitleLabel: 'Re-recorded collected values',
- nanualFormNameLabel:'Name',
- nanualFormNamePlaceholder:'Please enter name',
- nanualFormDataTypeLabel:'Data Type',
- nanualFormDataTypePlaceholder:'Please select data type',
- nanualFormDataUnitLabel:'Unit',
- nanualFormDataUnitPlaceholder:'Please select unit',
- nanualFormReferLabel:'Reference Value',
- nanualFormReferPlaceholder:'Please enter reference value',
- nanualFormRemarkLabel:'Remark',
- nanualFormRemarkPlaceholder:'Please enter remark',
- nanualFormInputTimeLabel:'Input Time',
- nanualFormInputTimePlaceholder:'Please select input time',
+ nanualFormNameLabel: 'Name',
+ nanualFormNamePlaceholder: 'Please enter name',
+ nanualFormDataTypeLabel: 'Data Type',
+ nanualFormDataTypePlaceholder: 'Please select data type',
+ nanualFormDataUnitLabel: 'Unit',
+ nanualFormDataUnitPlaceholder: 'Please select unit',
+ nanualFormReferLabel: 'Reference Value',
+ nanualFormReferPlaceholder: 'Please enter reference value',
+ nanualFormRemarkLabel: 'Remark',
+ nanualFormRemarkPlaceholder: 'Please enter remark',
+ nanualFormInputTimeLabel: 'Input Time',
+ nanualFormInputTimePlaceholder: 'Please select input time'
}
},
EnergyManagement: {
@@ -3098,7 +3102,7 @@ export default {
validatorUnitRequired: 'Unit can not be empty',
validatorIsEnableRequired: 'Enabled can not be empty',
- exportFilename: 'EnergyType.xls',
+ exportFilename: 'EnergyType.xls'
},
EnergyDeviceCheck: {
moduleName: 'Energy Report',
@@ -3514,7 +3518,8 @@ export default {
capacityTypeDataCollection: 'Data Collection Capacity',
inventoryTaskType: 'Inventory Task',
taskNoDetailWarning: 'Task order {code} has no detail data, cannot be selected',
- partialTaskNoDetailWarning: 'Some task orders have no detail data, selection has been automatically cancelled',
+ partialTaskNoDetailWarning:
+ 'Some task orders have no detail data, selection has been automatically cancelled',
taskItemNeedPrefix: 'Task Order-',
detailNoProductWarning: 'Current detail has no related product, cannot set device',
deviceRelationSaved: 'Device relation saved',
@@ -3701,7 +3706,7 @@ export default {
FeedingRecord: {
moduleName: 'Production Feeding',
- planCode:'production plan',
+ planCode: 'production plan',
searchCodeLabel: 'Record No.',
searchCodePlaceholder: 'Please enter record No.',
searchPipelineLabel: 'Pulp Line',
@@ -3892,7 +3897,7 @@ export default {
exportFilename: 'FormingRecord.xls'
},
-
+
WorkReportRecord: {
moduleName: 'Work Report Record',
@@ -4136,8 +4141,8 @@ export default {
messageSelectDeviceRequired: 'Please select a device',
messageDeviceInfoMissingForRules: 'Device information is missing, unable to load point rules',
- gridView:'gridView',
- sudoku:'sudoku',
+ gridView: 'gridView',
+ sudoku: 'sudoku'
},
RunReport: {
moduleName: 'Device Operation Report',
@@ -4232,7 +4237,7 @@ export default {
tableActionHistoryAnalyseLabel: 'History Data Analysis',
dialogTitlePrefix: 'History: ',
dialogCollectionTimeLabel: 'Collection Time',
- dialogPointFilterLabel:'Point Filter',
+ dialogPointFilterLabel: 'Point Filter',
dialogPointFilterPlaceholder: 'Please enter point name',
dialogCollectionTimeStartPlaceholder: 'Start Time',
dialogCollectionTimeEndPlaceholder: 'End Time',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index 2bee9216..1193d35b 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -547,40 +547,41 @@ export default {
},
home: {
welcome: '欢迎您使用必硕数字化智能中控平台',
- message: '必硕数字化智能中控平台以生产运营为核心,统一整合生产计划、数据采集、仓储、设备、能源、模具、质量、配方及报表分析等关键业务模块,实现从计划到执行、从设备到制品、从数据到决策的全流程数字化管理。',
+ message:
+ '必硕数字化智能中控平台以生产运营为核心,统一整合生产计划、数据采集、仓储、设备、能源、模具、质量、配方及报表分析等关键业务模块,实现从计划到执行、从设备到制品、从数据到决策的全流程数字化管理。',
productTitle: '整体生产概况',
placeholderCreateTimeStart: '开始日期',
placeholderCreateTimeEnd: '结束日期',
- productionSchedule:'实时生产进度',
- productionPlan:'生产计划',
- productionName:'生产名称',
- planNumber:'计划数量',
- productionLine:'生产线',
- planStartTime:'计划开始时间',
- planEndTime:'计划结束时间',
- completedQuantity:'完工数量',
- qualifiedQuantity:'合格数量',
- unqualifiedQuantity:'不合格数量',
- yieldRate:'合格率',
- actualEndTime:'实际结束时间',
- gtasks:'待办任务',
- missionNumber:'任务编号',
- taskType:'任务类型',
- target:'任务目标',
- creationTime:'创建时间',
- equipment:'设备',
- mould:'模具',
- equipmentTile:'采集设备整体情况',
- equipmentCount:'设备总数',
- operation:'运行',
- standbyMode:'待机',
- malfunction:'故障中',
- alerting:'报警中',
- useRatio:'利用率',
- failureRate:'故障率',
- equipmentTitle:'设备维修数量统计',
- equipmentClass:'设备分类统计',
- equipmentMessage:'按模具分类统计,取模具数量最多的前10项'
+ productionSchedule: '实时生产进度',
+ productionPlan: '生产计划',
+ productionName: '生产名称',
+ planNumber: '计划数量',
+ productionLine: '生产线',
+ planStartTime: '计划开始时间',
+ planEndTime: '计划结束时间',
+ completedQuantity: '完工数量',
+ qualifiedQuantity: '合格数量',
+ unqualifiedQuantity: '不合格数量',
+ yieldRate: '合格率',
+ actualEndTime: '实际结束时间',
+ gtasks: '待办任务',
+ missionNumber: '任务编号',
+ taskType: '任务类型',
+ target: '任务目标',
+ creationTime: '创建时间',
+ equipment: '设备',
+ mould: '模具',
+ equipmentTile: '采集设备整体情况',
+ equipmentCount: '设备总数',
+ operation: '运行',
+ standbyMode: '待机',
+ malfunction: '故障中',
+ alerting: '报警中',
+ useRatio: '利用率',
+ failureRate: '故障率',
+ equipmentTitle: '设备维修数量统计',
+ equipmentClass: '设备分类统计',
+ equipmentMessage: '按模具分类统计,取模具数量最多的前10项'
},
login: {
welcome: '欢迎使用必硕数字化智能中控平台',
@@ -1185,7 +1186,7 @@ export default {
},
// 设备台账
EquipmentLedger: {
- images:'图片',
+ images: '图片',
deviceCode: '编码',
qrcode: '二维码/条形码',
deviceName: '名称',
@@ -1194,7 +1195,7 @@ export default {
statusDisabled: '不启用',
deviceType: '类型',
deviceSpec: '规格型号',
- /* deviceModel: '型号',*/
+ /* deviceModel: '型号',*/
isSchedueld: '是否排产',
ratedCapacity: '额定产能',
yes: '是',
@@ -1269,7 +1270,7 @@ export default {
qrcodeEmpty: '暂无二维码',
validatorDeviceCodeRequired: '编码不能为空',
gjTitle: '选择关键件',
- bjTitle: '选择备件',
+ bjTitle: '选择备件'
},
// 设备关键件
EquipmentKeyItems: {
@@ -1277,7 +1278,7 @@ export default {
code: '编码',
qrcode: '二维码/条形码',
name: '名称',
- deviceSpec:'规格型号',
+ deviceSpec: '规格型号',
batchDelete: '批量删除',
description: '描述',
remark: '备注',
@@ -1295,7 +1296,7 @@ export default {
qrcodeEmpty: '暂无二维码',
validatorCodeRequired: '编码不能为空',
validatorNameRequired: '名称不能为空',
- images:'图片'
+ images: '图片'
},
// 项目维护
DvSubject: {
@@ -1303,7 +1304,7 @@ export default {
name: '名称',
inspectionMethod: '作业方式',
valueType: '结果类型',
- JobType:'作业类型',
+ JobType: '作业类型',
judgmentCriteria: '作业内容',
upperVal: '上限值',
lowerVal: '下限值',
@@ -2268,8 +2269,8 @@ export default {
validatorTypeRequired: '类型不能为空',
validatorSampleMethodRequired: '抽检方式不能为空',
validatorValRequired: '值不能为空',
- atIntervals:'每间隔',
- extraction:'抽取',
+ atIntervals: '每间隔',
+ extraction: '抽取'
},
ZjTask: {
moduleName: '检验任务',
@@ -2555,8 +2556,7 @@ export default {
nanualFormReferLabel: '参考值',
nanualFormReferPlaceholder: '请输入参考值',
nanualFormRemarkLabel: '备注',
- nanualFormRemarkPlaceholder: '请输入备注',
-
+ nanualFormRemarkPlaceholder: '请输入备注'
}
},
FactoryModeling: {
@@ -2650,8 +2650,8 @@ export default {
addButtonText: '新增',
exportButtonText: '导出',
expandButtonText: '展开/折叠',
- tableCodeColumn: '分类编码',
- tableNameColumn: '分类名称',
+ tableCodeColumn: '编码',
+ tableNameColumn: '名称',
tableSortColumn: '排序',
tableStatusColumn: '状态',
tableCreateTimeColumn: '创建时间',
@@ -2975,8 +2975,8 @@ export default {
validatorNameRequired: '单位名称不能为空',
validatorStatusRequired: '单位状态不能为空',
validatorPrimaryFlagRequired: '是否主单位不能为空',
- importButtonText:'导入',
- import:'导入单位',
+ importButtonText: '导入',
+ import: '导入单位',
importDragText: '将文件拖到此处,或',
importClickText: '点击上传',
importUpdateSupport: '是否更新已经存在的用户数据',
@@ -2986,17 +2986,17 @@ export default {
importSuccessTip:
'上传成功数量:{createCount};更新成功数量:{updateCount};更新失败数量:{failureCount};',
importFailed: '上传失败,请您重新上传!',
- importFileLimit: '最多只能上传一个文件!',
+ importFileLimit: '最多只能上传一个文件!'
},
//假日管理
CalHoliday: {
setWorkingDays: '设置工作日',
setHoliday: '设置休息日',
- lastMonth:'上个月',
- today:'今天',
- nextMonth:'下个月',
- work:'班',
- rest:'休',
+ lastMonth: '上个月',
+ today: '今天',
+ nextMonth: '下个月',
+ work: '班',
+ rest: '休',
searchDateStartPlaceholder: '开始日期',
searchDateEndPlaceholder: '结束日期',
searchTypeLabel: '类型',
@@ -3021,7 +3021,7 @@ export default {
uploadButtonText: '文件上传',
addButtonText: '新增',
exportButtonText: '导出',
- tableCodeColumn:'文件编码',
+ tableCodeColumn: '文件编码',
tableNameColumn: '文件名称',
tableClassificationColumn: '文件分类',
tableTypeColumn: '文件类型',
@@ -3030,7 +3030,7 @@ export default {
tableCreateTimeColumn: '上传时间',
tableOperateColumn: '操作',
tableEditAction: '编辑',
- tableDownloadAction:'下载',
+ tableDownloadAction: '下载',
tableDeleteAction: '删除',
dialogFileNameLabel: '文件名',
dialogFileNamePlaceholder: '请输入文件名',
@@ -3039,14 +3039,13 @@ export default {
dialogStatusLabel: '文件状态',
dialogCancelButton: '取 消',
dialogSubmitButton: '确 定',
- messageOne:'提示:仅允许导入 ',
- messageTwo:' 格式文件!',
- messageThree:' 将文件拖到此处,或',
- messageFour:'点击上传',
+ messageOne: '提示:仅允许导入 ',
+ messageTwo: ' 格式文件!',
+ messageThree: ' 将文件拖到此处,或',
+ messageFour: '点击上传',
validatorNameRequired: '文件名不能为空',
validatorStatusRequired: '文件状态不能为空'
}
-
},
ProductionPlan: {
Task: {
@@ -3736,7 +3735,7 @@ export default {
exportFilename: '成型记录.xls'
},
- WorkReportRecord: {
+ WorkReportRecord: {
moduleName: '报工记录',
searchBaogongTimeLabel: '报工日期',
@@ -3979,8 +3978,8 @@ export default {
messageSelectDeviceRequired: '请选择一个物联设备',
messageDeviceInfoMissingForRules: '设备信息缺失,无法加载点位规则',
- gridView:'表格视图',
- sudoku:'九宫格',
+ gridView: '表格视图',
+ sudoku: '九宫格'
},
RunReport: {
moduleName: '设备运行报表',
@@ -4490,8 +4489,6 @@ export default {
messageDeviceNoParams: '该设备下没有参数',
messageFetchChartFailed: '获取图表数据失败'
}
-
-
}
},
ProductionReport: {