Răsfoiți Sursa

生成代码初始化

Rmengdi 1 an în urmă
părinte
comite
5f22ac2463
52 a modificat fișierele cu 10225 adăugiri și 2 ștergeri
  1. 44 0
      PHM-web/src/api/manage/aeroplane.js
  2. 44 0
      PHM-web/src/api/manage/afterAnalysisResult.js
  3. 44 0
      PHM-web/src/api/manage/analyzeCourseLog.js
  4. 44 0
      PHM-web/src/api/manage/analyzeDownLog.js
  5. 44 0
      PHM-web/src/api/manage/analyzeResult.js
  6. 44 0
      PHM-web/src/api/manage/deepIsolationModel.js
  7. 44 0
      PHM-web/src/api/manage/deriveParameter.js
  8. 44 0
      PHM-web/src/api/manage/externalInterfaceLog.js
  9. 44 0
      PHM-web/src/api/manage/falseAlarmRestrainModel.js
  10. 44 0
      PHM-web/src/api/manage/faultAnalyzeResult.js
  11. 44 0
      PHM-web/src/api/manage/faultCase.js
  12. 44 0
      PHM-web/src/api/manage/feedbackRawData.js
  13. 44 0
      PHM-web/src/api/manage/fleet.js
  14. 44 0
      PHM-web/src/api/manage/forecastModel.js
  15. 44 0
      PHM-web/src/api/manage/groundDiagnosisModel.js
  16. 44 0
      PHM-web/src/api/manage/importExportLog.js
  17. 44 0
      PHM-web/src/api/manage/instructionInfo.js
  18. 44 0
      PHM-web/src/api/manage/maintenance.js
  19. 44 0
      PHM-web/src/api/manage/maintenanceTestControl.js
  20. 44 0
      PHM-web/src/api/manage/monitorParameterConfig.js
  21. 44 0
      PHM-web/src/api/manage/performanceMonitorModel.js
  22. 44 0
      PHM-web/src/api/manage/preHandleResult.js
  23. 44 0
      PHM-web/src/api/manage/product.js
  24. 44 0
      PHM-web/src/api/manage/softwareConfig.js
  25. 44 0
      PHM-web/src/api/manage/sortie.js
  26. 2 1
      PHM-web/src/utils/request.js
  27. 350 0
      PHM-web/src/views/manage/aeroplane/index.vue
  28. 322 0
      PHM-web/src/views/manage/afterAnalysisResult/index.vue
  29. 348 0
      PHM-web/src/views/manage/analyzeCourseLog/index.vue
  30. 367 0
      PHM-web/src/views/manage/analyzeDownLog/index.vue
  31. 322 0
      PHM-web/src/views/manage/analyzeResult/index.vue
  32. 364 0
      PHM-web/src/views/manage/deepIsolationModel/index.vue
  33. 350 0
      PHM-web/src/views/manage/deriveParameter/index.vue
  34. 356 0
      PHM-web/src/views/manage/externalInterfaceLog/index.vue
  35. 364 0
      PHM-web/src/views/manage/falseAlarmRestrainModel/index.vue
  36. 367 0
      PHM-web/src/views/manage/faultAnalyzeResult/index.vue
  37. 398 0
      PHM-web/src/views/manage/faultCase/index.vue
  38. 322 0
      PHM-web/src/views/manage/feedbackRawData/index.vue
  39. 364 0
      PHM-web/src/views/manage/fleet/index.vue
  40. 378 0
      PHM-web/src/views/manage/forecastModel/index.vue
  41. 392 0
      PHM-web/src/views/manage/groundDiagnosisModel/index.vue
  42. 382 0
      PHM-web/src/views/manage/importExportLog/index.vue
  43. 342 0
      PHM-web/src/views/manage/instructionInfo/index.vue
  44. 406 0
      PHM-web/src/views/manage/maintenance/index.vue
  45. 406 0
      PHM-web/src/views/manage/maintenanceTestControl/index.vue
  46. 378 0
      PHM-web/src/views/manage/monitorParameterConfig/index.vue
  47. 406 0
      PHM-web/src/views/manage/performanceMonitorModel/index.vue
  48. 322 0
      PHM-web/src/views/manage/preHandleResult/index.vue
  49. 374 0
      PHM-web/src/views/manage/product/index.vue
  50. 350 0
      PHM-web/src/views/manage/softwareConfig/index.vue
  51. 392 0
      PHM-web/src/views/manage/sortie/index.vue
  52. 1 1
      PHM-web/vue.config.js

+ 44 - 0
PHM-web/src/api/manage/aeroplane.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询单机信息列表
+export function listAeroplane(query) {
+  return request({
+    url: '/manage/aeroplane/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询单机信息详细
+export function getAeroplane(id) {
+  return request({
+    url: '/manage/aeroplane/' + id,
+    method: 'get'
+  })
+}
+
+// 新增单机信息
+export function addAeroplane(data) {
+  return request({
+    url: '/manage/aeroplane',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改单机信息
+export function updateAeroplane(data) {
+  return request({
+    url: '/manage/aeroplane',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除单机信息
+export function delAeroplane(id) {
+  return request({
+    url: '/manage/aeroplane/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/afterAnalysisResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询维修测试控制解析后数据列表
+export function listAfterAnalysisResult(query) {
+  return request({
+    url: '/manage/afterAnalysisResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询维修测试控制解析后数据详细
+export function getAfterAnalysisResult(id) {
+  return request({
+    url: '/manage/afterAnalysisResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增维修测试控制解析后数据
+export function addAfterAnalysisResult(data) {
+  return request({
+    url: '/manage/afterAnalysisResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改维修测试控制解析后数据
+export function updateAfterAnalysisResult(data) {
+  return request({
+    url: '/manage/afterAnalysisResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除维修测试控制解析后数据
+export function delAfterAnalysisResult(id) {
+  return request({
+    url: '/manage/afterAnalysisResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/analyzeCourseLog.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询分析过程日志列表
+export function listAnalyzeCourseLog(query) {
+  return request({
+    url: '/manage/analyzeCourseLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询分析过程日志详细
+export function getAnalyzeCourseLog(id) {
+  return request({
+    url: '/manage/analyzeCourseLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增分析过程日志
+export function addAnalyzeCourseLog(data) {
+  return request({
+    url: '/manage/analyzeCourseLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改分析过程日志
+export function updateAnalyzeCourseLog(data) {
+  return request({
+    url: '/manage/analyzeCourseLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除分析过程日志
+export function delAnalyzeCourseLog(id) {
+  return request({
+    url: '/manage/analyzeCourseLog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/analyzeDownLog.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询数据解析下载日志列表
+export function listAnalyzeDownLog(query) {
+  return request({
+    url: '/manage/analyzeDownLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询数据解析下载日志详细
+export function getAnalyzeDownLog(id) {
+  return request({
+    url: '/manage/analyzeDownLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增数据解析下载日志
+export function addAnalyzeDownLog(data) {
+  return request({
+    url: '/manage/analyzeDownLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改数据解析下载日志
+export function updateAnalyzeDownLog(data) {
+  return request({
+    url: '/manage/analyzeDownLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除数据解析下载日志
+export function delAnalyzeDownLog(id) {
+  return request({
+    url: '/manage/analyzeDownLog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/analyzeResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询数据解析结果列表
+export function listAnalyzeResult(query) {
+  return request({
+    url: '/manage/analyzeResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询数据解析结果详细
+export function getAnalyzeResult(id) {
+  return request({
+    url: '/manage/analyzeResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增数据解析结果
+export function addAnalyzeResult(data) {
+  return request({
+    url: '/manage/analyzeResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改数据解析结果
+export function updateAnalyzeResult(data) {
+  return request({
+    url: '/manage/analyzeResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除数据解析结果
+export function delAnalyzeResult(id) {
+  return request({
+    url: '/manage/analyzeResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/deepIsolationModel.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询深度隔离模型列表
+export function listDeepIsolationModel(query) {
+  return request({
+    url: '/manage/deepIsolationModel/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询深度隔离模型详细
+export function getDeepIsolationModel(id) {
+  return request({
+    url: '/manage/deepIsolationModel/' + id,
+    method: 'get'
+  })
+}
+
+// 新增深度隔离模型
+export function addDeepIsolationModel(data) {
+  return request({
+    url: '/manage/deepIsolationModel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改深度隔离模型
+export function updateDeepIsolationModel(data) {
+  return request({
+    url: '/manage/deepIsolationModel',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除深度隔离模型
+export function delDeepIsolationModel(id) {
+  return request({
+    url: '/manage/deepIsolationModel/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/deriveParameter.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询衍生参数信息列表
+export function listDeriveParameter(query) {
+  return request({
+    url: '/manage/deriveParameter/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询衍生参数信息详细
+export function getDeriveParameter(id) {
+  return request({
+    url: '/manage/deriveParameter/' + id,
+    method: 'get'
+  })
+}
+
+// 新增衍生参数信息
+export function addDeriveParameter(data) {
+  return request({
+    url: '/manage/deriveParameter',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改衍生参数信息
+export function updateDeriveParameter(data) {
+  return request({
+    url: '/manage/deriveParameter',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除衍生参数信息
+export function delDeriveParameter(id) {
+  return request({
+    url: '/manage/deriveParameter/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/externalInterfaceLog.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询外部接口日志列表
+export function listExternalInterfaceLog(query) {
+  return request({
+    url: '/manage/externalInterfaceLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询外部接口日志详细
+export function getExternalInterfaceLog(id) {
+  return request({
+    url: '/manage/externalInterfaceLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增外部接口日志
+export function addExternalInterfaceLog(data) {
+  return request({
+    url: '/manage/externalInterfaceLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改外部接口日志
+export function updateExternalInterfaceLog(data) {
+  return request({
+    url: '/manage/externalInterfaceLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除外部接口日志
+export function delExternalInterfaceLog(id) {
+  return request({
+    url: '/manage/externalInterfaceLog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/falseAlarmRestrainModel.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询虚警抑制模型列表
+export function listFalseAlarmRestrainModel(query) {
+  return request({
+    url: '/manage/falseAlarmRestrainModel/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询虚警抑制模型详细
+export function getFalseAlarmRestrainModel(id) {
+  return request({
+    url: '/manage/falseAlarmRestrainModel/' + id,
+    method: 'get'
+  })
+}
+
+// 新增虚警抑制模型
+export function addFalseAlarmRestrainModel(data) {
+  return request({
+    url: '/manage/falseAlarmRestrainModel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改虚警抑制模型
+export function updateFalseAlarmRestrainModel(data) {
+  return request({
+    url: '/manage/falseAlarmRestrainModel',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除虚警抑制模型
+export function delFalseAlarmRestrainModel(id) {
+  return request({
+    url: '/manage/falseAlarmRestrainModel/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/faultAnalyzeResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询故障分析结果列表
+export function listFaultAnalyzeResult(query) {
+  return request({
+    url: '/manage/faultAnalyzeResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询故障分析结果详细
+export function getFaultAnalyzeResult(id) {
+  return request({
+    url: '/manage/faultAnalyzeResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增故障分析结果
+export function addFaultAnalyzeResult(data) {
+  return request({
+    url: '/manage/faultAnalyzeResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改故障分析结果
+export function updateFaultAnalyzeResult(data) {
+  return request({
+    url: '/manage/faultAnalyzeResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除故障分析结果
+export function delFaultAnalyzeResult(id) {
+  return request({
+    url: '/manage/faultAnalyzeResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/faultCase.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询故障案例信息列表
+export function listFaultCase(query) {
+  return request({
+    url: '/manage/faultCase/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询故障案例信息详细
+export function getFaultCase(id) {
+  return request({
+    url: '/manage/faultCase/' + id,
+    method: 'get'
+  })
+}
+
+// 新增故障案例信息
+export function addFaultCase(data) {
+  return request({
+    url: '/manage/faultCase',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改故障案例信息
+export function updateFaultCase(data) {
+  return request({
+    url: '/manage/faultCase',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除故障案例信息
+export function delFaultCase(id) {
+  return request({
+    url: '/manage/faultCase/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/feedbackRawData.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询反馈的源数据列表
+export function listFeedbackRawData(query) {
+  return request({
+    url: '/manage/feedbackRawData/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询反馈的源数据详细
+export function getFeedbackRawData(id) {
+  return request({
+    url: '/manage/feedbackRawData/' + id,
+    method: 'get'
+  })
+}
+
+// 新增反馈的源数据
+export function addFeedbackRawData(data) {
+  return request({
+    url: '/manage/feedbackRawData',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改反馈的源数据
+export function updateFeedbackRawData(data) {
+  return request({
+    url: '/manage/feedbackRawData',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除反馈的源数据
+export function delFeedbackRawData(id) {
+  return request({
+    url: '/manage/feedbackRawData/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/fleet.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询机队信息列表
+export function listFleet(query) {
+  return request({
+    url: '/manage/fleet/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询机队信息详细
+export function getFleet(id) {
+  return request({
+    url: '/manage/fleet/' + id,
+    method: 'get'
+  })
+}
+
+// 新增机队信息
+export function addFleet(data) {
+  return request({
+    url: '/manage/fleet',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改机队信息
+export function updateFleet(data) {
+  return request({
+    url: '/manage/fleet',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除机队信息
+export function delFleet(id) {
+  return request({
+    url: '/manage/fleet/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/forecastModel.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询预测模型信息列表
+export function listForecastModel(query) {
+  return request({
+    url: '/manage/forecastModel/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询预测模型信息详细
+export function getForecastModel(id) {
+  return request({
+    url: '/manage/forecastModel/' + id,
+    method: 'get'
+  })
+}
+
+// 新增预测模型信息
+export function addForecastModel(data) {
+  return request({
+    url: '/manage/forecastModel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改预测模型信息
+export function updateForecastModel(data) {
+  return request({
+    url: '/manage/forecastModel',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除预测模型信息
+export function delForecastModel(id) {
+  return request({
+    url: '/manage/forecastModel/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/groundDiagnosisModel.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询地面诊断模型信息列表
+export function listGroundDiagnosisModel(query) {
+  return request({
+    url: '/manage/groundDiagnosisModel/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询地面诊断模型信息详细
+export function getGroundDiagnosisModel(id) {
+  return request({
+    url: '/manage/groundDiagnosisModel/' + id,
+    method: 'get'
+  })
+}
+
+// 新增地面诊断模型信息
+export function addGroundDiagnosisModel(data) {
+  return request({
+    url: '/manage/groundDiagnosisModel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改地面诊断模型信息
+export function updateGroundDiagnosisModel(data) {
+  return request({
+    url: '/manage/groundDiagnosisModel',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除地面诊断模型信息
+export function delGroundDiagnosisModel(id) {
+  return request({
+    url: '/manage/groundDiagnosisModel/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/importExportLog.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询导入导出日志;列表
+export function listImportExportLog(query) {
+  return request({
+    url: '/manage/importExportLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询导入导出日志;详细
+export function getImportExportLog(id) {
+  return request({
+    url: '/manage/importExportLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增导入导出日志;
+export function addImportExportLog(data) {
+  return request({
+    url: '/manage/importExportLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改导入导出日志;
+export function updateImportExportLog(data) {
+  return request({
+    url: '/manage/importExportLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除导入导出日志;
+export function delImportExportLog(id) {
+  return request({
+    url: '/manage/importExportLog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/instructionInfo.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询指令信息列表
+export function listInstructionInfo(query) {
+  return request({
+    url: '/manage/instructionInfo/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询指令信息详细
+export function getInstructionInfo(id) {
+  return request({
+    url: '/manage/instructionInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增指令信息
+export function addInstructionInfo(data) {
+  return request({
+    url: '/manage/instructionInfo',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改指令信息
+export function updateInstructionInfo(data) {
+  return request({
+    url: '/manage/instructionInfo',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除指令信息
+export function delInstructionInfo(id) {
+  return request({
+    url: '/manage/instructionInfo/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/maintenance.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询维护信息列表
+export function listMaintenance(query) {
+  return request({
+    url: '/manage/maintenance/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询维护信息详细
+export function getMaintenance(id) {
+  return request({
+    url: '/manage/maintenance/' + id,
+    method: 'get'
+  })
+}
+
+// 新增维护信息
+export function addMaintenance(data) {
+  return request({
+    url: '/manage/maintenance',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改维护信息
+export function updateMaintenance(data) {
+  return request({
+    url: '/manage/maintenance',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除维护信息
+export function delMaintenance(id) {
+  return request({
+    url: '/manage/maintenance/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/maintenanceTestControl.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询维修测试控制列表
+export function listMaintenanceTestControl(query) {
+  return request({
+    url: '/manage/maintenanceTestControl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询维修测试控制详细
+export function getMaintenanceTestControl(id) {
+  return request({
+    url: '/manage/maintenanceTestControl/' + id,
+    method: 'get'
+  })
+}
+
+// 新增维修测试控制
+export function addMaintenanceTestControl(data) {
+  return request({
+    url: '/manage/maintenanceTestControl',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改维修测试控制
+export function updateMaintenanceTestControl(data) {
+  return request({
+    url: '/manage/maintenanceTestControl',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除维修测试控制
+export function delMaintenanceTestControl(id) {
+  return request({
+    url: '/manage/maintenanceTestControl/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/monitorParameterConfig.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询状态监控参数配置信息列表
+export function listMonitorParameterConfig(query) {
+  return request({
+    url: '/manage/monitorParameterConfig/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询状态监控参数配置信息详细
+export function getMonitorParameterConfig(id) {
+  return request({
+    url: '/manage/monitorParameterConfig/' + id,
+    method: 'get'
+  })
+}
+
+// 新增状态监控参数配置信息
+export function addMonitorParameterConfig(data) {
+  return request({
+    url: '/manage/monitorParameterConfig',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改状态监控参数配置信息
+export function updateMonitorParameterConfig(data) {
+  return request({
+    url: '/manage/monitorParameterConfig',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除状态监控参数配置信息
+export function delMonitorParameterConfig(id) {
+  return request({
+    url: '/manage/monitorParameterConfig/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/performanceMonitorModel.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询性能监测模型信息列表
+export function listPerformanceMonitorModel(query) {
+  return request({
+    url: '/manage/performanceMonitorModel/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询性能监测模型信息详细
+export function getPerformanceMonitorModel(id) {
+  return request({
+    url: '/manage/performanceMonitorModel/' + id,
+    method: 'get'
+  })
+}
+
+// 新增性能监测模型信息
+export function addPerformanceMonitorModel(data) {
+  return request({
+    url: '/manage/performanceMonitorModel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改性能监测模型信息
+export function updatePerformanceMonitorModel(data) {
+  return request({
+    url: '/manage/performanceMonitorModel',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除性能监测模型信息
+export function delPerformanceMonitorModel(id) {
+  return request({
+    url: '/manage/performanceMonitorModel/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/preHandleResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询数据预处理结果列表
+export function listPreHandleResult(query) {
+  return request({
+    url: '/manage/preHandleResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询数据预处理结果详细
+export function getPreHandleResult(id) {
+  return request({
+    url: '/manage/preHandleResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增数据预处理结果
+export function addPreHandleResult(data) {
+  return request({
+    url: '/manage/preHandleResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改数据预处理结果
+export function updatePreHandleResult(data) {
+  return request({
+    url: '/manage/preHandleResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除数据预处理结果
+export function delPreHandleResult(id) {
+  return request({
+    url: '/manage/preHandleResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/product.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询产品树信息列表
+export function listProduct(query) {
+  return request({
+    url: '/manage/product/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询产品树信息详细
+export function getProduct(id) {
+  return request({
+    url: '/manage/product/' + id,
+    method: 'get'
+  })
+}
+
+// 新增产品树信息
+export function addProduct(data) {
+  return request({
+    url: '/manage/product',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改产品树信息
+export function updateProduct(data) {
+  return request({
+    url: '/manage/product',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除产品树信息
+export function delProduct(id) {
+  return request({
+    url: '/manage/product/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/softwareConfig.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询软件配置库信息列表
+export function listSoftwareConfig(query) {
+  return request({
+    url: '/manage/softwareConfig/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询软件配置库信息详细
+export function getSoftwareConfig(id) {
+  return request({
+    url: '/manage/softwareConfig/' + id,
+    method: 'get'
+  })
+}
+
+// 新增软件配置库信息
+export function addSoftwareConfig(data) {
+  return request({
+    url: '/manage/softwareConfig',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改软件配置库信息
+export function updateSoftwareConfig(data) {
+  return request({
+    url: '/manage/softwareConfig',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除软件配置库信息
+export function delSoftwareConfig(id) {
+  return request({
+    url: '/manage/softwareConfig/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/sortie.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询架次信息列表
+export function listSortie(query) {
+  return request({
+    url: '/manage/sortie/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询架次信息详细
+export function getSortie(id) {
+  return request({
+    url: '/manage/sortie/' + id,
+    method: 'get'
+  })
+}
+
+// 新增架次信息
+export function addSortie(data) {
+  return request({
+    url: '/manage/sortie',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改架次信息
+export function updateSortie(data) {
+  return request({
+    url: '/manage/sortie',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除架次信息
+export function delSortie(id) {
+  return request({
+    url: '/manage/sortie/' + id,
+    method: 'delete'
+  })
+}

+ 2 - 1
PHM-web/src/utils/request.js

@@ -15,7 +15,8 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分
-  baseURL: process.env.VUE_APP_BASE_API,
+  // baseURL: process.env.VUE_APP_BASE_API,
+  baseURL: 'http://192.168.0.104:8080',
   // 超时
   timeout: 10000
 })

+ 350 - 0
PHM-web/src/views/manage/aeroplane/index.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="型号" prop="modelNumber">
+        <el-input
+          v-model="queryParams.modelNumber"
+          placeholder="请输入型号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:aeroplane:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:aeroplane:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:aeroplane:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:aeroplane:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="aeroplaneList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="型号" align="center" prop="modelNumber" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:aeroplane:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:aeroplane:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改单机信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="型号" prop="modelNumber">
+          <el-input v-model="form.modelNumber" placeholder="请输入型号" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAeroplane, getAeroplane, delAeroplane, addAeroplane, updateAeroplane } from "@/api/manage/aeroplane";
+
+export default {
+  name: "Aeroplane",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 单机信息表格数据
+      aeroplaneList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        modelNumber: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询单机信息列表 */
+    getList() {
+      this.loading = true;
+      listAeroplane(this.queryParams).then(response => {
+        this.aeroplaneList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        modelNumber: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加单机信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAeroplane(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改单机信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAeroplane(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAeroplane(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除单机信息编号为"' + ids + '"的数据项?').then(function() {
+        return delAeroplane(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/aeroplane/export', {
+        ...this.queryParams
+      }, `aeroplane_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 322 - 0
PHM-web/src/views/manage/afterAnalysisResult/index.vue

@@ -0,0 +1,322 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:afterAnalysisResult:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:afterAnalysisResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:afterAnalysisResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:afterAnalysisResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="afterAnalysisResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:afterAnalysisResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:afterAnalysisResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改维修测试控制解析后数据对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAfterAnalysisResult, getAfterAnalysisResult, delAfterAnalysisResult, addAfterAnalysisResult, updateAfterAnalysisResult } from "@/api/manage/afterAnalysisResult";
+
+export default {
+  name: "AfterAnalysisResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 维修测试控制解析后数据表格数据
+      afterAnalysisResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询维修测试控制解析后数据列表 */
+    getList() {
+      this.loading = true;
+      listAfterAnalysisResult(this.queryParams).then(response => {
+        this.afterAnalysisResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加维修测试控制解析后数据";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAfterAnalysisResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改维修测试控制解析后数据";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAfterAnalysisResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAfterAnalysisResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除维修测试控制解析后数据编号为"' + ids + '"的数据项?').then(function() {
+        return delAfterAnalysisResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/afterAnalysisResult/export', {
+        ...this.queryParams
+      }, `afterAnalysisResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 348 - 0
PHM-web/src/views/manage/analyzeCourseLog/index.vue

@@ -0,0 +1,348 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="模块功能名称" prop="moduleName">
+        <el-input
+          v-model="queryParams.moduleName"
+          placeholder="请输入模块功能名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:analyzeCourseLog:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:analyzeCourseLog:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:analyzeCourseLog:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:analyzeCourseLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="analyzeCourseLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="模块功能名称" align="center" prop="moduleName" />
+      <el-table-column label="模块功能类型" align="center" prop="moduleType" />
+      <el-table-column label="过程日志" align="center" prop="courseContent" />
+      <el-table-column label="分析结果状态" align="center" prop="status" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:analyzeCourseLog:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:analyzeCourseLog:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改分析过程日志对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="模块功能名称" prop="moduleName">
+          <el-input v-model="form.moduleName" placeholder="请输入模块功能名称" />
+        </el-form-item>
+        <el-form-item label="过程日志">
+          <editor v-model="form.courseContent" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAnalyzeCourseLog, getAnalyzeCourseLog, delAnalyzeCourseLog, addAnalyzeCourseLog, updateAnalyzeCourseLog } from "@/api/manage/analyzeCourseLog";
+
+export default {
+  name: "AnalyzeCourseLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 分析过程日志表格数据
+      analyzeCourseLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        moduleName: null,
+        moduleType: null,
+        courseContent: null,
+        status: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询分析过程日志列表 */
+    getList() {
+      this.loading = true;
+      listAnalyzeCourseLog(this.queryParams).then(response => {
+        this.analyzeCourseLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        moduleName: null,
+        moduleType: null,
+        courseContent: null,
+        status: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加分析过程日志";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAnalyzeCourseLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改分析过程日志";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAnalyzeCourseLog(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAnalyzeCourseLog(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除分析过程日志编号为"' + ids + '"的数据项?').then(function() {
+        return delAnalyzeCourseLog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/analyzeCourseLog/export', {
+        ...this.queryParams
+      }, `analyzeCourseLog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 367 - 0
PHM-web/src/views/manage/analyzeDownLog/index.vue

@@ -0,0 +1,367 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="文件名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入文件名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="保存路径" prop="path">
+        <el-input
+          v-model="queryParams.path"
+          placeholder="请输入保存路径"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障数据" prop="fault">
+        <el-input
+          v-model="queryParams.fault"
+          placeholder="请输入故障数据"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:analyzeDownLog:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:analyzeDownLog:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:analyzeDownLog:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:analyzeDownLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="analyzeDownLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="文件名称" align="center" prop="name" />
+      <el-table-column label="保存路径" align="center" prop="path" />
+      <el-table-column label="状态数据" align="center" prop="status" />
+      <el-table-column label="故障数据" align="center" prop="fault" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:analyzeDownLog:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:analyzeDownLog:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据解析下载日志对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="文件名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入文件名称" />
+        </el-form-item>
+        <el-form-item label="保存路径" prop="path">
+          <el-input v-model="form.path" placeholder="请输入保存路径" />
+        </el-form-item>
+        <el-form-item label="故障数据" prop="fault">
+          <el-input v-model="form.fault" placeholder="请输入故障数据" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAnalyzeDownLog, getAnalyzeDownLog, delAnalyzeDownLog, addAnalyzeDownLog, updateAnalyzeDownLog } from "@/api/manage/analyzeDownLog";
+
+export default {
+  name: "AnalyzeDownLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 数据解析下载日志表格数据
+      analyzeDownLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        path: null,
+        status: null,
+        fault: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询数据解析下载日志列表 */
+    getList() {
+      this.loading = true;
+      listAnalyzeDownLog(this.queryParams).then(response => {
+        this.analyzeDownLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        path: null,
+        status: null,
+        fault: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据解析下载日志";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAnalyzeDownLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据解析下载日志";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAnalyzeDownLog(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAnalyzeDownLog(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除数据解析下载日志编号为"' + ids + '"的数据项?').then(function() {
+        return delAnalyzeDownLog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/analyzeDownLog/export', {
+        ...this.queryParams
+      }, `analyzeDownLog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 322 - 0
PHM-web/src/views/manage/analyzeResult/index.vue

@@ -0,0 +1,322 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:analyzeResult:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:analyzeResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:analyzeResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:analyzeResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="analyzeResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:analyzeResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:analyzeResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据解析结果对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAnalyzeResult, getAnalyzeResult, delAnalyzeResult, addAnalyzeResult, updateAnalyzeResult } from "@/api/manage/analyzeResult";
+
+export default {
+  name: "AnalyzeResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 数据解析结果表格数据
+      analyzeResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询数据解析结果列表 */
+    getList() {
+      this.loading = true;
+      listAnalyzeResult(this.queryParams).then(response => {
+        this.analyzeResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据解析结果";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAnalyzeResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据解析结果";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAnalyzeResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAnalyzeResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除数据解析结果编号为"' + ids + '"的数据项?').then(function() {
+        return delAnalyzeResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/analyzeResult/export', {
+        ...this.queryParams
+      }, `analyzeResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 364 - 0
PHM-web/src/views/manage/deepIsolationModel/index.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="维护代码" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入维护代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障方程" prop="faultEquation">
+        <el-input
+          v-model="queryParams.faultEquation"
+          placeholder="请输入故障方程"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障LRU" prop="faultLru">
+        <el-input
+          v-model="queryParams.faultLru"
+          placeholder="请输入故障LRU"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:deepIsolationModel:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:deepIsolationModel:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:deepIsolationModel:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:deepIsolationModel:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="deepIsolationModelList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="维护代码" align="center" prop="code" />
+      <el-table-column label="故障方程" align="center" prop="faultEquation" />
+      <el-table-column label="故障LRU" align="center" prop="faultLru" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:deepIsolationModel:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:deepIsolationModel:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改深度隔离模型对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="维护代码" prop="code">
+          <el-input v-model="form.code" placeholder="请输入维护代码" />
+        </el-form-item>
+        <el-form-item label="故障方程" prop="faultEquation">
+          <el-input v-model="form.faultEquation" placeholder="请输入故障方程" />
+        </el-form-item>
+        <el-form-item label="故障LRU" prop="faultLru">
+          <el-input v-model="form.faultLru" placeholder="请输入故障LRU" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listDeepIsolationModel, getDeepIsolationModel, delDeepIsolationModel, addDeepIsolationModel, updateDeepIsolationModel } from "@/api/manage/deepIsolationModel";
+
+export default {
+  name: "DeepIsolationModel",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 深度隔离模型表格数据
+      deepIsolationModelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        faultEquation: null,
+        faultLru: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询深度隔离模型列表 */
+    getList() {
+      this.loading = true;
+      listDeepIsolationModel(this.queryParams).then(response => {
+        this.deepIsolationModelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        faultEquation: null,
+        faultLru: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加深度隔离模型";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDeepIsolationModel(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改深度隔离模型";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDeepIsolationModel(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDeepIsolationModel(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除深度隔离模型编号为"' + ids + '"的数据项?').then(function() {
+        return delDeepIsolationModel(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/deepIsolationModel/export', {
+        ...this.queryParams
+      }, `deepIsolationModel_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 350 - 0
PHM-web/src/views/manage/deriveParameter/index.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="参数名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入参数名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="表达式文件" prop="expression">
+        <el-input
+          v-model="queryParams.expression"
+          placeholder="请输入表达式文件"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:deriveParameter:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:deriveParameter:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:deriveParameter:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:deriveParameter:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="deriveParameterList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="参数名称" align="center" prop="name" />
+      <el-table-column label="表达式文件" align="center" prop="expression" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:deriveParameter:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:deriveParameter:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改衍生参数信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="参数名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入参数名称" />
+        </el-form-item>
+        <el-form-item label="表达式文件" prop="expression">
+          <el-input v-model="form.expression" placeholder="请输入表达式文件" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listDeriveParameter, getDeriveParameter, delDeriveParameter, addDeriveParameter, updateDeriveParameter } from "@/api/manage/deriveParameter";
+
+export default {
+  name: "DeriveParameter",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 衍生参数信息表格数据
+      deriveParameterList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        expression: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询衍生参数信息列表 */
+    getList() {
+      this.loading = true;
+      listDeriveParameter(this.queryParams).then(response => {
+        this.deriveParameterList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        expression: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加衍生参数信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDeriveParameter(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改衍生参数信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDeriveParameter(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDeriveParameter(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除衍生参数信息编号为"' + ids + '"的数据项?').then(function() {
+        return delDeriveParameter(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/deriveParameter/export', {
+        ...this.queryParams
+      }, `deriveParameter_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 356 - 0
PHM-web/src/views/manage/externalInterfaceLog/index.vue

@@ -0,0 +1,356 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="接口结果" prop="result">
+        <el-input
+          v-model="queryParams.result"
+          placeholder="请输入接口结果"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="接口名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入接口名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:externalInterfaceLog:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:externalInterfaceLog:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:externalInterfaceLog:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:externalInterfaceLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="externalInterfaceLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="接口结果" align="center" prop="result" />
+      <el-table-column label="接口名称" align="center" prop="name" />
+      <el-table-column label="接口路径" align="center" prop="url" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:externalInterfaceLog:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:externalInterfaceLog:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改外部接口日志对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="接口结果" prop="result">
+          <el-input v-model="form.result" placeholder="请输入接口结果" />
+        </el-form-item>
+        <el-form-item label="接口名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入接口名称" />
+        </el-form-item>
+        <el-form-item label="接口路径" prop="url">
+          <el-input v-model="form.url" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listExternalInterfaceLog, getExternalInterfaceLog, delExternalInterfaceLog, addExternalInterfaceLog, updateExternalInterfaceLog } from "@/api/manage/externalInterfaceLog";
+
+export default {
+  name: "ExternalInterfaceLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 外部接口日志表格数据
+      externalInterfaceLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        result: null,
+        name: null,
+        url: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询外部接口日志列表 */
+    getList() {
+      this.loading = true;
+      listExternalInterfaceLog(this.queryParams).then(response => {
+        this.externalInterfaceLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        result: null,
+        name: null,
+        url: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加外部接口日志";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getExternalInterfaceLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改外部接口日志";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateExternalInterfaceLog(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addExternalInterfaceLog(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除外部接口日志编号为"' + ids + '"的数据项?').then(function() {
+        return delExternalInterfaceLog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/externalInterfaceLog/export', {
+        ...this.queryParams
+      }, `externalInterfaceLog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 364 - 0
PHM-web/src/views/manage/falseAlarmRestrainModel/index.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="故障代码" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入故障代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="抑制判据" prop="restrainCriteria">
+        <el-input
+          v-model="queryParams.restrainCriteria"
+          placeholder="请输入抑制判据"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="最少持续时间" prop="minDuration">
+        <el-input
+          v-model="queryParams.minDuration"
+          placeholder="请输入最少持续时间"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:falseAlarmRestrainModel:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:falseAlarmRestrainModel:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:falseAlarmRestrainModel:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:falseAlarmRestrainModel:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="falseAlarmRestrainModelList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="故障代码" align="center" prop="code" />
+      <el-table-column label="抑制判据" align="center" prop="restrainCriteria" />
+      <el-table-column label="最少持续时间" align="center" prop="minDuration" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:falseAlarmRestrainModel:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:falseAlarmRestrainModel:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改虚警抑制模型对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="故障代码" prop="code">
+          <el-input v-model="form.code" placeholder="请输入故障代码" />
+        </el-form-item>
+        <el-form-item label="抑制判据" prop="restrainCriteria">
+          <el-input v-model="form.restrainCriteria" placeholder="请输入抑制判据" />
+        </el-form-item>
+        <el-form-item label="最少持续时间" prop="minDuration">
+          <el-input v-model="form.minDuration" placeholder="请输入最少持续时间" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFalseAlarmRestrainModel, getFalseAlarmRestrainModel, delFalseAlarmRestrainModel, addFalseAlarmRestrainModel, updateFalseAlarmRestrainModel } from "@/api/manage/falseAlarmRestrainModel";
+
+export default {
+  name: "FalseAlarmRestrainModel",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 虚警抑制模型表格数据
+      falseAlarmRestrainModelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        restrainCriteria: null,
+        minDuration: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询虚警抑制模型列表 */
+    getList() {
+      this.loading = true;
+      listFalseAlarmRestrainModel(this.queryParams).then(response => {
+        this.falseAlarmRestrainModelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        restrainCriteria: null,
+        minDuration: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加虚警抑制模型";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFalseAlarmRestrainModel(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改虚警抑制模型";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFalseAlarmRestrainModel(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFalseAlarmRestrainModel(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除虚警抑制模型编号为"' + ids + '"的数据项?').then(function() {
+        return delFalseAlarmRestrainModel(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/falseAlarmRestrainModel/export', {
+        ...this.queryParams
+      }, `falseAlarmRestrainModel_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 367 - 0
PHM-web/src/views/manage/faultAnalyzeResult/index.vue

@@ -0,0 +1,367 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="功能模块名称" prop="moduleName">
+        <el-input
+          v-model="queryParams.moduleName"
+          placeholder="请输入功能模块名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分析结果" prop="analyzeInfo">
+        <el-input
+          v-model="queryParams.analyzeInfo"
+          placeholder="请输入分析结果"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="批注,注解" prop="comment">
+        <el-input
+          v-model="queryParams.comment"
+          placeholder="请输入批注,注解"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:faultAnalyzeResult:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:faultAnalyzeResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:faultAnalyzeResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:faultAnalyzeResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="faultAnalyzeResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="功能模块名称" align="center" prop="moduleName" />
+      <el-table-column label="功能模块类型" align="center" prop="moduleType" />
+      <el-table-column label="分析结果" align="center" prop="analyzeInfo" />
+      <el-table-column label="批注,注解" align="center" prop="comment" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:faultAnalyzeResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:faultAnalyzeResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改故障分析结果对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="功能模块名称" prop="moduleName">
+          <el-input v-model="form.moduleName" placeholder="请输入功能模块名称" />
+        </el-form-item>
+        <el-form-item label="分析结果" prop="analyzeInfo">
+          <el-input v-model="form.analyzeInfo" placeholder="请输入分析结果" />
+        </el-form-item>
+        <el-form-item label="批注,注解" prop="comment">
+          <el-input v-model="form.comment" placeholder="请输入批注,注解" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFaultAnalyzeResult, getFaultAnalyzeResult, delFaultAnalyzeResult, addFaultAnalyzeResult, updateFaultAnalyzeResult } from "@/api/manage/faultAnalyzeResult";
+
+export default {
+  name: "FaultAnalyzeResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 故障分析结果表格数据
+      faultAnalyzeResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        moduleName: null,
+        moduleType: null,
+        analyzeInfo: null,
+        comment: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询故障分析结果列表 */
+    getList() {
+      this.loading = true;
+      listFaultAnalyzeResult(this.queryParams).then(response => {
+        this.faultAnalyzeResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        moduleName: null,
+        moduleType: null,
+        analyzeInfo: null,
+        comment: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加故障分析结果";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFaultAnalyzeResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改故障分析结果";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFaultAnalyzeResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFaultAnalyzeResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除故障分析结果编号为"' + ids + '"的数据项?').then(function() {
+        return delFaultAnalyzeResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/faultAnalyzeResult/export', {
+        ...this.queryParams
+      }, `faultAnalyzeResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 398 - 0
PHM-web/src/views/manage/faultCase/index.vue

@@ -0,0 +1,398 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="案例案例名称" prop="caseName">
+        <el-input
+          v-model="queryParams.caseName"
+          placeholder="请输入案例案例名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="案例编号" prop="caseNumber">
+        <el-input
+          v-model="queryParams.caseNumber"
+          placeholder="请输入案例编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="案例特征参数" prop="parameter">
+        <el-input
+          v-model="queryParams.parameter"
+          placeholder="请输入案例特征参数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障定位" prop="location">
+        <el-input
+          v-model="queryParams.location"
+          placeholder="请输入故障定位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="解决措施" prop="solution">
+        <el-input
+          v-model="queryParams.solution"
+          placeholder="请输入解决措施"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:faultCase:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:faultCase:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:faultCase:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:faultCase:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="faultCaseList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="案例案例名称" align="center" prop="caseName" />
+      <el-table-column label="故障描述" align="center" prop="description" />
+      <el-table-column label="案例编号" align="center" prop="caseNumber" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="案例特征参数" align="center" prop="parameter" />
+      <el-table-column label="故障定位" align="center" prop="location" />
+      <el-table-column label="解决措施" align="center" prop="solution" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:faultCase:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:faultCase:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改故障案例信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="案例案例名称" prop="caseName">
+          <el-input v-model="form.caseName" placeholder="请输入案例案例名称" />
+        </el-form-item>
+        <el-form-item label="故障描述" prop="description">
+          <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="案例编号" prop="caseNumber">
+          <el-input v-model="form.caseNumber" placeholder="请输入案例编号" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="案例特征参数" prop="parameter">
+          <el-input v-model="form.parameter" placeholder="请输入案例特征参数" />
+        </el-form-item>
+        <el-form-item label="故障定位" prop="location">
+          <el-input v-model="form.location" placeholder="请输入故障定位" />
+        </el-form-item>
+        <el-form-item label="解决措施" prop="solution">
+          <el-input v-model="form.solution" placeholder="请输入解决措施" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFaultCase, getFaultCase, delFaultCase, addFaultCase, updateFaultCase } from "@/api/manage/faultCase";
+
+export default {
+  name: "FaultCase",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 故障案例信息表格数据
+      faultCaseList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        caseName: null,
+        description: null,
+        caseNumber: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null,
+        parameter: null,
+        location: null,
+        solution: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询故障案例信息列表 */
+    getList() {
+      this.loading = true;
+      listFaultCase(this.queryParams).then(response => {
+        this.faultCaseList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        caseName: null,
+        description: null,
+        caseNumber: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null,
+        parameter: null,
+        location: null,
+        solution: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加故障案例信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFaultCase(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改故障案例信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFaultCase(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFaultCase(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除故障案例信息编号为"' + ids + '"的数据项?').then(function() {
+        return delFaultCase(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/faultCase/export', {
+        ...this.queryParams
+      }, `faultCase_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 322 - 0
PHM-web/src/views/manage/feedbackRawData/index.vue

@@ -0,0 +1,322 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:feedbackRawData:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:feedbackRawData:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:feedbackRawData:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:feedbackRawData:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="feedbackRawDataList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:feedbackRawData:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:feedbackRawData:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改反馈的源数据对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFeedbackRawData, getFeedbackRawData, delFeedbackRawData, addFeedbackRawData, updateFeedbackRawData } from "@/api/manage/feedbackRawData";
+
+export default {
+  name: "FeedbackRawData",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 反馈的源数据表格数据
+      feedbackRawDataList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询反馈的源数据列表 */
+    getList() {
+      this.loading = true;
+      listFeedbackRawData(this.queryParams).then(response => {
+        this.feedbackRawDataList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加反馈的源数据";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFeedbackRawData(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改反馈的源数据";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFeedbackRawData(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFeedbackRawData(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除反馈的源数据编号为"' + ids + '"的数据项?').then(function() {
+        return delFeedbackRawData(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/feedbackRawData/export', {
+        ...this.queryParams
+      }, `feedbackRawData_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 364 - 0
PHM-web/src/views/manage/fleet/index.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="机队名称" prop="fleetName">
+        <el-input
+          v-model="queryParams.fleetName"
+          placeholder="请输入机队名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="机队编号" prop="fleetCode">
+        <el-input
+          v-model="queryParams.fleetCode"
+          placeholder="请输入机队编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="飞机集合" prop="gather">
+        <el-input
+          v-model="queryParams.gather"
+          placeholder="请输入飞机集合"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:fleet:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:fleet:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:fleet:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:fleet:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="fleetList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="机队名称" align="center" prop="fleetName" />
+      <el-table-column label="机队编号" align="center" prop="fleetCode" />
+      <el-table-column label="飞机集合" align="center" prop="gather" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:fleet:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:fleet:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改机队信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="机队名称" prop="fleetName">
+          <el-input v-model="form.fleetName" placeholder="请输入机队名称" />
+        </el-form-item>
+        <el-form-item label="机队编号" prop="fleetCode">
+          <el-input v-model="form.fleetCode" placeholder="请输入机队编号" />
+        </el-form-item>
+        <el-form-item label="飞机集合" prop="gather">
+          <el-input v-model="form.gather" placeholder="请输入飞机集合" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFleet, getFleet, delFleet, addFleet, updateFleet } from "@/api/manage/fleet";
+
+export default {
+  name: "Fleet",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 机队信息表格数据
+      fleetList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        fleetName: null,
+        fleetCode: null,
+        gather: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询机队信息列表 */
+    getList() {
+      this.loading = true;
+      listFleet(this.queryParams).then(response => {
+        this.fleetList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        fleetName: null,
+        fleetCode: null,
+        gather: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加机队信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFleet(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改机队信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFleet(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFleet(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除机队信息编号为"' + ids + '"的数据项?').then(function() {
+        return delFleet(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/fleet/export', {
+        ...this.queryParams
+      }, `fleet_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 378 - 0
PHM-web/src/views/manage/forecastModel/index.vue

@@ -0,0 +1,378 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="预测对象" prop="object">
+        <el-input
+          v-model="queryParams.object"
+          placeholder="请输入预测对象"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="预测方法" prop="method">
+        <el-input
+          v-model="queryParams.method"
+          placeholder="请输入预测方法"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="训练集范围" prop="trainsRange">
+        <el-input
+          v-model="queryParams.trainsRange"
+          placeholder="请输入训练集范围"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="预测精度" prop="accuracy">
+        <el-input
+          v-model="queryParams.accuracy"
+          placeholder="请输入预测精度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:forecastModel:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:forecastModel:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:forecastModel:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:forecastModel:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="forecastModelList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="预测对象" align="center" prop="object" />
+      <el-table-column label="预测方法" align="center" prop="method" />
+      <el-table-column label="训练集范围" align="center" prop="trainsRange" />
+      <el-table-column label="预测精度" align="center" prop="accuracy" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:forecastModel:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:forecastModel:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改预测模型信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="预测对象" prop="object">
+          <el-input v-model="form.object" placeholder="请输入预测对象" />
+        </el-form-item>
+        <el-form-item label="预测方法" prop="method">
+          <el-input v-model="form.method" placeholder="请输入预测方法" />
+        </el-form-item>
+        <el-form-item label="训练集范围" prop="trainsRange">
+          <el-input v-model="form.trainsRange" placeholder="请输入训练集范围" />
+        </el-form-item>
+        <el-form-item label="预测精度" prop="accuracy">
+          <el-input v-model="form.accuracy" placeholder="请输入预测精度" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listForecastModel, getForecastModel, delForecastModel, addForecastModel, updateForecastModel } from "@/api/manage/forecastModel";
+
+export default {
+  name: "ForecastModel",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 预测模型信息表格数据
+      forecastModelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        object: null,
+        method: null,
+        trainsRange: null,
+        accuracy: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询预测模型信息列表 */
+    getList() {
+      this.loading = true;
+      listForecastModel(this.queryParams).then(response => {
+        this.forecastModelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        object: null,
+        method: null,
+        trainsRange: null,
+        accuracy: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加预测模型信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getForecastModel(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改预测模型信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateForecastModel(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addForecastModel(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除预测模型信息编号为"' + ids + '"的数据项?').then(function() {
+        return delForecastModel(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/forecastModel/export', {
+        ...this.queryParams
+      }, `forecastModel_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 392 - 0
PHM-web/src/views/manage/groundDiagnosisModel/index.vue

@@ -0,0 +1,392 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="事件代码" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入事件代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="判据" prop="criteria">
+        <el-input
+          v-model="queryParams.criteria"
+          placeholder="请输入判据"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="最少持续时间" prop="minDuration">
+        <el-input
+          v-model="queryParams.minDuration"
+          placeholder="请输入最少持续时间"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所属系统" prop="systemSource">
+        <el-input
+          v-model="queryParams.systemSource"
+          placeholder="请输入所属系统"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所属LRU" prop="lruSource">
+        <el-input
+          v-model="queryParams.lruSource"
+          placeholder="请输入所属LRU"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:groundDiagnosisModel:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:groundDiagnosisModel:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:groundDiagnosisModel:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:groundDiagnosisModel:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="groundDiagnosisModelList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="事件代码" align="center" prop="code" />
+      <el-table-column label="判据" align="center" prop="criteria" />
+      <el-table-column label="最少持续时间" align="center" prop="minDuration" />
+      <el-table-column label="所属系统" align="center" prop="systemSource" />
+      <el-table-column label="所属LRU" align="center" prop="lruSource" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:groundDiagnosisModel:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:groundDiagnosisModel:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改地面诊断模型信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="事件代码" prop="code">
+          <el-input v-model="form.code" placeholder="请输入事件代码" />
+        </el-form-item>
+        <el-form-item label="判据" prop="criteria">
+          <el-input v-model="form.criteria" placeholder="请输入判据" />
+        </el-form-item>
+        <el-form-item label="最少持续时间" prop="minDuration">
+          <el-input v-model="form.minDuration" placeholder="请输入最少持续时间" />
+        </el-form-item>
+        <el-form-item label="所属系统" prop="systemSource">
+          <el-input v-model="form.systemSource" placeholder="请输入所属系统" />
+        </el-form-item>
+        <el-form-item label="所属LRU" prop="lruSource">
+          <el-input v-model="form.lruSource" placeholder="请输入所属LRU" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listGroundDiagnosisModel, getGroundDiagnosisModel, delGroundDiagnosisModel, addGroundDiagnosisModel, updateGroundDiagnosisModel } from "@/api/manage/groundDiagnosisModel";
+
+export default {
+  name: "GroundDiagnosisModel",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 地面诊断模型信息表格数据
+      groundDiagnosisModelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        criteria: null,
+        minDuration: null,
+        systemSource: null,
+        lruSource: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询地面诊断模型信息列表 */
+    getList() {
+      this.loading = true;
+      listGroundDiagnosisModel(this.queryParams).then(response => {
+        this.groundDiagnosisModelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        criteria: null,
+        minDuration: null,
+        systemSource: null,
+        lruSource: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加地面诊断模型信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getGroundDiagnosisModel(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改地面诊断模型信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateGroundDiagnosisModel(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addGroundDiagnosisModel(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除地面诊断模型信息编号为"' + ids + '"的数据项?').then(function() {
+        return delGroundDiagnosisModel(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/groundDiagnosisModel/export', {
+        ...this.queryParams
+      }, `groundDiagnosisModel_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 382 - 0
PHM-web/src/views/manage/importExportLog/index.vue

@@ -0,0 +1,382 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="模块名称" prop="modelName">
+        <el-input
+          v-model="queryParams.modelName"
+          placeholder="请输入模块名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="文件名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入文件名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="错误信息" prop="error">
+        <el-input
+          v-model="queryParams.error"
+          placeholder="请输入错误信息"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:importExportLog:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:importExportLog:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:importExportLog:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:importExportLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="importExportLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="模块名称" align="center" prop="modelName" />
+      <el-table-column label="文件名称" align="center" prop="name" />
+      <el-table-column label="错误信息" align="center" prop="error" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:importExportLog:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:importExportLog:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改导入导出日志;对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="模块名称" prop="modelName">
+          <el-input v-model="form.modelName" placeholder="请输入模块名称" />
+        </el-form-item>
+        <el-form-item label="文件名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入文件名称" />
+        </el-form-item>
+        <el-form-item label="错误信息" prop="error">
+          <el-input v-model="form.error" placeholder="请输入错误信息" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listImportExportLog, getImportExportLog, delImportExportLog, addImportExportLog, updateImportExportLog } from "@/api/manage/importExportLog";
+
+export default {
+  name: "ImportExportLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 导入导出日志;表格数据
+      importExportLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        modelName: null,
+        name: null,
+        error: null,
+        status: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        status: [
+          { required: true, message: "状态不能为空", trigger: "change" }
+        ],
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+        createdBy: [
+          { required: true, message: "创建人不能为空", trigger: "blur" }
+        ],
+        createdTime: [
+          { required: true, message: "创建时间不能为空", trigger: "blur" }
+        ],
+        updatedBy: [
+          { required: true, message: "更新人不能为空", trigger: "blur" }
+        ],
+        updatedTime: [
+          { required: true, message: "更新时间不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询导入导出日志;列表 */
+    getList() {
+      this.loading = true;
+      listImportExportLog(this.queryParams).then(response => {
+        this.importExportLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        modelName: null,
+        name: null,
+        error: null,
+        status: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加导入导出日志;";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getImportExportLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改导入导出日志;";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateImportExportLog(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addImportExportLog(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除导入导出日志;编号为"' + ids + '"的数据项?').then(function() {
+        return delImportExportLog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/importExportLog/export', {
+        ...this.queryParams
+      }, `importExportLog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 342 - 0
PHM-web/src/views/manage/instructionInfo/index.vue

@@ -0,0 +1,342 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="指令属性" prop="attribute">
+        <el-input
+          v-model="queryParams.attribute"
+          placeholder="请输入指令属性"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:instructionInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:instructionInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:instructionInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:instructionInfo:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="instructionInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="指令属性" align="center" prop="attribute" />
+      <el-table-column label="指令内容" align="center" prop="content" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:instructionInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:instructionInfo:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改指令信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="指令属性" prop="attribute">
+          <el-input v-model="form.attribute" placeholder="请输入指令属性" />
+        </el-form-item>
+        <el-form-item label="指令内容">
+          <editor v-model="form.content" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listInstructionInfo, getInstructionInfo, delInstructionInfo, addInstructionInfo, updateInstructionInfo } from "@/api/manage/instructionInfo";
+
+export default {
+  name: "InstructionInfo",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 指令信息表格数据
+      instructionInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        attribute: null,
+        content: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询指令信息列表 */
+    getList() {
+      this.loading = true;
+      listInstructionInfo(this.queryParams).then(response => {
+        this.instructionInfoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        attribute: null,
+        content: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加指令信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getInstructionInfo(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改指令信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateInstructionInfo(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addInstructionInfo(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除指令信息编号为"' + ids + '"的数据项?').then(function() {
+        return delInstructionInfo(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/instructionInfo/export', {
+        ...this.queryParams
+      }, `instructionInfo_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 406 - 0
PHM-web/src/views/manage/maintenance/index.vue

@@ -0,0 +1,406 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="维护代码" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入维护代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="信息描述" prop="description">
+        <el-input
+          v-model="queryParams.description"
+          placeholder="请输入信息描述"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="等级" prop="grade">
+        <el-input
+          v-model="queryParams.grade"
+          placeholder="请输入等级"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障源" prop="faultSource">
+        <el-input
+          v-model="queryParams.faultSource"
+          placeholder="请输入故障源"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="处理措施" prop="treatmentMeasure">
+        <el-input
+          v-model="queryParams.treatmentMeasure"
+          placeholder="请输入处理措施"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障代码" prop="faultCode">
+        <el-input
+          v-model="queryParams.faultCode"
+          placeholder="请输入故障代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:maintenance:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:maintenance:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:maintenance:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:maintenance:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="maintenanceList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="维护代码" align="center" prop="code" />
+      <el-table-column label="信息描述" align="center" prop="description" />
+      <el-table-column label="等级" align="center" prop="grade" />
+      <el-table-column label="故障源" align="center" prop="faultSource" />
+      <el-table-column label="处理措施" align="center" prop="treatmentMeasure" />
+      <el-table-column label="故障代码" align="center" prop="faultCode" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:maintenance:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:maintenance:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改维护信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="维护代码" prop="code">
+          <el-input v-model="form.code" placeholder="请输入维护代码" />
+        </el-form-item>
+        <el-form-item label="信息描述" prop="description">
+          <el-input v-model="form.description" placeholder="请输入信息描述" />
+        </el-form-item>
+        <el-form-item label="等级" prop="grade">
+          <el-input v-model="form.grade" placeholder="请输入等级" />
+        </el-form-item>
+        <el-form-item label="故障源" prop="faultSource">
+          <el-input v-model="form.faultSource" placeholder="请输入故障源" />
+        </el-form-item>
+        <el-form-item label="处理措施" prop="treatmentMeasure">
+          <el-input v-model="form.treatmentMeasure" placeholder="请输入处理措施" />
+        </el-form-item>
+        <el-form-item label="故障代码" prop="faultCode">
+          <el-input v-model="form.faultCode" placeholder="请输入故障代码" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listMaintenance, getMaintenance, delMaintenance, addMaintenance, updateMaintenance } from "@/api/manage/maintenance";
+
+export default {
+  name: "Maintenance",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 维护信息表格数据
+      maintenanceList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        description: null,
+        grade: null,
+        faultSource: null,
+        treatmentMeasure: null,
+        faultCode: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询维护信息列表 */
+    getList() {
+      this.loading = true;
+      listMaintenance(this.queryParams).then(response => {
+        this.maintenanceList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        description: null,
+        grade: null,
+        faultSource: null,
+        treatmentMeasure: null,
+        faultCode: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加维护信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getMaintenance(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改维护信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateMaintenance(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMaintenance(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除维护信息编号为"' + ids + '"的数据项?').then(function() {
+        return delMaintenance(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/maintenance/export', {
+        ...this.queryParams
+      }, `maintenance_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 406 - 0
PHM-web/src/views/manage/maintenanceTestControl/index.vue

@@ -0,0 +1,406 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="维修控制信息" prop="maintenanceControl">
+        <el-input
+          v-model="queryParams.maintenanceControl"
+          placeholder="请输入维修控制信息"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="对象" prop="object">
+        <el-input
+          v-model="queryParams.object"
+          placeholder="请输入对象"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="程序文件" prop="applicationDoc">
+        <el-input
+          v-model="queryParams.applicationDoc"
+          placeholder="请输入程序文件"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障数据" prop="faultData">
+        <el-input
+          v-model="queryParams.faultData"
+          placeholder="请输入故障数据"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="版本" prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="请输入版本"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:maintenanceTestControl:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:maintenanceTestControl:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:maintenanceTestControl:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:maintenanceTestControl:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="maintenanceTestControlList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="维修控制信息" align="center" prop="maintenanceControl" />
+      <el-table-column label="对象" align="center" prop="object" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="程序文件" align="center" prop="applicationDoc" />
+      <el-table-column label="故障数据" align="center" prop="faultData" />
+      <el-table-column label="版本" align="center" prop="version" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:maintenanceTestControl:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:maintenanceTestControl:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改维修测试控制对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="维修控制信息" prop="maintenanceControl">
+          <el-input v-model="form.maintenanceControl" placeholder="请输入维修控制信息" />
+        </el-form-item>
+        <el-form-item label="对象" prop="object">
+          <el-input v-model="form.object" placeholder="请输入对象" />
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="程序文件" prop="applicationDoc">
+          <el-input v-model="form.applicationDoc" placeholder="请输入程序文件" />
+        </el-form-item>
+        <el-form-item label="故障数据" prop="faultData">
+          <el-input v-model="form.faultData" placeholder="请输入故障数据" />
+        </el-form-item>
+        <el-form-item label="版本" prop="version">
+          <el-input v-model="form.version" placeholder="请输入版本" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listMaintenanceTestControl, getMaintenanceTestControl, delMaintenanceTestControl, addMaintenanceTestControl, updateMaintenanceTestControl } from "@/api/manage/maintenanceTestControl";
+
+export default {
+  name: "MaintenanceTestControl",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 维修测试控制表格数据
+      maintenanceTestControlList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        maintenanceControl: null,
+        object: null,
+        name: null,
+        applicationDoc: null,
+        faultData: null,
+        version: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询维修测试控制列表 */
+    getList() {
+      this.loading = true;
+      listMaintenanceTestControl(this.queryParams).then(response => {
+        this.maintenanceTestControlList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        maintenanceControl: null,
+        object: null,
+        name: null,
+        applicationDoc: null,
+        faultData: null,
+        version: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加维修测试控制";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getMaintenanceTestControl(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改维修测试控制";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateMaintenanceTestControl(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMaintenanceTestControl(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除维修测试控制编号为"' + ids + '"的数据项?').then(function() {
+        return delMaintenanceTestControl(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/maintenanceTestControl/export', {
+        ...this.queryParams
+      }, `maintenanceTestControl_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 378 - 0
PHM-web/src/views/manage/monitorParameterConfig/index.vue

@@ -0,0 +1,378 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="参数名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入参数名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="总线协议" prop="busRotocol">
+        <el-input
+          v-model="queryParams.busRotocol"
+          placeholder="请输入总线协议"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据块" prop="dataBlock">
+        <el-input
+          v-model="queryParams.dataBlock"
+          placeholder="请输入数据块"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据字" prop="dataWord">
+        <el-input
+          v-model="queryParams.dataWord"
+          placeholder="请输入数据字"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:monitorParameterConfig:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:monitorParameterConfig:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:monitorParameterConfig:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:monitorParameterConfig:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="monitorParameterConfigList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="参数名称" align="center" prop="name" />
+      <el-table-column label="总线协议" align="center" prop="busRotocol" />
+      <el-table-column label="数据块" align="center" prop="dataBlock" />
+      <el-table-column label="数据字" align="center" prop="dataWord" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:monitorParameterConfig:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:monitorParameterConfig:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改状态监控参数配置信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="参数名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入参数名称" />
+        </el-form-item>
+        <el-form-item label="总线协议" prop="busRotocol">
+          <el-input v-model="form.busRotocol" placeholder="请输入总线协议" />
+        </el-form-item>
+        <el-form-item label="数据块" prop="dataBlock">
+          <el-input v-model="form.dataBlock" placeholder="请输入数据块" />
+        </el-form-item>
+        <el-form-item label="数据字" prop="dataWord">
+          <el-input v-model="form.dataWord" placeholder="请输入数据字" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listMonitorParameterConfig, getMonitorParameterConfig, delMonitorParameterConfig, addMonitorParameterConfig, updateMonitorParameterConfig } from "@/api/manage/monitorParameterConfig";
+
+export default {
+  name: "MonitorParameterConfig",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 状态监控参数配置信息表格数据
+      monitorParameterConfigList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        busRotocol: null,
+        dataBlock: null,
+        dataWord: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询状态监控参数配置信息列表 */
+    getList() {
+      this.loading = true;
+      listMonitorParameterConfig(this.queryParams).then(response => {
+        this.monitorParameterConfigList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        busRotocol: null,
+        dataBlock: null,
+        dataWord: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加状态监控参数配置信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getMonitorParameterConfig(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改状态监控参数配置信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateMonitorParameterConfig(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMonitorParameterConfig(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除状态监控参数配置信息编号为"' + ids + '"的数据项?').then(function() {
+        return delMonitorParameterConfig(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/monitorParameterConfig/export', {
+        ...this.queryParams
+      }, `monitorParameterConfig_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 406 - 0
PHM-web/src/views/manage/performanceMonitorModel/index.vue

@@ -0,0 +1,406 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="监测对象" prop="object">
+        <el-input
+          v-model="queryParams.object"
+          placeholder="请输入监测对象"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="监测参数" prop="parameter">
+        <el-input
+          v-model="queryParams.parameter"
+          placeholder="请输入监测参数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态条件" prop="stateCondition">
+        <el-input
+          v-model="queryParams.stateCondition"
+          placeholder="请输入状态条件"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="取值方法" prop="valueMethod">
+        <el-input
+          v-model="queryParams.valueMethod"
+          placeholder="请输入取值方法"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="警戒值" prop="alarmValue">
+        <el-input
+          v-model="queryParams.alarmValue"
+          placeholder="请输入警戒值"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="门限值" prop="thresholdValue">
+        <el-input
+          v-model="queryParams.thresholdValue"
+          placeholder="请输入门限值"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:performanceMonitorModel:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:performanceMonitorModel:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:performanceMonitorModel:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:performanceMonitorModel:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="performanceMonitorModelList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="监测对象" align="center" prop="object" />
+      <el-table-column label="监测参数" align="center" prop="parameter" />
+      <el-table-column label="状态条件" align="center" prop="stateCondition" />
+      <el-table-column label="取值方法" align="center" prop="valueMethod" />
+      <el-table-column label="警戒值" align="center" prop="alarmValue" />
+      <el-table-column label="门限值" align="center" prop="thresholdValue" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:performanceMonitorModel:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:performanceMonitorModel:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改性能监测模型信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="监测对象" prop="object">
+          <el-input v-model="form.object" placeholder="请输入监测对象" />
+        </el-form-item>
+        <el-form-item label="监测参数" prop="parameter">
+          <el-input v-model="form.parameter" placeholder="请输入监测参数" />
+        </el-form-item>
+        <el-form-item label="状态条件" prop="stateCondition">
+          <el-input v-model="form.stateCondition" placeholder="请输入状态条件" />
+        </el-form-item>
+        <el-form-item label="取值方法" prop="valueMethod">
+          <el-input v-model="form.valueMethod" placeholder="请输入取值方法" />
+        </el-form-item>
+        <el-form-item label="警戒值" prop="alarmValue">
+          <el-input v-model="form.alarmValue" placeholder="请输入警戒值" />
+        </el-form-item>
+        <el-form-item label="门限值" prop="thresholdValue">
+          <el-input v-model="form.thresholdValue" placeholder="请输入门限值" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPerformanceMonitorModel, getPerformanceMonitorModel, delPerformanceMonitorModel, addPerformanceMonitorModel, updatePerformanceMonitorModel } from "@/api/manage/performanceMonitorModel";
+
+export default {
+  name: "PerformanceMonitorModel",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 性能监测模型信息表格数据
+      performanceMonitorModelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        object: null,
+        parameter: null,
+        stateCondition: null,
+        valueMethod: null,
+        alarmValue: null,
+        thresholdValue: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询性能监测模型信息列表 */
+    getList() {
+      this.loading = true;
+      listPerformanceMonitorModel(this.queryParams).then(response => {
+        this.performanceMonitorModelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        object: null,
+        parameter: null,
+        stateCondition: null,
+        valueMethod: null,
+        alarmValue: null,
+        thresholdValue: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加性能监测模型信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPerformanceMonitorModel(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改性能监测模型信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePerformanceMonitorModel(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPerformanceMonitorModel(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除性能监测模型信息编号为"' + ids + '"的数据项?').then(function() {
+        return delPerformanceMonitorModel(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/performanceMonitorModel/export', {
+        ...this.queryParams
+      }, `performanceMonitorModel_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 322 - 0
PHM-web/src/views/manage/preHandleResult/index.vue

@@ -0,0 +1,322 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:preHandleResult:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:preHandleResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:preHandleResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:preHandleResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="preHandleResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:preHandleResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:preHandleResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据预处理结果对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPreHandleResult, getPreHandleResult, delPreHandleResult, addPreHandleResult, updatePreHandleResult } from "@/api/manage/preHandleResult";
+
+export default {
+  name: "PreHandleResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 数据预处理结果表格数据
+      preHandleResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询数据预处理结果列表 */
+    getList() {
+      this.loading = true;
+      listPreHandleResult(this.queryParams).then(response => {
+        this.preHandleResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据预处理结果";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPreHandleResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据预处理结果";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePreHandleResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPreHandleResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除数据预处理结果编号为"' + ids + '"的数据项?').then(function() {
+        return delPreHandleResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/preHandleResult/export', {
+        ...this.queryParams
+      }, `preHandleResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 374 - 0
PHM-web/src/views/manage/product/index.vue

@@ -0,0 +1,374 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="父ID" prop="parentId">
+        <el-input
+          v-model="queryParams.parentId"
+          placeholder="请输入父ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="产品名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入产品名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="SNS编号" prop="snsId">
+        <el-input
+          v-model="queryParams.snsId"
+          placeholder="请输入SNS编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+	    <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:product:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-sort"
+          size="mini"
+          @click="toggleExpandAll"
+        >展开/折叠</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table
+      v-if="refreshTable"
+      v-loading="loading"
+      :data="productList"
+      row-key="id"
+      :default-expand-all="isExpandAll"
+      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+    >
+      <el-table-column label="父ID" prop="parentId" />
+      <el-table-column label="产品名称" align="center" prop="name" />
+      <el-table-column label="SNS编号" align="center" prop="snsId" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:product:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-plus"
+            @click="handleAdd(scope.row)"
+            v-hasPermi="['manage:product:add']"
+          >新增</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:product:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 添加或修改产品树信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="父ID" prop="parentId">
+          <treeselect v-model="form.parentId" :options="productOptions" :normalizer="normalizer" placeholder="请选择父ID" />
+        </el-form-item>
+        <el-form-item label="产品名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入产品名称" />
+        </el-form-item>
+        <el-form-item label="SNS编号" prop="snsId">
+          <el-input v-model="form.snsId" placeholder="请输入SNS编号" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listProduct, getProduct, delProduct, addProduct, updateProduct } from "@/api/manage/product";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Product",
+  components: {
+    Treeselect
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 产品树信息表格数据
+      productList: [],
+      // 产品树信息树选项
+      productOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 是否展开,默认全部展开
+      isExpandAll: true,
+      // 重新渲染表格状态
+      refreshTable: true,
+      // 查询参数
+      queryParams: {
+        parentId: null,
+        name: null,
+        snsId: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        parentId: [
+          { required: true, message: "父ID不能为空", trigger: "blur" }
+        ],
+        name: [
+          { required: true, message: "产品名称不能为空", trigger: "blur" }
+        ],
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询产品树信息列表 */
+    getList() {
+      this.loading = true;
+      listProduct(this.queryParams).then(response => {
+        this.productList = this.handleTree(response.data, "id", "parentId");
+        this.loading = false;
+      });
+    },
+    /** 转换产品树信息数据结构 */
+    normalizer(node) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.id,
+        label: node.name,
+        children: node.children
+      };
+    },
+	/** 查询产品树信息下拉树结构 */
+    getTreeselect() {
+      listProduct().then(response => {
+        this.productOptions = [];
+        const data = { id: 0, name: '顶级节点', children: [] };
+        data.children = this.handleTree(response.data, "id", "parentId");
+        this.productOptions.push(data);
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        parentId: null,
+        name: null,
+        snsId: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd(row) {
+      this.reset();
+      this.getTreeselect();
+      if (row != null && row.id) {
+        this.form.parentId = row.id;
+      } else {
+        this.form.parentId = 0;
+      }
+      this.open = true;
+      this.title = "添加产品树信息";
+    },
+    /** 展开/折叠操作 */
+    toggleExpandAll() {
+      this.refreshTable = false;
+      this.isExpandAll = !this.isExpandAll;
+      this.$nextTick(() => {
+        this.refreshTable = true;
+      });
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getTreeselect();
+      if (row != null) {
+        this.form.parentId = row.id;
+      }
+      getProduct(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改产品树信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateProduct(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addProduct(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$modal.confirm('是否确认删除产品树信息编号为"' + row.id + '"的数据项?').then(function() {
+        return delProduct(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    }
+  }
+};
+</script>

+ 350 - 0
PHM-web/src/views/manage/softwareConfig/index.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="软件序号" prop="serialNumber">
+        <el-input
+          v-model="queryParams.serialNumber"
+          placeholder="请输入软件序号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="软件名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入软件名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:softwareConfig:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:softwareConfig:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:softwareConfig:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:softwareConfig:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="softwareConfigList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="软件序号" align="center" prop="serialNumber" />
+      <el-table-column label="软件名称" align="center" prop="name" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:softwareConfig:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:softwareConfig:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改软件配置库信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="软件序号" prop="serialNumber">
+          <el-input v-model="form.serialNumber" placeholder="请输入软件序号" />
+        </el-form-item>
+        <el-form-item label="软件名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入软件名称" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSoftwareConfig, getSoftwareConfig, delSoftwareConfig, addSoftwareConfig, updateSoftwareConfig } from "@/api/manage/softwareConfig";
+
+export default {
+  name: "SoftwareConfig",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 软件配置库信息表格数据
+      softwareConfigList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serialNumber: null,
+        name: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询软件配置库信息列表 */
+    getList() {
+      this.loading = true;
+      listSoftwareConfig(this.queryParams).then(response => {
+        this.softwareConfigList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        serialNumber: null,
+        name: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加软件配置库信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSoftwareConfig(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改软件配置库信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSoftwareConfig(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSoftwareConfig(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除软件配置库信息编号为"' + ids + '"的数据项?').then(function() {
+        return delSoftwareConfig(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/softwareConfig/export', {
+        ...this.queryParams
+      }, `softwareConfig_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 392 - 0
PHM-web/src/views/manage/sortie/index.vue

@@ -0,0 +1,392 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="机号" prop="aircraftNumber">
+        <el-input
+          v-model="queryParams.aircraftNumber"
+          placeholder="请输入机号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="架次号" prop="sortieNumber">
+        <el-input
+          v-model="queryParams.sortieNumber"
+          placeholder="请输入架次号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="开始时间" prop="startTime">
+        <el-input
+          v-model="queryParams.startTime"
+          placeholder="请输入开始时间"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-input
+          v-model="queryParams.endTime"
+          placeholder="请输入结束时间"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="飞行时长" prop="duration">
+        <el-input
+          v-model="queryParams.duration"
+          placeholder="请输入飞行时长"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据是否删除" prop="isDelete">
+        <el-input
+          v-model="queryParams.isDelete"
+          placeholder="请输入数据是否删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createdBy">
+        <el-input
+          v-model="queryParams.createdBy"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createdTime">
+        <el-date-picker clearable
+          v-model="queryParams.createdTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updatedBy">
+        <el-input
+          v-model="queryParams.updatedBy"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updatedTime">
+        <el-date-picker clearable
+          v-model="queryParams.updatedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:sortie:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:sortie:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:sortie:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:sortie:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="sortieList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="机号" align="center" prop="aircraftNumber" />
+      <el-table-column label="架次号" align="center" prop="sortieNumber" />
+      <el-table-column label="开始时间" align="center" prop="startTime" />
+      <el-table-column label="结束时间" align="center" prop="endTime" />
+      <el-table-column label="飞行时长" align="center" prop="duration" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createdBy" />
+      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updatedBy" />
+      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:sortie:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:sortie:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改架次信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="机号" prop="aircraftNumber">
+          <el-input v-model="form.aircraftNumber" placeholder="请输入机号" />
+        </el-form-item>
+        <el-form-item label="架次号" prop="sortieNumber">
+          <el-input v-model="form.sortieNumber" placeholder="请输入架次号" />
+        </el-form-item>
+        <el-form-item label="开始时间" prop="startTime">
+          <el-input v-model="form.startTime" placeholder="请输入开始时间" />
+        </el-form-item>
+        <el-form-item label="结束时间" prop="endTime">
+          <el-input v-model="form.endTime" placeholder="请输入结束时间" />
+        </el-form-item>
+        <el-form-item label="飞行时长" prop="duration">
+          <el-input v-model="form.duration" placeholder="请输入飞行时长" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createdBy">
+          <el-input v-model="form.createdBy" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdTime">
+          <el-date-picker clearable
+            v-model="form.createdTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updatedBy">
+          <el-input v-model="form.updatedBy" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="updatedTime">
+          <el-date-picker clearable
+            v-model="form.updatedTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSortie, getSortie, delSortie, addSortie, updateSortie } from "@/api/manage/sortie";
+
+export default {
+  name: "Sortie",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 架次信息表格数据
+      sortieList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        aircraftNumber: null,
+        sortieNumber: null,
+        startTime: null,
+        endTime: null,
+        duration: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询架次信息列表 */
+    getList() {
+      this.loading = true;
+      listSortie(this.queryParams).then(response => {
+        this.sortieList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        aircraftNumber: null,
+        sortieNumber: null,
+        startTime: null,
+        endTime: null,
+        duration: null,
+        isDelete: null,
+        createdBy: null,
+        createdTime: null,
+        updatedBy: null,
+        updatedTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加架次信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSortie(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改架次信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSortie(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSortie(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除架次信息编号为"' + ids + '"的数据项?').then(function() {
+        return delSortie(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/sortie/export', {
+        ...this.queryParams
+      }, `sortie_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 1 - 1
PHM-web/vue.config.js

@@ -35,7 +35,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:8080`,
+        target: `http://192.168.0.104:8080`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''