Gaokun Wang hace 7 meses
padre
commit
fb432eacdd
Se han modificado 100 ficheros con 4262 adiciones y 427 borrados
  1. 1 2
      .env.development
  2. 1 1
      .env.production
  3. 101 0
      package-lock.json
  4. 1 0
      package.json
  5. 1 1
      public/index.html
  6. 8 0
      src/api/basicData/dataAircraftCataloging.js
  7. 9 0
      src/api/basicData/dataSailingMaterialClassification.js
  8. 9 0
      src/api/basicData/dataSailingMaterialMaterialCoding.js
  9. 9 0
      src/api/basicData/dataSailingMaterialPrice.js
  10. 18 0
      src/api/basicData/dataSpecies.js
  11. 37 0
      src/api/carrierStandard/carrierComputationalModel.js
  12. 23 0
      src/api/carrierStandard/carrierListExecutionRegistration.js
  13. 58 0
      src/api/carrierStandard/carrierListMachineryPreparation.js
  14. 53 0
      src/api/carrierStandard/carrierSailingMaterialConsumeRecord.js
  15. 17 0
      src/api/carrierStandard/carrierSailingMaterialConsumeRegularities.js
  16. 2 2
      src/api/home.js
  17. 26 0
      src/api/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize.js
  18. 11 0
      src/api/statisticalAnalysis/statisticalAnalysisSailingMaterialSpareParts.js
  19. 11 0
      src/api/system/Inventory.js
  20. 15 0
      src/api/system/Version.js
  21. 91 0
      src/api/system/ability.js
  22. 11 0
      src/api/system/authority.js
  23. 60 0
      src/api/system/build/attachment.js
  24. 5 0
      src/api/system/build/dataquery.js
  25. 5 0
      src/api/system/build/lntelligentverification.js
  26. 30 0
      src/api/system/build/main.js
  27. 11 0
      src/api/system/build/sysBackup.js
  28. 21 0
      src/api/system/config.js
  29. 45 0
      src/api/system/contract.js
  30. 6 0
      src/api/system/data.js
  31. 46 0
      src/api/system/deploy.js
  32. 36 0
      src/api/system/dict/data.js
  33. 41 0
      src/api/system/dict/type.js
  34. 41 0
      src/api/system/document.js
  35. 6 0
      src/api/system/equipmentProfession.js
  36. 25 0
      src/api/system/menuJurisdiction.js
  37. 162 0
      src/api/system/model.js
  38. 67 0
      src/api/system/org.js
  39. 61 0
      src/api/system/powersetupdialog.js
  40. 104 0
      src/api/system/price.js
  41. 10 0
      src/api/system/profession.js
  42. 85 0
      src/api/system/standard.js
  43. 143 0
      src/api/system/supplies.js
  44. 55 0
      src/api/system/supply.js
  45. 11 0
      src/api/system/systemLog/index.js
  46. 107 0
      src/api/task/carrierFlightMission.js
  47. 0 7
      src/assets/font/iconfont.js
  48. 4 0
      src/components/AddUserDialog/index.vue
  49. 50 0
      src/components/FittingsModal/index.js
  50. 0 0
      src/components/FittingsModal/index.scss
  51. 91 0
      src/components/FittingsModal/index.vue
  52. 39 9
      src/components/LTable/index.vue
  53. 0 1
      src/components/TagsView/index.vue
  54. 45 0
      src/components/WUploadBtn/index.js
  55. 0 0
      src/components/WUploadBtn/index.scss
  56. 57 0
      src/components/WUploadBtn/index.vue
  57. 51 0
      src/components/aviationMaterialsModal/index.js
  58. 0 0
      src/components/aviationMaterialsModal/index.scss
  59. 111 0
      src/components/aviationMaterialsModal/index.vue
  60. 1 84
      src/http/axios.js
  61. 11 71
      src/http/index.js
  62. 2 7
      src/main.js
  63. 56 38
      src/router/modules/basicData.js
  64. 388 0
      src/router/modules/carrierStandard.js
  65. 55 0
      src/router/modules/safeguard.js
  66. 88 0
      src/router/modules/statisticalAnalysis.js
  67. 50 30
      src/router/modules/system.js
  68. 63 0
      src/router/modules/task.js
  69. 9 17
      src/router/private-routes.js
  70. 0 16
      src/router/public-routes.js
  71. 0 1
      src/utils/dataDict.js
  72. 6 4
      src/utils/route.js
  73. 70 0
      src/views/basicData/dataAircraftCataloging/importDialog/index.vue
  74. 8 5
      src/views/basicData/dataAircraftCataloging/index.js
  75. 1 1
      src/views/basicData/dataAircraftCataloging/index.scss
  76. 52 10
      src/views/basicData/dataAircraftCataloging/index.vue
  77. 38 38
      src/views/basicData/dataEnvironment/index.js
  78. 2 2
      src/views/basicData/dataEnvironment/index.vue
  79. 2 1
      src/views/basicData/dataEnvironment/src/regularitiesChoose.vue
  80. 10 4
      src/views/basicData/dataEnvironment/suitableSpareParts.js
  81. 1 1
      src/views/basicData/dataEnvironment/suitableSpareParts.vue
  82. 69 0
      src/views/basicData/dataSailingMaterialClassification/importDialog/index.vue
  83. 48 24
      src/views/basicData/dataSailingMaterialClassification/index.vue
  84. 70 0
      src/views/basicData/dataSailingMaterialMaterialCoding/importDialog/index.vue
  85. 6 6
      src/views/basicData/dataSailingMaterialMaterialCoding/index.js
  86. 47 7
      src/views/basicData/dataSailingMaterialMaterialCoding/index.vue
  87. 71 0
      src/views/basicData/dataSailingMaterialMaterialCodingAviation/importDialog/index.vue
  88. 5 5
      src/views/basicData/dataSailingMaterialMaterialCodingAviation/index.js
  89. 45 6
      src/views/basicData/dataSailingMaterialMaterialCodingAviation/index.vue
  90. 70 0
      src/views/basicData/dataSailingMaterialPrice/importDialog/index.vue
  91. 42 6
      src/views/basicData/dataSailingMaterialPrice/index.vue
  92. 69 0
      src/views/basicData/dataSpecies/importDialog/index.vue
  93. 43 6
      src/views/basicData/dataSpecies/index.vue
  94. 69 0
      src/views/basicData/dataType/importDialog/index.vue
  95. 40 14
      src/views/basicData/dataType/index.vue
  96. 184 0
      src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.js
  97. 75 0
      src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.scss
  98. 109 0
      src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.vue
  99. 122 0
      src/views/carrierStandard/carrierAllAudit/index.js
  100. 21 0
      src/views/carrierStandard/carrierAllAudit/index.scss

+ 1 - 2
.env.development

@@ -3,7 +3,6 @@ ENV = 'development'
 #base api 
 
 # 开发环境
-
 VUE_APP_BASE_API ='/api'
 
-VUE_APP_BASE_API_target ='http://127.0.0.1:8081'
+VUE_APP_BASE_API_target ='http://localhost:8080'

+ 1 - 1
.env.production

@@ -6,4 +6,4 @@ ENV = 'production'
 
 VUE_APP_BASE_API ='/api'
 
-VUE_APP_BASE_API_target ='http://192.168.5.86:8080' # 生产环境地址
+VUE_APP_BASE_API_target ='http://192.168.5.18:8080' # 生产环境地址

+ 101 - 0
package-lock.json

@@ -10,6 +10,7 @@
       "dependencies": {
         "@grapecity/spread-sheets": "^15.1.1",
         "@grapecity/spread-sheets-vue": "^15.1.1",
+        "@jiaminghi/data-view": "^2.10.0",
         "@riophae/vue-treeselect": "^0.4.0",
         "axios": "^0.27.2",
         "bignumber.js": "^9.1.0",
@@ -1998,6 +1999,56 @@
       "dev": true,
       "license": "BSD-3-Clause"
     },
+    "node_modules/@jiaminghi/bezier-curve": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz",
+      "integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==",
+      "dependencies": {
+        "@babel/runtime": "^7.5.5"
+      }
+    },
+    "node_modules/@jiaminghi/c-render": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz",
+      "integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==",
+      "dependencies": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/bezier-curve": "*",
+        "@jiaminghi/color": "*",
+        "@jiaminghi/transition": "*"
+      }
+    },
+    "node_modules/@jiaminghi/charts": {
+      "version": "0.2.18",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz",
+      "integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==",
+      "dependencies": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/c-render": "^0.4.3"
+      }
+    },
+    "node_modules/@jiaminghi/color": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz",
+      "integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
+    },
+    "node_modules/@jiaminghi/data-view": {
+      "version": "2.10.0",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz",
+      "integrity": "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==",
+      "dependencies": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/charts": "*"
+      }
+    },
+    "node_modules/@jiaminghi/transition": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz",
+      "integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==",
+      "dependencies": {
+        "@babel/runtime": "^7.5.5"
+      }
+    },
     "node_modules/@jridgewell/gen-mapping": {
       "version": "0.3.1",
       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
@@ -14293,6 +14344,56 @@
       "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
       "dev": true
     },
+    "@jiaminghi/bezier-curve": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz",
+      "integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==",
+      "requires": {
+        "@babel/runtime": "^7.5.5"
+      }
+    },
+    "@jiaminghi/c-render": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz",
+      "integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==",
+      "requires": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/bezier-curve": "*",
+        "@jiaminghi/color": "*",
+        "@jiaminghi/transition": "*"
+      }
+    },
+    "@jiaminghi/charts": {
+      "version": "0.2.18",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz",
+      "integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==",
+      "requires": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/c-render": "^0.4.3"
+      }
+    },
+    "@jiaminghi/color": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz",
+      "integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
+    },
+    "@jiaminghi/data-view": {
+      "version": "2.10.0",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz",
+      "integrity": "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==",
+      "requires": {
+        "@babel/runtime": "^7.5.5",
+        "@jiaminghi/charts": "*"
+      }
+    },
+    "@jiaminghi/transition": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz",
+      "integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==",
+      "requires": {
+        "@babel/runtime": "^7.5.5"
+      }
+    },
     "@jridgewell/gen-mapping": {
       "version": "0.3.1",
       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   "dependencies": {
     "@grapecity/spread-sheets": "^15.1.1",
     "@grapecity/spread-sheets-vue": "^15.1.1",
+    "@jiaminghi/data-view": "^2.10.0",
     "@riophae/vue-treeselect": "^0.4.0",
     "axios": "^0.27.2",
     "bignumber.js": "^9.1.0",

+ 1 - 1
public/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta name="viewport" content="width=device-width,initial-scale=1.0" />
     <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
-    <title>灵巧敏捷保障软件</title>
+    <title>灵巧敏捷保障软件系统</title>
     <!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
   </head>
   <body>

+ 8 - 0
src/api/basicData/dataAircraftCataloging.js

@@ -24,3 +24,11 @@ export const removeAircaftCatalog = async (data) => {
 export const getAircaftTypeAndModelTree = async (data) => {
   return await get('/basicdata/aircaftCatalog/getAircaftTypeAndModelTree', data)
 }
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/aircaftCatalog/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/aircaftCatalog/exportExcel?aircaftModelIdList=${data.aircaftModelIdList}&queryParam=${data.queryParam}`)
+}

+ 9 - 0
src/api/basicData/dataSailingMaterialClassification.js

@@ -19,3 +19,12 @@ export const updateAvmatCategorie = async (data) => {
 export const removeAvmatCategories = async (data) => {
   return await post('/basicdata/avmatcategories/removeAvmatCategories', data)
 }
+
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/avmatcategories/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/avmatcategories/exportExcel')
+}

+ 9 - 0
src/api/basicData/dataSailingMaterialMaterialCoding.js

@@ -30,3 +30,12 @@ export const queryByCodeOrName = async (data) => {
 export const mappingCode = async (data) => {
   return await get('/basicdata/avmatCatalog/mappingCode', data)
 }
+
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/avmatCatalog/downLoadFile?avmatType=${data.avmatType}`)
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/avmatCatalog/exportExcel?avmatCategoriesId=${data.avmatCategoriesId}&queryParam=${data.queryParam}&userId=${data.userId}&avmatType=${data.avmatType}`)
+}

+ 9 - 0
src/api/basicData/dataSailingMaterialPrice.js

@@ -8,3 +8,12 @@ export const page = async (data) => {
 export const edit = async (data) => {
   return await post('/basicdata/avmatPrice/edit', data)
 }
+
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/avmatPrice/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/avmatPrice/exportExcel?avmatCategoriesId=${data.avmatCategoriesId}`)
+}

+ 18 - 0
src/api/basicData/dataSpecies.js

@@ -20,6 +20,15 @@ export const removeAircaftModel = async (data) => {
   return await post('/basicdata/aircaftModel/removeAircaftModel', data)
 }
 
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/aircaftModel/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/aircaftModel/exportExcel?aircaftTypeId=${data.aircaftTypeId}&queryParam=${data.queryParam}`)
+}
+
 // --------------------------
 export const addAircaftType = async (data) => {
   return await post('/basicdata/aircaftType/addAircaftType', data)
@@ -33,6 +42,15 @@ export const removeAircaftType = async (data) => {
   return await post('/basicdata/aircaftType/removeAircaftType', data)
 }
 
+//下载模板
+export const downLoadAircaftTypeFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/aircaftType/downLoadFile')
+}
+//导出
+export const exportAircaftTypeExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/aircaftType/exportExcel?queryParam=${data.queryParam}`)
+}
+
 // --------------------------------------------------------------------------------------------
 export const getAvmatCategoriesTree = async (data) => {
   return await get('/basicdata/avmatcategories/getAvmatCategoriesTree', data)

+ 37 - 0
src/api/carrierStandard/carrierComputationalModel.js

@@ -0,0 +1,37 @@
+import { get, uget, post, upost } from '@/http/index'
+
+export const dictList = async (data) => {
+  return await post('/carryingtask/calculationModel/dictList', data)
+}
+
+export const page = async (data) => {
+  return await post('/carryingtask/calculationModel/page', data)
+}
+
+export const addCalculationModel = async (data) => {
+  return await post('/carryingtask/calculationModel/add', data)
+}
+
+export const editCalculationModel = async (data) => {
+  return await post('/carryingtask/calculationModel/edit', data)
+}
+
+export const removeCalculationModel = async (data) => {
+  return await post('/carryingtask/calculationModel/remove', data)
+}
+
+export const enableOrDisable = async (data) => {
+  return await post('/carryingtask/calculationModel/enableOrDisable', data)
+}
+
+export const calculationModelVersionPage = async (data) => {
+  return await post('/carryingtask/calculationModelVersion/page', data)
+}
+
+export const enableModel = async (data) => {
+  return await post('/carryingtask/calculationModelVersion/enableModel', data)
+}
+
+export const release = async (data) => {
+  return await post('/carryingtask/calculationModel/release', data)
+}

+ 23 - 0
src/api/carrierStandard/carrierListExecutionRegistration.js

@@ -0,0 +1,23 @@
+import { get, uget, post, upost } from '@/http/index'
+
+//任务执行情况登记
+
+export const getTaskExecondRegister = async (data) => {
+  return await post('/carryingtask/taskExecondRegister/getTaskExecondRegister', data)
+}
+
+export const getTaskExecondRegisterItem = async (data) => {
+  return await post('/carryingtask/taskExecondRegister/getTaskExecondRegisterItem', data)
+}
+
+export const register = async (data) => {
+  return await post('/carryingtask/taskExecondRegister/register', data)
+}
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/carryingtask/taskExecondRegister/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/carryingtask/taskExecondRegister/exportExcel?aircaftCatalogId=${data.aircaftCatalogId}&taskId=${data.taskId}`)
+}

+ 58 - 0
src/api/carrierStandard/carrierListMachineryPreparation.js

@@ -0,0 +1,58 @@
+import { get, uget, post, upost } from '@/http/index'
+
+export const queryCarryingMainteOrgan = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/queryCarryingMainteOrgan', data)
+}
+export const getCarryingMainteOrgan = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/getCarryingMainteOrgan', data)
+}
+
+export const queryFlyTaskAircraft = async (data) => {
+  return await get('/basicdata/carryingMainteOrgan/queryFlyTaskAircraft', data)
+}
+
+export const roleAvmatCategoriesTree = async (data) => {
+  return await get('/basicdata/carryingMainteOrgan/roleAvmatCategoriesTree', data)
+}
+
+export const getAvmatCatalog = async (data) => {
+  return await post('/basicdata/avmatCatalog/getAvmatCatalog', data)
+}
+
+export const batchAddCarryingMainteOrgan = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/batchAddCarryingMainteOrgan', data)
+}
+
+export const removeCarryingMainteOrgan = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/removeCarryingMainteOrgan', data)
+}
+
+export const syncCarryingMainteOrgan = async (data) => {
+  return await get('/basicdata/carryingMainteOrgan/syncCarryingMainteOrgan', data)
+}
+
+export const getEnableList = async (data) => {
+  return await post('/carryingtask/calculationModel/getEnableList', data)
+}
+export const formulaCalculateByTaskId = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/formulaCalculateByTaskId', data)
+}
+export const PredictAlg = async (data) => {
+  return await post('/alg/PredictAlg', data)
+}
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/basicdata/carryingMainteOrgan/downLoadFile')
+}
+//航材清单导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/basicdata/carryingMainteOrgan/exportExcel?avmatType=${data.avmatType}&taskId=${data.taskId}&flyTaskAircaftId=${data.flyTaskAircaftId}&queryParam=${data.queryParam}`)
+}
+//下载航材使用登记模板
+export const downLoadUseRegisterFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/carryingtask/taskExecondRegister/downLoadUseRegisterFile')
+}
+//航材使用登记导出
+export const exportUseRegisterExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/carryingtask/taskExecondRegister/exportUseRegisterExcel?taskId=${data.taskId}&queryParam=${data.queryParam}`)
+}

+ 53 - 0
src/api/carrierStandard/carrierSailingMaterialConsumeRecord.js

@@ -0,0 +1,53 @@
+import { get, uget, post, upost } from '@/http/index'
+
+export const addOveryearAvmatConsume = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/addOveryearAvmatConsume', data)
+}
+
+export const updateOveryearAvmatConsume = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/updateOveryearAvmatConsume', data)
+}
+
+export const getOveryearAvmatConsume = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/getOveryearAvmatConsume', data)
+}
+
+export const removeOveryearAvmatConsume = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/removeOveryearAvmatConsume', data)
+}
+
+export const getImportModel = async (data) => {
+  window.location.href = process.env.VUE_APP_BASE_API + `/carryingtask/overyearAvmatConsume/getImportModel?outPutType=${data}`
+}
+
+export const getOutBoundRecord = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/getOutBoundRecord', data)
+}
+
+export const removeOutBoundRecord = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/removeOutBoundRecord', data)
+}
+
+export const getWarehousingRecord = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/getWarehousingRecord', data)
+}
+
+export const removeWarehousingRecord = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/removeWarehousingRecord', data)
+}
+
+export const getSummaryData = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/getSummaryData', data)
+}
+
+export const autoMatching = async (data) => {
+  return await get('/carryingtask/overyearAvmatConsume/autoMatching', data)
+}
+
+export const handMatching = async (data) => {
+  return await post('/carryingtask/overyearAvmatConsume/handMatching', data)
+}
+
+export const sumCalculate = async (data) => {
+  return await get('/carryingtask/overyearAvmatConsume/sumCalculate', data)
+}

+ 17 - 0
src/api/carrierStandard/carrierSailingMaterialConsumeRegularities.js

@@ -0,0 +1,17 @@
+import { get, uget, post, upost } from '@/http/index'
+
+export const addAvmatConsumeRuleVo = async (data) => {
+  return await post('/carryingtask/avmatConsumeRule/addAvmatConsumeRuleVo', data)
+}
+
+export const getAvmatConsumeRule = async (data) => {
+  return await post('/carryingtask/avmatConsumeRule/getAvmatConsumeRule', data)
+}
+
+export const updateAvmatConsumeRule = async (data) => {
+  return await post('/carryingtask/avmatConsumeRule/updateAvmatConsumeRule', data)
+}
+
+export const removeAvmatConsumeRule = async (data) => {
+  return await post('/carryingtask/avmatConsumeRule/removeAvmatConsumeRule', data)
+}

+ 2 - 2
src/api/home.js

@@ -2,12 +2,12 @@ import { get, uget, post, upost } from '@/http/index'
 
 // 经济指标-历年任务
 export const getHomeLastMission = async (data) => {
-  // return await get('/homePage/lastMission', data)
+  return await get('/homePage/lastMission', data)
 }
 
 // 经济指标-航材下拉框
 export const getAviationList = async (data) => {
-  // return await get('/accounting/economics/aviationList', data)
+  return await get('/accounting/economics/aviationList', data)
 }
 
 // 经济指标-项

+ 26 - 0
src/api/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize.js

@@ -0,0 +1,26 @@
+import { get, uget, post, upost } from '@/http/index'
+
+// 经济指标-历年任务(查左侧任务列表)
+export const getLastMission = async (data) => {
+  return await get('/accounting/economics/lastMission', data)
+}
+
+// 经济指标-航材下拉框
+export const getAviationList = async (data) => {
+  return await get('/accounting/economics/aviationList', data)
+}
+
+// 经济指标-项
+export const getAviationProject = async (data) => {
+  return await get('/accounting/economics/aviationProject', data)
+}
+
+// 经济指标-数
+export const getAviationAmount = async (data) => {
+  return await get('/accounting/economics/aviationAmount', data)
+}
+
+// 经济指标-金额
+export const getAviationMoney = async (data) => {
+  return await get('/accounting/economics/aviationMoney', data)
+}

+ 11 - 0
src/api/statisticalAnalysis/statisticalAnalysisSailingMaterialSpareParts.js

@@ -0,0 +1,11 @@
+import { get, uget, post, upost } from '@/http/index'
+
+// 经济指标-历年任务(查左侧任务列表)
+export const getLastMission = async (data) => {
+  return await get('/accounting/economics/lastMission', data)
+}
+
+// 通过查询军事指标
+export const getMilitaryIndicatorByTaskId = async (data) => {
+  return await get('/accounting/military/getMilitaryIndicatorByTaskId', data)
+}

+ 11 - 0
src/api/system/Inventory.js

@@ -0,0 +1,11 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 审核规则管理接口
+export const auditRuleList = async (parameter) => {
+  return await get('/system/auditRule/list', parameter)
+}
+
+// 审核规则版本发布
+export const addReleaseVersion = async (data) => {
+  return await post('/system/auditRule/addReleaseVersion', data)
+}

+ 15 - 0
src/api/system/Version.js

@@ -0,0 +1,15 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 审核规则管理接口
+export const getVersionList = async (url, data) => {
+  return await post(url, data)
+}
+// 规则版本详情
+export const getRuleListByVid = async (parameter) => {
+  return await get('/system/auditRule/getRuleListByVid', parameter)
+}
+
+// 审核规则版本设置启用/默认/删除
+export const updateAuditRuleVersion = async (data) => {
+  return await post('/system/auditRule/updateAuditRuleVersion?', data)
+}

+ 91 - 0
src/api/system/ability.js

@@ -0,0 +1,91 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 查询装备供货能力
+export const selectEquipmentSupportCapability = async (roleId) => {
+  return await parmasPost('/busi/equipmentSupportCapability/selectEquipmentSupportCapability', roleId)
+}
+
+// 新增装备供货能力
+export const insertEquipmentSupportCapability = async (data) => {
+  return await parmasPost('/busi/equipmentSupportCapability/insertEquipmentSupportCapability', data)
+}
+
+// 新增器材供货能力
+export const insertMaterialSupportCapability = async (data) => {
+  return await parmasPost('/busi/materialSupportCapability/insertMaterialSupportCapability', data)
+}
+
+// 新增设备供货能力
+export const insertDeviceSupportCapability = async (data) => {
+  return await parmasPost('/busi/deviceSupportCapability/insertDeviceSupportCapability', data)
+}
+
+// 更新器材供货能力
+export const updateMaterialSupportCapability = async (data) => {
+  return await parmasPost('/busi/materialSupportCapability/updateMaterialSupportCapability', data)
+}
+
+// 更新装备供货能力
+export const updateEquipmentSupportCapability = async (data) => {
+  return await parmasPost('/busi/equipmentSupportCapability/updateEquipmentSupportCapability', data)
+}
+
+// 更新设备供货能力
+export const updateDeviceSupportCapability = async (data) => {
+  return await parmasPost('/busi/deviceSupportCapability/updateDeviceSupportCapability', data)
+}
+
+// 删除装备-表格-列
+export const deleteEquipmentSupportCapability = async (data) => {
+  return await parmasPost('/busi/equipmentSupportCapability/deleteEquipmentSupportCapability', data)
+}
+
+// 删除设备-表格-列
+export const deleteDeviceSupportCapability = async (data) => {
+  return await parmasPost('/busi/deviceSupportCapability/deleteDeviceSupportCapability', data)
+}
+
+// 查询设备-表格
+export const selectDeviceSupportCapability = async (data) => {
+  return await parmasPost('/busi/deviceSupportCapability/selectDeviceSupportCapability', data)
+}
+
+// 查询器材-表格
+export const selectMaterialSupportCapability = async (data) => {
+  return await parmasPost('/busi/materialSupportCapability/selectMaterialSupportCapability', data)
+}
+
+// 删除器材-表格-列
+export const deleteMaterialCapability = async (data) => {
+  return await parmasPost('/busi/materialSupportCapability/deleteMaterialSupportCapability', data)
+}
+
+// 下载装备供货能力数据模板
+export function downLoadEquipmentFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/busi/equipmentSupportCapability/downLoadFile')
+}
+
+// 下载器材供货能力数据模板
+export function downLoadMaterialFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/busi/materialSupportCapability/downLoadFile')
+}
+
+// 下载设备供货能力数据模板
+export function downLoadDeviceFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/busi/deviceSupportCapability/downLoadFile')
+}
+
+// 导出
+export const exportEquipmentSupportCapability = async (data) => {
+  return await get('/busi/equipmentSupportCapability/export', data)
+}
+
+// 导出
+export const exportMaterialSupportCapability = async (data) => {
+  return await get('/busi/materialSupportCapability/export', data)
+}
+
+// 导出
+export const exportDeviceSupportCapability = async (data) => {
+  return await get('/busi/deviceSupportCapability/export', data)
+}

+ 11 - 0
src/api/system/authority.js

@@ -0,0 +1,11 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 点击角色查菜单
+export const queryRoleTree = async (roleId) => {
+  return await get('/system/menu/roleMenuTreeselect/' + roleId)
+}
+
+// 保存角色树信息
+export const saveRoleTree = async (formData) => {
+  return await post('/system/role/addRoleMenus', formData)
+}

+ 60 - 0
src/api/system/build/attachment.js

@@ -0,0 +1,60 @@
+import { get, post, uget } from '@/http/index'
+import axios from 'axios'
+
+export const getUrl = async () => {
+  return await get('/tBuisSupportDoc/getUrl')
+}
+
+export const getDataForZx = async (params) => {
+  return await get('/tBusiAssociation/getDataForZx', params)
+}
+
+export const getAttachmentList = async (data) => {
+  return await post('/tBuisSupportDoc/getList', data)
+}
+
+export const addguanlian = async (data) => {
+  return await post('/tBuisSupportDoc/guanlian/', data)
+}
+
+export const deleteAttachment = async (data) => {
+  return await post('/tBuisSupportDoc/delete', data)
+}
+
+export const getAttachmentListNew = async (data) => {
+  return await post('/tBusiSupportMaterial/getData', data)
+}
+
+const baseUrl = process.env.VUE_APP_BASE_API
+export function downLoadAttachment(str, filename) {
+  var url = baseUrl + str
+  axios({
+    method: 'post',
+    url: url,
+    data: filename,
+    responseType: 'blob'
+  }).then((res) => {
+    resolveBlob(res)
+  })
+}
+
+/**
+ * 解析blob响应内容并下载
+ * @param {*} res blob响应内容
+ * @param {String} mimeType MIME类型
+ */
+export function resolveBlob(res) {
+  const aLink = document.createElement('a')
+  var blob = new Blob([res.data])
+  // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
+  var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
+  var contentDisposition = decodeURI(res.headers['content-disposition'])
+  var result = patt.exec(contentDisposition)
+  var fileName = result[1]
+  fileName = fileName.replace(/\"/g, '')
+  aLink.href = URL.createObjectURL(blob)
+  aLink.setAttribute('download', fileName) // 设置下载文件名称
+  document.body.appendChild(aLink)
+  aLink.click()
+  document.body.removeChild(aLink)
+}

+ 5 - 0
src/api/system/build/dataquery.js

@@ -0,0 +1,5 @@
+import { get, post, parmasPost } from '@/http/index'
+
+export const getAllData = async (data) => {
+  return await get('/priceInquiry/getPriceList', data)
+}

+ 5 - 0
src/api/system/build/lntelligentverification.js

@@ -0,0 +1,5 @@
+import { get, post, parmasPost } from '@/http/index'
+
+export const getAllData = async (data) => {
+  return await get('/priceInquiry/getPriceList', data)
+}

+ 30 - 0
src/api/system/build/main.js

@@ -0,0 +1,30 @@
+import { get, post } from '@/http/index'
+
+// 获取所有密级数据 true:所有密级数据 false:当前人密级与比当前人密级低的数据
+export const getSecretLevelList = async (query) => {
+  return await get('/Secret/getSecretLevelList', query)
+}
+// 获取所有计划去重
+export const getDifferentPlan = async () => {
+  return await post('/audit/findPlan')
+}
+
+// 删除计划
+export const removeSelectedPlan = async (formData) => {
+  return await post('/audit/removeSelectedPlan', formData)
+}
+
+// 新建计划
+export const createPlan = async (formData) => {
+  return await post('/audit/createPlan', formData)
+}
+
+// 计划编制数据字典加载
+export const getBaseData = async () => {
+  return await get('/planCompile/getBaseData')
+}
+
+// 获取用户信息
+export const getUser = async () => {
+  return await post('/system/user/getUserInfo')
+}

+ 11 - 0
src/api/system/build/sysBackup.js

@@ -0,0 +1,11 @@
+import { get, post } from '@/http/index'
+
+//获取备份设置
+export const getBackUpSet = async (query) => {
+  return await get('/system/tBusiSysBackupSetup/getInfo', query)
+}
+
+// 更新备份设置信息
+export const updateBackUpSet = async (data) => {
+  return await post('/system/tBusiSysBackupSetup/updateInfo', data)
+}

+ 21 - 0
src/api/system/config.js

@@ -0,0 +1,21 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 查询备份记录
+export const backupList = async (data) => {
+  return await post('/systemBackup/list', data)
+}
+
+// 删除备份记录
+export const backupDelete = async (data) => {
+  return await get('/systemBackup/delete', data)
+}
+
+// 备份
+export const backupAdd = async (data) => {
+  return await get('/systemBackup/add', data)
+}
+
+// 恢复
+export const recover = async (data) => {
+  return await get('/systemBackup/recover', data)
+}

+ 45 - 0
src/api/system/contract.js

@@ -0,0 +1,45 @@
+import { get, post, parmasPost, put, deletes, uget } from '@/http/index'
+
+// 查询本级单位的合同列表
+export const listContractByRegistered = async (formData) => {
+  return await get('/system/contract/listByRegistered', formData)
+}
+
+// 查询【请填写功能名称】列表
+export const listContract = async (formData) => {
+  return await get('contract/list', formData)
+}
+
+// 删除【请填写功能名称】
+export const delContract = async (formData) => {
+  return await post('contract/delete', formData)
+}
+
+// 新增【请填写功能名称】
+export const addContract = async (formData) => {
+  return await post('contract/add', formData)
+}
+
+// 修改【请填写功能名称】
+export const updateContract = async (formData) => {
+  return await post('contract/update', formData)
+}
+
+// 导出【请填写功能名称】
+export const exportContract = async (formData) => {
+  return await post('contract/export', formData)
+}
+
+// 查询【请填写功能名称】详细
+export const getContract = async (formData) => {
+  return await get('contract/getInfo', formData)
+}
+
+// 根据合同ID查询关联计划getContractPlan
+export const getPlanListByContractId = async (formData) => {
+  return await get('contract/getContractPlan', formData)
+}
+
+export function downLoadTemplate() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/contract/downLoadFile')
+}

+ 6 - 0
src/api/system/data.js

@@ -0,0 +1,6 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 表格数据接口
+export const tableData = async (formData) => {
+  return await post('ReceiveRecordsController/queryRecords', formData)
+}

+ 46 - 0
src/api/system/deploy.js

@@ -0,0 +1,46 @@
+import { get, post, parmasPost } from '@/http/index'
+
+// 查询保存状态
+export const getStatus = async () => {
+  return await get('/SystemConfigrationController/status')
+}
+
+// 系统设置 -> 本级单位设置 -> 单位选择列表查询
+export const unitselection = async () => {
+  return await get('/SystemConfigrationController/status')
+}
+
+// 系统设置 -> 本级单位设置 -> 涉及装备专业设置查询
+export const equipmentspecialty = async () => {
+  return await get('/system/equipmentProfession/querySelfEquipmentProfession')
+}
+
+// 系统设置 -> 本级单位设置 -> 保存
+export const preservation = async (formData) => {
+  return await post('/system/deploy/updateOrSaveDeploy', formData)
+}
+
+// 系统设置 -> 本级单位设置 -> 根据用户操作返回状态和数据
+export const userstatusanddata = async () => {
+  return await get('/system/deploy/queryOrganizationList')
+}
+
+// 系统配置 -> 单位
+export const userstatusanddataNew = async () => {
+  return await get('/system/organization/treeSelect')
+}
+
+// 根据单位查专业
+export const searchEquipment = async (formData) => {
+  return await parmasPost('/system/equipmentProfession/treeSelect', formData)
+}
+
+// 系统设置 -> 本级单位设置 -> 当前本级单位ID查询
+export const selectOrgId = async () => {
+  return await get('/system/deploy/selectOrgId')
+}
+
+// 首次进入接口
+export const initPage = async () => {
+  return await get('/system/deploy/getLevelUnitInfo')
+}

+ 36 - 0
src/api/system/dict/data.js

@@ -0,0 +1,36 @@
+import { get, post, uget } from '@/http/index'
+
+// 根据字典类型查询字典数据信息
+export const getDicts = async (data) => {
+  return await get('/system/dict/data/type/' + data)
+}
+
+// 查询字典数据列表
+export const listData = async (data) => {
+  return await post('/system/dict/data/list', data)
+}
+
+// 查询字典数据详细
+export const getData = async (data) => {
+  return await uget('/system/dict/data/', data)
+}
+
+// 删除字典数据
+export const delData = async (data) => {
+  return await post('/system/dict/data/removeDictData', data)
+}
+
+// 新增字典数据
+export const addData = async (data) => {
+  return await post('/system/dict/data/addDictData', data)
+}
+
+// 修改字典数据
+export const updateData = async (data) => {
+  return await post('/system/dict/data/updateDictData', data)
+}
+
+// 导出字典数据
+export const exportData = async (data) => {
+  return await post('/system/dict/data/export', data)
+}

+ 41 - 0
src/api/system/dict/type.js

@@ -0,0 +1,41 @@
+import { get, uget, post, deletes, put } from '@/http/index'
+
+// 查询字典类型列表
+export const listType = async (data) => {
+  return await get('/system/dict/type/list', data)
+}
+
+// 查询字典类型详细
+export const getType = async (data) => {
+  return await uget('/system/dict/type/', data)
+}
+
+// 删除字典类型
+export const delType = async (data) => {
+  return await deletes('/system/dict/type/', data)
+}
+
+// 新增字典类型
+export const addType = async (data) => {
+  return await post('/system/dict/type', data)
+}
+
+// 修改字典类型
+export const updateType = async (data) => {
+  return await put('/system/dict/type', data)
+}
+
+// 导出字典类型
+export const exportType = async (data) => {
+  return await get('/system/dict/type/export', data)
+}
+
+// 刷新字典缓存
+export const refreshCache = async () => {
+  return await deletes('/system/dict/type/refreshCache')
+}
+
+// 查询所有字典类型列表
+export const optionselect = async () => {
+  return await get('/system/dict/type/optionselect')
+}

+ 41 - 0
src/api/system/document.js

@@ -0,0 +1,41 @@
+import { uget, get, post, parmasPost, put, deletes } from '@/http/index'
+import axios from 'axios'
+
+// 通过ID删除业务表关联的附件信息
+export const deleteDocumentById = async (formData) => {
+  return await post('/system/document/deleteDocumentById', formData)
+}
+
+const baseUrl = process.env.VUE_APP_BASE_API
+export function downLoadFile(id) {
+  const url = baseUrl + '/system/document/downLoadFile'
+  axios({
+    method: 'post',
+    url: url,
+    data: id,
+    responseType: 'blob'
+  }).then((res) => {
+    resolveBlob(res)
+  })
+}
+
+/**
+ * 解析blob响应内容并下载
+ * @param {*} res blob响应内容
+ * @param {String} mimeType MIME类型
+ */
+export function resolveBlob(res) {
+  const aLink = document.createElement('a')
+  var blob = new Blob([res.data])
+  // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
+  var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
+  var contentDisposition = decodeURI(res.headers['content-disposition'])
+  var result = patt.exec(contentDisposition)
+  var fileName = result[1]
+  fileName = fileName.replace(/\"/g, '')
+  aLink.href = URL.createObjectURL(blob)
+  aLink.setAttribute('download', fileName) // 设置下载文件名称
+  document.body.appendChild(aLink)
+  aLink.click()
+  document.body.removeChild(aLink)
+}

+ 6 - 0
src/api/system/equipmentProfession.js

@@ -0,0 +1,6 @@
+import { uget, get, post, parmasPost, put, deletes } from '@/http/index'
+
+//根据用户角色查询装备专业
+export const getEquipmentProfessionByUserRole = async (formData) => {
+  return await get('/system/equipmentProfession/getEquipmentProfessionByUserRole', formData)
+}

+ 25 - 0
src/api/system/menuJurisdiction.js

@@ -0,0 +1,25 @@
+import { get, post } from '@/http/index'
+
+// 查询菜单列表
+export const getAllMenuList = async (query) => {
+  return await get('/system/menu/AllList', query)
+}
+
+// 查询菜单列表
+export const getAllRoleList = async (query) => {
+  return await get('/system/role/list', query)
+}
+
+//根据菜单id获取有权限的角色列表
+export const getRoleListByMenuId = async (formData) => {
+  return await post('/system/role/' + formData)
+}
+
+//分配角色确认
+export const addRowMenu = async (formData) => {
+  return await post('/system/menu/addRowMenu', formData)
+}
+
+export const deleteRoleMenu = async (formData) => {
+  return await post('/system/menu/deleteRoleMenu', formData)
+}

+ 162 - 0
src/api/system/model.js

@@ -0,0 +1,162 @@
+import { get, uget, post, upost, parmasPost, put } from '@/http/index'
+
+// 查询列表
+export const queryListDeviceModel = async (data) => {
+  return await get('/system/deviceModel/queryList', data)
+}
+
+// 根据装备专业查询设备型号列表
+export const queryDeviceModelsByProfessions = async (formData) => {
+  return await get('/system/deviceModel/queryDeviceModelByEquipmentProfession', formData)
+}
+
+// 新老接口同时使用
+// 根据装备专业查询设备型号列表
+// export function queryDeviceModelsByProfessions(query) {
+//   return request({
+//     url: '/system/deviceModel/queryDeviceModelByEquipmentProfession',
+//     method: 'get',
+//     params: query
+//   })
+// } // 查询设备型号列表
+// export function queryDeviceModel(query) {
+//   return request({
+//     url: '/CatalogueOfMaintenanceController/queryDeviceModel',
+//     method: 'get',
+//     params: query
+//   })
+// }
+
+// 查询装备-弹窗-下拉框
+export const queryListEquipmentModel = async (formData) => {
+  return await get('/system/equipmentModel/queryList', formData)
+}
+// 查询器材-弹窗-下拉框
+export const queryListMaterialModel = async (formData) => {
+  return await get('/system/materialModel/queryList', formData)
+}
+
+// 查询装备型号详细
+export const getEquipmentModel = async (formData) => {
+  return await parmasPost('/system/equipmentModel/getInfoById', formData)
+}
+
+// 删除装备型号
+export const delEquipmentModel = async (formData) => {
+  return await post('/system/equipmentModel/delete', formData)
+}
+
+// 新增装备型号
+export const addEquipmentModel = async (formData) => {
+  return await post('/system/equipmentModel/add', formData)
+}
+
+// 修改装备型号
+export const updateEquipmentModel = async (formData) => {
+  return await post('/system/equipmentModel/edit', formData)
+}
+
+// 导出装备型号
+export const exportEquipmentModel = async (formData) => {
+  return await post('/system/equipmentModel/export', formData)
+}
+
+// 根据装备专业查询装备型号列表
+export const queryEquipmentModelByEquipmentProfession = async (data) => {
+  return await get('/CatalogueOfMaintenanceController/queryEquipmentModelByEquipmentProfession', data)
+}
+
+// 移动
+export const moveEquipmentProfession = async (formData) => {
+  return await post('/system/equipmentModel/moveProfession', formData)
+}
+
+// 查询器材型号详细
+export const getMaterialModel = async (data) => {
+  return await uget('/system/materialModel/', data)
+}
+
+// 新增器材型号
+export const addMaterialModel = async (formData) => {
+  return await post('/system/materialModel', formData)
+}
+
+// 修改器材型号
+export const updateMaterialModel = async (formData) => {
+  return await post('/system/materialModel/edit', formData)
+}
+
+// 删除器材型号
+export const delMaterialModel = async (formData) => {
+  return await post('/system/materialModel/delete', formData)
+}
+
+// 查询器材型号列表
+export const queryMaterialModel = async (data) => {
+  return await get('/CatalogueOfMaintenanceController/queryMaterialModel', data)
+}
+
+// 移动
+export const moveMaterialProfession = async (formData) => {
+  return await post('/system/materialModel/moveProfession', formData)
+}
+
+// 查询设备型号详细
+export const getDeviceModel = async (data) => {
+  return await uget('/system/deviceModel/', data)
+}
+
+// 新增设备型号
+export const addDeviceModel = async (formData) => {
+  return await post('/system/deviceModel', formData)
+}
+
+// 修改设备型号
+export const updateDeviceModel = async (formData) => {
+  return await post('/system/deviceModel/edit', formData)
+}
+
+// 删除设备型号
+export const delDeviceModel = async (formData) => {
+  return await post('/system/deviceModel/delete', formData)
+}
+
+// 导出设备型号
+export const exportDeviceModel = async (formData) => {
+  return await post('/system/deviceModel/export', formData)
+}
+
+// 查询设备型号列表
+export const queryDeviceModel = async (data) => {
+  return await get('/CatalogueOfMaintenanceController/queryDeviceModel', data)
+}
+
+// 移动
+export const moveDeviceProfession = async (formData) => {
+  return await post('/system/deviceModel/moveProfession', formData)
+}
+
+// 查询装备型号
+export const queryEmdByProfessionIdNew = async (formData) => {
+  return await parmasPost('/CatalogueOfTechnicalStandardsController/queryEmdByProfessionId/', formData)
+}
+
+// 导出器材型号
+export const exportMaterialModel = async (formData) => {
+  return await post('/system/materialModel/export', formData)
+}
+
+// 下载器材型号模板
+export function downLoadMaterialFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/materialModel/downLoadFile')
+}
+
+// 下载装备型号模板
+export function downLoadEquipmentFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/equipmentModel/downLoadFile')
+}
+
+// 下载设备型号模板
+export function downLoadDeviceFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/deviceModel/downLoadFile')
+}

+ 67 - 0
src/api/system/org.js

@@ -0,0 +1,67 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 单位机构树列表
+export const unitorganizationtree = async () => {
+  return await get('/system/organization/treeSelect')
+}
+
+// 新增
+export const newlyaddedlnterface = async (formData) => {
+  return await post('/system/organization/addChild', formData)
+}
+
+// 根据树节点ID查询子级详细信息
+export const queryChilddata = async (formData) => {
+  return await post('/system/organization/queryChildById', formData)
+}
+
+// 查询所有子单位和部门信息
+export const queryByCondition = async (query) => {
+  let queryStr = 'pageNum=' + query.pageNum + '&pageSize=' + query.pageSize + '&unitName=' + query.unitName + '&childId=' + query.childId + '&childType=' + query.childType + ''
+  return await get('/system/organization/likeQuery?' + queryStr)
+}
+
+// 单一删除和批量删除
+export const deleteChildById = async (formData) => {
+  return await post('/system/organization/deleteChildById', formData)
+}
+
+// 单一修改和批量修改子级状态-启用
+export const bachUpdateChildStatusById = async (formData) => {
+  return await post('/system/organization/bachEnable', formData)
+}
+
+// 单一修改和批量修改子级状态-禁用
+export const disablebachUpdateChildStatusById = async (formData) => {
+  return await post('/system/organization/batchDisable', formData)
+}
+
+// 移动的单位机构树列表
+export const usertreeSelect = async () => {
+  return await get('/system/organization/deptTreeSelect')
+}
+
+// 批量移动
+export const batchMoveChildDeptByParentId = async (formData) => {
+  return await post('/system/organization/batchMoveChildDeptByParentId', formData)
+}
+
+// 修改子单位或部门
+export const updateChildById = async (formData) => {
+  return await put('/system/organization/updateChildById', formData)
+}
+
+// 查询单位涉及的装备专业
+export const queryUnitEquipmentProfession = async (unitId) => {
+  return await get('/system/equipmentProfession/getSubordinateUnitEquipmentProfession/' + unitId)
+}
+
+// 修改装备专业与单位关联
+export const updateEquipmentProfessionUnit = async (formData) => {
+  return await post('/system/equipmentProfession/updateEquipmentProfessionUnit', formData)
+}
+
+// 下发
+export const downFile = (userId) => {
+  window.location.href = process.env.VUE_APP_BASE_API_target + `/org/orgSend?userId=${userId}`
+}

+ 61 - 0
src/api/system/powersetupdialog.js

@@ -0,0 +1,61 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 用户管理 -> 权限设置 -> 角色接口
+export const prwersetuprole = async (params) => {
+  return await get('/system/role/list', params)
+}
+
+// 用户管理 -> 权限设置 -> 根据用户查询角色接口
+export const getRoleListByUserld = async (params) => {
+  return await get(`/system/role/getRoleListByUserId/${params}`)
+}
+
+// 用户管理 -> 权限设置 -> 给用户绑定角色接口
+export const AddUserRole = async (formData) => {
+  return await post('/system/role/batchAddUserRole', formData)
+}
+
+// 用户管理 -> 权限设置 -> 给用户删除角色
+export const DeleteUserRole = async (formData) => {
+  return await post('/system/role/batchDeleteUserRole', formData)
+}
+
+//用户管理 -> 权限设置 ->  查找装备专业
+export const querySelfEquipmentProfession = async () => {
+  return await get('/system/equipmentProfession/querySelfEquipmentProfession')
+}
+
+//用户管理 -> 权限设置 ->  查找装备专业
+export const querySelfEquipmentProfession1 = async () => {
+  return await get('/system/equipmentProfession/querySelfEquipmentProfession1')
+}
+
+//用户管理 -> 权限设置 -> 根据用户查询装备专业
+export const rolequeryEquipmentProfessionByUserId = async (userId) => {
+  return await get('/system/equipmentProfession/queryEquipmentProfessionByUserId/' + userId)
+}
+
+//用户管理 -> 权限设置 -> 给装备专业绑定用户/给用户绑定装备专业
+export const userbindingspecialty = async (formData) => {
+  return await post('/system/equipmentProfession/batchAddEquipmentProfessionUser', formData)
+}
+
+//用户管理 -> 权限设置 -> 删除装备专业
+export const userdeletespecialty = async (formData) => {
+  return await post('/system/equipmentProfession/batchDeleteEquipmentProfessionUser', formData)
+}
+
+// 用户管理 -> 权限设置 -> 查询菜单
+export const querymenu = async () => {
+  return await get('/system/menu/AllList')
+}
+
+// 用户管理 -> 权限设置 -> 根据用户查询菜单
+export const queryUserMenus = async (userId) => {
+  return await get('/system/user/queryUserMenus/' + userId)
+}
+
+// 用户管理 -> 权限设置 -> 给用户绑定菜单
+export const addUserMenus = async (formData) => {
+  return await post('/system/user/addUserMenus', formData)
+}

+ 104 - 0
src/api/system/price.js

@@ -0,0 +1,104 @@
+import { get, uget, post, upost, parmasPost, put, deletes } from '@/http/index'
+
+// 查询装备价格详细
+export const getEquipmentPrice = async (data) => {
+  return await uget('/system/equipmentPrice/', data)
+}
+
+// 新增装备价格
+export const addEquipmentPrice = async (data) => {
+  return await post('/system/equipmentPrice/', data)
+}
+
+// 修改装备价格
+export const updateEquipmentPrice = async (data) => {
+  return await put('/system/equipmentPrice', data)
+}
+
+// 删除装备价格
+export const delEquipmentPrice = async (data) => {
+  return await deletes('/system/equipmentPrice/', data)
+}
+
+// 导出装备价格
+export const exportEquipmentPrice = async (data) => {
+  return await get('/system/equipmentPrice/export', data)
+}
+
+// 根据装备型号ID查询装备价格列表
+export const queryEquipmentPricesByEquipmentModelId = async (data) => {
+  return await parmasPost('/system/equipmentPrice/queryEquipmentPricesByEquipmentModelId', data)
+}
+
+// 查询器材价格详细
+export const getMaterialtPrice = async (data) => {
+  return await uget('/system/materialPrice/', data)
+}
+
+// 新增器材价格
+export const addMaterialtPrice = async (data) => {
+  return await post('/system/materialPrice', data)
+}
+
+// 修改器材价格
+export const updateMaterialtPrice = async (data) => {
+  return await put('/system/materialPrice', data)
+}
+
+// 删除器材价格
+export const delMaterialtPrice = async (data) => {
+  return await deletes('/system/materialPrice/', data)
+}
+
+// 导出器材价格
+export const exporMaterialtPrice = async (data) => {
+  return await get('/system/materialPrice/export', data)
+}
+
+// 根据器材型号ID查询器材价格列表
+export const queryMaterialPricesByMaterialModelId = async (data) => {
+  return await parmasPost('/system/materialPrice/queryMaterialPricesByMaterialModelId/', data)
+}
+
+// 查询设备价格详细
+export const getDevicePrice = async (data) => {
+  return await uget('/system/devicePrice/', data)
+}
+
+// 新增设备价格
+export const addDevicePrice = async (data) => {
+  return await post('/system/devicePrice', data)
+}
+
+// 修改设备价格
+export const updateDevicePrice = async (data) => {
+  return await put('/system/devicePrice', data)
+}
+
+// 删除设备价格
+export const delDevicePrice = async (data) => {
+  return await deletes('/system/devicePrice/', data)
+}
+
+// 导出设备价格
+export const exportDevicePrice = async (data) => {
+  return await get('/system/devicePrice/export', data)
+}
+
+// 根据设备型号ID查询设备价格列表
+export const queryDevicePricesByDeviceModelId = async (data) => {
+  return await parmasPost('/system/devicePrice/queryDevicePricesByDeviceModelId/', data)
+}
+
+// 下载装备价格数据模板
+export function downLoadEquipmentFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/equipmentPrice/downLoadFile')
+}
+// 下载器材价格数据模板
+export function downLoadMaterialFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/materialPrice/downLoadFile')
+}
+// 下载设备价格数据模板
+export function downLoadDeviceFile() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/devicePrice/downLoadFile')
+}

+ 10 - 0
src/api/system/profession.js

@@ -0,0 +1,10 @@
+import { get, post, parmasPost, put } from '@/http/index'
+
+// 查询列表
+export const queryListProfession = async (data) => {
+  return await get('system/equipmentProfession/querySelfEquipmentProfession')
+}
+
+export const getSysOrgAndLocal = async () => {
+  return await get('/system/deploy/getLocalOrganizationList')
+}

+ 85 - 0
src/api/system/standard.js

@@ -0,0 +1,85 @@
+import { get, post, deletes, put, uget } from '@/http/index'
+
+// 查询设备标准列表
+export const listDeviceStandard = async (data) => {
+  return await get('/system/deviceStandard/list', data)
+}
+
+// 查询设备标准详细
+export const getDeviceStandard = async (data) => {
+  return await uget('/system/deviceStandard/', data)
+}
+
+// 新增设备标准
+export const addDeviceStandard = async (formData) => {
+  return await post('/system/deviceStandard', formData)
+}
+
+// 修改设备标准
+export const updateDeviceStandard = async (data) => {
+  return await put('/system/deviceStandard', data)
+}
+
+// 删除设备标准
+export const delDeviceStandard = async (deviceStandardId) => {
+  return await deletes('/system/deviceStandard/', deviceStandardId)
+}
+
+// 导出设备标准
+export const exportDeviceStandard = async (formData) => {
+  return await post('/system/deviceStandard/export', formData)
+}
+
+// 查询根据设备型号id查询设备标准
+export const queryDeviceStandardsByDeviceModelId = async (data) => {
+  return await uget('/system/deviceStandard/queryDeviceStandardsByDeviceModelId/', data)
+}
+
+// 查询器材标准列表
+export const listMaterialStandard = async (data) => {
+  return await get('/system/materialStandard/list', data)
+}
+
+// // 查询器材标准详细
+export const getMaterialStandard = async (data) => {
+  return await uget('/system/materialStandard/', data)
+}
+
+// 新增器材标准
+export const addMaterialStandard = async (formData) => {
+  return await post('/system/materialStandard', formData)
+}
+
+// 修改器材标准
+export const updateMaterialStandard = async (data) => {
+  return await put('/system/materialStandard', data)
+}
+
+// 删除器材标准
+export const delMaterialStandard = async (materialStandardId) => {
+  return await deletes('/system/materialStandard/', materialStandardId)
+}
+
+// 新增器材标准
+export const exportMaterialStandard = async (formData) => {
+  return await post('/system/materialStandard/export', formData)
+}
+
+// 查询根据装备型号id查询器材标准
+export const queryMaterialStandardsByEquipmentModelId = async (data) => {
+  return await get('/system/materialStandard/list', data)
+}
+
+// /system/deviceStandard/list
+export const searchSheBeiTable = async (data) => {
+  return await get('/system/deviceStandard/list', data)
+}
+
+// 下载模板,1001:器材标准,1002:设备标准
+export function downLoadTemplate(type) {
+  if (type == 1001) {
+    window.open(process.env.VUE_APP_BASE_API + '/system/materialStandard/downLoadFile')
+  } else if (type == 1002) {
+    window.open(process.env.VUE_APP_BASE_API + '/system/deviceStandard/downLoadFile')
+  }
+}

+ 143 - 0
src/api/system/supplies.js

@@ -0,0 +1,143 @@
+import { get, post, parmasPost, put, deletes } from '@/http/index'
+
+// 查询左边的树 searchLeftTree
+export const searchLeftTree = async (data) => {
+  return await get('/system/equipmentProfession/querySelfEquipmentProfession', data)
+}
+
+// 导出装备现有使用情况
+export const exportStrength = async (type, ids) => {
+  return await post('/system/' + type + '/export', ids)
+}
+
+//  查表
+export const queryListEquipment = async (data) => {
+  return await parmasPost('/CurrentUseOfMaterialsController/listEquipment', data)
+}
+
+//   新增点击型号查数据 system/equipmentModel/getInfoById
+export const addqueryTable = async (data) => {
+  return await parmasPost('/system/equipmentModel/getInfoById', data)
+}
+
+//   新增保存 system/equipmentStrength/add
+export const addSave = async (data) => {
+  return await post('/system/equipmentStrength/add', data)
+}
+
+// 编辑数据回显 system/equipmentStrength/getInfoById
+export const queryItemDetil = async (data) => {
+  return await parmasPost('/system/equipmentStrength/getInfoById', data)
+}
+
+// 删除接口  system/equipmentStrength/delete
+export const deleteItem = async (data) => {
+  return await parmasPost('/system/equipmentStrength/delete', data)
+}
+
+// 编辑保存
+export const updateItem = async (data) => {
+  return await post('/system/equipmentStrength/edit', data)
+}
+
+// 关联装备弹框
+export const showGlzb = async (data) => {
+  return await parmasPost('/system/equipmentStrength/queryAssociatedEquipment', data)
+}
+
+// 维修记录
+export const showWxjl = async (data) => {
+  return await parmasPost('/system/equipmentStrength/queryMaintenanceRecordByEquipmentModelId', data)
+}
+
+// 新增查标志码
+export const addqueryTableQicai = async (data) => {
+  return await parmasPost('/system/materialModel/getInfoById', data)
+}
+
+// ------------------------------------器材---------------------------------------------------
+
+// 器材新增
+export const qiCaiAdd = async (data) => {
+  return await post('/system/materialStrength/add', data)
+}
+
+//   编辑数据回显 system/equipmentStrength/getInfoById
+export const queryItemDetilQicai = async (data) => {
+  return await parmasPost('/system/materialStrength/getInfoById', data)
+}
+
+// 器材删除
+export const deleteItemQicai = async (data) => {
+  return await parmasPost('/system/materialStrength/delete', data)
+}
+
+// 器材编辑保存
+export const updateItemQicai = async (data) => {
+  return await post('/system/materialStrength/edit', data)
+}
+
+// 器材查消耗记录
+export const showXhjl = async (data) => {
+  return await get('/system/materialConsume/list', data)
+}
+
+// 消耗记录新增确认
+export const addXhjl = async (data) => {
+  return await post('/system/materialConsume/add', data)
+}
+
+// 器材消耗记录删除
+export const deleteItemQiCaiXhjl = async (data) => {
+  return await parmasPost('/system/materialConsume/delete', data)
+}
+// 查表(器材)
+export const queryListMaterial = async (data) => {
+  return await parmasPost('/CurrentUseOfMaterialsController/listMaterial', data)
+}
+
+// --------------------------------------------------------------设备-----------------------------------------------------
+// 查表--设备
+export const queryListDevice = async (data) => {
+  return await parmasPost('/CurrentUseOfMaterialsController/listDevice', data)
+}
+
+// 新增查标志码
+export const addqueryTableSheBei = async (data) => {
+  return await parmasPost('/system/deviceModel/getInfoById', data)
+}
+
+// 器材新增
+export const SheBeiAdd = async (data) => {
+  return await post('/system/deviceStrength/add', data)
+}
+
+//   编辑数据回显 system/equipmentStrength/getInfoById
+export const queryItemDetilSheBei = async (data) => {
+  return await parmasPost('/system/deviceStrength/getInfoById', data)
+}
+
+// 器材删除
+export const deleteItemSheBei = async (data) => {
+  return await parmasPost('/system/deviceStrength/delete', data)
+}
+
+// 器材编辑保存
+export const updateItemSheBei = async (data) => {
+  return await post('/system/deviceStrength/edit', data)
+}
+
+//设备查消耗记录
+export const showXhjlSheBei = async (data) => {
+  return await get('/system/deviceConsume/list', data)
+}
+
+// 设备记录新增确认
+export const addXhjlSheBei = async (data) => {
+  return await post('/system/deviceConsume/add', data)
+}
+// 下载装备现有使用情况模板
+export function downLoadTemplate(type) {
+  // window.open(process.env.VUE_APP_BASE_API + '/system/' + type + '/downLoadFile')
+  window.location.href = process.env.VUE_APP_BASE_API + '/system/' + type + '/downLoadFile'
+}

+ 55 - 0
src/api/system/supply.js

@@ -0,0 +1,55 @@
+import { get, uget, post, parmasPost, put, deletes } from '@/http/index'
+
+// 查询【请填写功能名称】列表
+export const listSupply = async (formData) => {
+  return await get('/system/supply/list', formData)
+}
+
+// 查询【请填写功能名称】详细
+export const getSupply = async (formData) => {
+  return await uget('/system/supply/', formData)
+}
+
+// 删除【请填写功能名称】
+export const delSupply = async (formData) => {
+  return await deletes('/system/supply/', formData)
+}
+
+// 新增【请填写功能名称】
+export const addSupply = async (formData) => {
+  return await post('/system/supply', formData)
+}
+
+// 修改【请填写功能名称】
+export const updateSupply = async (formData) => {
+  return await put('/system/supply', formData)
+}
+
+// 导出【请填写功能名称】
+export const exportSupply = async (formData) => {
+  let pdata = []
+  if (formData != null && formData != undefined) {
+    pdata = formData
+  }
+  if (formData == 1) {
+    pdata = [1]
+  }
+  return await post('/system/supply/export', pdata)
+}
+
+// 启用/禁用 0启用1禁用
+export const isAvitve = async (formData) => {
+  return await parmasPost('/system/supply/isEnables', formData)
+}
+
+export function downLoadTemplate() {
+  window.open(process.env.VUE_APP_BASE_API + '/system/supply/downLoadFile')
+  // return request({
+  //   url: '/system/supply/downLoadFile',
+  //   method: 'get'
+  // })
+}
+
+export const getListSupply = async (formData) => {
+  return await get('/system/supply/getListByName', formData)
+}

+ 11 - 0
src/api/system/systemLog/index.js

@@ -0,0 +1,11 @@
+import { get, post } from '@/http/index'
+
+// 查询操作日志
+export const listJob = async (query) => {
+  return await get('/monitor/operlog/list', query)
+}
+
+// 清空操作日志
+export const cleanOperlog = async (data) => {
+  return await deletes('/monitor/operlog/clean', data)
+}

+ 107 - 0
src/api/task/carrierFlightMission.js

@@ -0,0 +1,107 @@
+import { get, uget, post, upost } from '@/http/index'
+
+// 查询飞行任务
+export const queryFlyTask = async (data) => {
+  return await post('/carryingtask/flyTask/queryFlyTask', data)
+}
+
+// 查询飞行任务树
+export const queryFlyTaskTree = async (data) => {
+  return await post('/carryingtask/flyTask/queryFlyTaskTree', data)
+}
+
+// 查询飞行任务主任务
+export const queryFlyTaskMain = async () => {
+  return await get('/carryingtask/flyTask/queryFlyTaskMain')
+}
+
+export const getTEnvFactorDict = async (data) => {
+  return await get('/system/tEnvFactor/getTEnvFactorDict', data)
+}
+
+export const addFlyTask = async (data) => {
+  return await post('/carryingtask/flyTask/addFlyTask', data)
+}
+
+export const updateFlyTask = async (data) => {
+  return await post('/carryingtask/flyTask/updateFlyTask', data)
+}
+
+export const removeFlyTask = async (data) => {
+  return await post('/carryingtask/flyTask/removeFlyTask', data)
+}
+
+//下载模板
+export const downLoadFile = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + '/carryingtask/flyTask/downLoadFile')
+}
+//导出
+export const exportExcel = async (data) => {
+  window.open(process.env.VUE_APP_BASE_API + `/carryingtask/flyTask/exportExcel?queryParam=${data.queryParam}&status=${data.status}`)
+}
+
+export const getFlyTaskAircraft = async (data) => {
+  return await post('/carryingtask/flyTaskAircraft/getFlyTaskAircraft', data)
+}
+
+export const getAircaftTypeAndModelTree = async (data) => {
+  return await get('/basicdata/aircaftCatalog/getAircaftTypeAndModelTree', data)
+}
+
+export const getAircraftsByCode = async (data) => {
+  return await post('/carryingtask/flyTaskAircraft/getAircraftsByCode', data)
+}
+
+export const addFlyTaskAircraft = async (data) => {
+  return await post('/carryingtask/flyTaskAircraft/addFlyTaskAircraft', data)
+}
+
+export const removeFlyTaskAircraft = async (data) => {
+  return await post('/carryingtask/flyTaskAircraft/removeFlyTaskAircraft', data)
+}
+export const updateFlyTaskAircraft = async (data) => {
+  return await post('/carryingtask/flyTaskAircraft/updateFlyTaskAircraft', data)
+}
+
+export const queryCarryingMainteOrgan = async (data) => {
+  return await post('/basicdata/carryingMainteOrgan/queryCarryingMainteOrgan', data)
+}
+export const updateStatus = async (data) => {
+  return await post('/carryingtask/flyTask/updateStatus', data)
+}
+
+export const autoMapping = async (data) => {
+  return await get('/basicdata/carryingMainteOrgan/autoMapping', data)
+}
+
+export const queryPageCarryingAvmatUseRegister = async (data) => {
+  return await post('/basicdata/carryingAvmatUseRegister/queryPageCarryingAvmatUseRegister', data)
+}
+export const batchAddCarryingAvmatUseRegister = async (data) => {
+  return await post('/basicdata/carryingAvmatUseRegister/batchAddCarryingAvmatUseRegister', data)
+}
+export const removeAircaftCatalog = async (data) => {
+  return await post('/basicdata/carryingAvmatUseRegister/removeAircaftCatalog', data)
+}
+export const basicdataQueryFlyTask = async (data) => {
+  return await post('/basicdata/carryingAvmatUseRegister/queryFlyTask', data)
+}
+
+export const socialSecurityPage = async (data) => {
+  return await post('/safeguard/socialSecurity/page', data)
+}
+export const socialSecurityAdd = async (data) => {
+  return await post('/safeguard/socialSecurity/add', data)
+}
+export const socialSecurityEdit = async (data) => {
+  return await post('/safeguard/socialSecurity/edit', data)
+}
+export const socialSecurityRemove = async (data) => {
+  return await post('/safeguard/socialSecurity/remove', data)
+}
+export const socialSecurityDetailsPage = async (data) => {
+  return await post('/safeguard/socialSecurityDetails/page', data)
+}
+export const generatePriceList = async (data) => {
+  return await post('/safeguard/socialSecurityDetails/generatePriceList', data)
+}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 7
src/assets/font/iconfont.js


+ 4 - 0
src/components/AddUserDialog/index.vue

@@ -9,6 +9,7 @@
 </template>
 
 <script>
+import { useMessage } from '@/utils/element-ui'
 import { columns, options } from './index'
 import { getUnAuthRoleUser } from '@/api/system/user'
 export default {
@@ -39,6 +40,9 @@ export default {
       this.$refs.Ltable.clearSelection()
     },
     handerClick() {
+      if (this.activeArr.length == 0) {
+        return useMessage('warning', '请至少选择一个用户!')
+      }
       this.$emit('handerClick', this.activeArr)
       this.tableData = []
       this.activeArr = []

+ 50 - 0
src/components/FittingsModal/index.js

@@ -0,0 +1,50 @@
+export const defaultProps = {
+  children: 'children',
+  label: 'label'
+}
+
+export const columns = (_this) => [
+  {
+    prop: 'aircaftCatalogCode',
+    label: '飞机编号'
+  },
+  {
+    prop: 'aircaftModelName',
+    label: '所属机型'
+  },
+  {
+    prop: 'aircaftTypeName',
+    label: '所属机种'
+  },
+
+  {
+    prop: 'mechanician',
+    label: '机械师'
+  },
+  {
+    button: true,
+    label: '操作',
+    width: '240px',
+    group: [
+      {
+        name: '选择',
+        type: 'text',
+        round: false,
+        plain: false,
+        onClick: (row, index, scope) => {
+          _this.select(row)
+        }
+      }
+    ]
+  }
+]
+
+export const options = {
+  stripe: true, // 斑马纹
+  mutiSelect: false, // 多选框
+  index: false, // 显示序号, 多选则 mutiSelect
+  loading: false, // 表格动画
+  initTable: true, // 是否一挂载就加载数据
+  border: true,
+  height: 'calc(100vh - 380px)'
+}

+ 0 - 0
src/components/FittingsModal/index.scss


+ 91 - 0
src/components/FittingsModal/index.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-dialog class="fittings-modal" title="选择任务飞机" :visible="fittingsVisible" width="1200px" :before-close="closefittingsVisible">
+    <div class="fittings-modal-box">
+      <div class="fittings-modal-box-left">
+        <MenuTree :currentNodeKey="currentNodeKey" :treedata="menuTreeData" @TreeNodeclick="treeNodeClick" v-bind="treeObj"> </MenuTree>
+      </div>
+      <div class="fittings-modal-box-right">
+        <LTable ref="table" :defaultFetch="false" :columns="columns" :dataSource="dialogTableData" :options="options" :fetch="getAircraftsByCode" :pagination="tableRequset"></LTable>
+      </div>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { columns, options, defaultProps } from './index.js'
+import { getAircaftTypeAndModelTree, getAircraftsByCode } from '@/api/task/carrierFlightMission'
+export default {
+  name: 'FittingsModal',
+  components: {},
+  props: { taskId: {} },
+  data() {
+    // 这里存放数据
+    return {
+      currentNodeKey: '',
+      currentRow: null,
+      menuTreeData: [],
+      columns: columns(this),
+      options,
+      dialogTableData: [],
+      defaultProps,
+      fittingsVisible: false,
+      treeObj: {
+        title: '机型',
+        activityheight: '500px',
+        searchIcon: false,
+        configure: defaultProps
+      },
+      tableRequset: {
+        total: 0,
+        pageIndex: 1,
+        pageSize: 10,
+        searchValue: ''
+      }
+    }
+  },
+  mounted() {
+    this.getAircaftTypeAndModelTree()
+  },
+  methods: {
+    async getAircraftsByCode() {
+      let postData = {
+        pageIndex: this.tableRequset.pageIndex,
+        pageSize: this.tableRequset.pageSize,
+        id: this.currentRow.id,
+        taskId: this.taskId
+      }
+      const { code, data } = await getAircraftsByCode(postData)
+      if (code == 200) {
+        this.dialogTableData = data.list
+        this.tableRequset.total = data.totalCount
+      }
+    },
+    async getAircaftTypeAndModelTree() {
+      const { code, data } = await getAircaftTypeAndModelTree()
+      if (code == 200) {
+        this.menuTreeData = data
+        this.currentRow = this.menuTreeData[0]
+        this.getAircraftsByCode()
+      }
+    },
+    openDittingsModal() {
+      this.fittingsVisible = true
+    },
+    closefittingsVisible() {
+      this.fittingsVisible = false
+    },
+    treeNodeClick(rwo) {
+      this.currentRow = rwo
+      this.getAircraftsByCode()
+    },
+    select(row) {
+      this.$emit('select', row)
+      this.fittingsVisible = false
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+@import './index.scss';
+</style>

+ 39 - 9
src/components/LTable/index.vue

@@ -14,7 +14,6 @@
       @select-all="selectAll"
       @row-click="handleRowClick"
       @selection-change="handleSelectionChange"
-      @current-change="handleCurrentChange"
       highlight-current-row
       default-expand-all
       :cell-style="cellStyle"
@@ -71,23 +70,36 @@
             <!-- button 操作按钮  btn.statusKey 判断启用的字段 | btn.disableKey 判断禁用的值 | disableKey在启用和禁用时相反-->
             <!-- 禁用分两种情况   一种是 disableKey  disableKey 是指状态值是 disableKey 的时候禁用 -->
             <!-- 另一种是 unDisableKey  unDisableKey 是指状态值不是 unDisableKey 的时候禁用 -->
+            <!-- btn.isChildShow 控制子级是否显示,isParentShow控制父级是否显示  -->
+            <!--  v-show="hasChildren(scope.row, btn.showType)" -->
             <template v-if="column.button">
               <template v-for="(btn, i) in column.group">
                 <el-button
-                  :key="i"
+                  v-show="hasChildren(scope.row, btn.showType)"
                   v-if="btn.statusKey"
+                  :key="i"
+                  :type="btn.type"
+                  :round="btn.round"
+                  :size="btn.size || 'mini'"
+                  :icon="btn.icon"
+                  :plain="btn.plain"
+                  @click.stop="btn.onClick(scope.row, scope.$index, scope)"
                   :disabled="unDisabled(scope.row[btn.statusKey], btn.unDisableKey, btn.disableKey)"
+                  >{{ btn.name }}</el-button
+                >
+                <el-button
+                  v-show="hasChildren(scope.row, btn.showType)"
+                  v-if="!btn.statusKey"
+                  :key="i"
                   :type="btn.type"
                   :round="btn.round"
                   :size="btn.size || 'mini'"
                   :icon="btn.icon"
                   :plain="btn.plain"
                   @click.stop="btn.onClick(scope.row, scope.$index, scope)"
+                  :disabled="btn.isDisabled"
                   >{{ btn.name }}</el-button
                 >
-                <el-button v-if="!btn.statusKey" :key="i" :type="btn.type" :round="btn.round" :size="btn.size || 'mini'" :icon="btn.icon" :plain="btn.plain" @click.stop="btn.onClick(scope.row, scope.$index, scope)" :disabled="btn.isDisabled">{{
-                  btn.name
-                }}</el-button>
               </template>
             </template>
 
@@ -202,6 +214,28 @@ export default {
     }
   },
   methods: {
+    hasChildren(row, showType) {
+      //父级显示
+      if (showType && showType == '0') {
+        //父级判断
+        if (row.parentId == null || row.parentId == '') {
+          return true
+        } else {
+          return false
+        }
+      }
+      //子级显示
+      else if (showType && showType == '1') {
+        //父级判断
+        if ((row.parentId == null || row.parentId == '') && row.children && row.children.length > 0) {
+          return false
+        } else {
+          return true
+        }
+      } else {
+        return true
+      }
+    },
     editCell(row, column) {
       this.oldCellData = deepClone(row)
       this.$set(row, column.property + 'isShow', true)
@@ -258,10 +292,6 @@ export default {
       this.$emit('selection-change', selection)
     },
 
-    handleCurrentChange(selection) {
-      this.$emit('current-change', selection)
-    },
-
     // 点击table某一行时触发事件
     handleRowClick(row, event, column) {
       this.$emit('handleRowClick', row, event, column)

+ 0 - 1
src/components/TagsView/index.vue

@@ -69,7 +69,6 @@ export default {
       } else {
         this.closeTag()
       }
-      // debugger
     },
     // 鼠标右键
     openmenu(e, index) {

+ 45 - 0
src/components/WUploadBtn/index.js

@@ -0,0 +1,45 @@
+/**
+ *  下拉框,radio,多选框的options
+ * @param {*}  初始化配置 || 下拉框请求回来的值 || 对应的字段
+ * @returns
+ */
+export const changeOptions = (modalConfig, options, key) => {
+  modalConfig?.formItems.map((item) => {
+    if (item.key == key) {
+      item.valueOptions = options
+    }
+  })
+}
+
+/**
+ *  启用 禁用
+ * @param {*}  初始化配置 || true禁用,false启用 || 对应的字段[]?
+ * @returns
+ */
+export const handleDisabled = (modalConfig, boolean, key) => {
+  modalConfig?.formItems.map((item) => {
+    if (key) {
+      key.map((i) => {
+        if (item.key == i) {
+          if (item.options) {
+            item.options.disabled = boolean
+          } else {
+            item.disabled = boolean
+          }
+        } else {
+          if (item.options) {
+            item.options.disabled = !boolean
+          } else {
+            item.disabled = !boolean
+          }
+        }
+      })
+    } else {
+      if (item.options) {
+        item.options.disabled = boolean
+      } else {
+        item.disabled = boolean
+      }
+    }
+  })
+}

+ 0 - 0
src/components/WUploadBtn/index.scss


+ 57 - 0
src/components/WUploadBtn/index.vue

@@ -0,0 +1,57 @@
+<template>
+  <div class="w-up-btn">
+    <el-upload :disabled="disabledVal" class="upload-demo" ref="uploadEl" :data="uploadParams" :action="action" :on-remove="handleRemove" :before-remove="beforeRemove" multiple :limit="3" :file-list="fileList">
+      <el-button size="small" type="primary">点击上传</el-button>
+    </el-upload>
+  </div>
+</template>
+
+<script>
+import store from '@/store/index'
+export default {
+  name: 'WUploadBtn',
+  props: {
+    disabledVal: Boolean,
+    tossUrls: {
+      type: Array,
+      default: () => []
+    }
+  },
+  data() {
+    return {
+      action: process.env.VUE_APP_BASE_API + '/supportMaterial/upload',
+      uploadParams: {
+        userId: store.state.user.userInfo.user.userId
+      },
+      fileList: []
+    }
+  },
+  methods: {
+    getTossUrlsString() {
+      return this.tossUrls.toString()
+    },
+
+    beforeRemove() {},
+
+    handlePreview() {},
+
+    onSuccess(response) {
+      const { id } = response.data[0]
+      this.tossUrls.push(id)
+    },
+
+    handleRemove(file, fileList) {
+      const files = this.$refs.uploadEl.uploadFiles
+      for (let i = 0; i < files.length; i++) {
+        if (files[i]['url'] === file.url) {
+          files.splice(i, 1)
+          this.tossUrls.splice(i, 1)
+        }
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+@import './index.scss';
+</style>

+ 51 - 0
src/components/aviationMaterialsModal/index.js

@@ -0,0 +1,51 @@
+export const dialogTreeObj = {
+  title: '所属分类',
+  activityheight: '500px',
+  searchIcon: false,
+  configure: {
+    children: 'children',
+    label: 'avmatCategoriesName'
+  }
+}
+
+export const dialogOptions = {
+  stripe: true, // 斑马纹
+  mutiSelect: false, // 多选框
+  index: false, // 显示序号, 多选则 mutiSelect
+  loading: false, // 表格动画
+  initTable: true, // 是否一挂载就加载数据
+  border: true,
+  height: 'calc(100vh - 380px)'
+}
+
+export const dialogColumns = (_this) => [
+  {
+    prop: 'avmatCatalogName',
+    label: '航材名称'
+  },
+  {
+    prop: 'avmatCatalogCode',
+    label: '航材编号'
+  },
+  {
+    prop: 'avmatCategoriesName',
+    label: '航材分类'
+  },
+
+  {
+    button: true,
+    label: '操作',
+    width: '240px',
+    group: [
+      {
+        name: '选择',
+        type: 'text',
+        round: false,
+        plain: false,
+        onClick: (row, index, scope) => {
+          _this.select(row)
+        }
+      }
+    ]
+  }
+]

+ 0 - 0
src/components/aviationMaterialsModal/index.scss


+ 111 - 0
src/components/aviationMaterialsModal/index.vue

@@ -0,0 +1,111 @@
+<template>
+  <!-- 选择航材 -->
+  <el-dialog class="fittings-modal" title="选择航材" :visible="fittingsVisible" width="1200px" :before-close="closefittingsVisible">
+    <div class="fittings-modal-box">
+      <div class="fittings-modal-box-left">
+        <el-radio-group v-model="radio" style="margin-bottom: 20px" v-if="toggle" @change="handleToggle">
+          <el-radio-button label="1">航材</el-radio-button>
+          <el-radio-button label="0">机务</el-radio-button>
+        </el-radio-group>
+        <MenuTree node-key="avmatCategoriesCode" :currentNodeKey="dialogCurrentNodeKey" :treedata="dialogMenuTreeData" @TreeNodeclick="dialogTreeNodeClick" v-bind="dialogTreeObj"> </MenuTree>
+      </div>
+      <div class="fittings-modal-box-right">
+        <LTable ref="table" :defaultFetch="false" :columns="dialogColumns" :dataSource="dialogTableData" :options="dialogOptions" :fetch="dialogFetchTableData" :pagination="dialogTableRequset"></LTable>
+      </div>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { dialogTreeObj, dialogColumns, dialogOptions } from './index'
+import { roleAvmatCategoriesTree, getAvmatCatalog } from '@/api/carrierStandard/carrierListMachineryPreparation'
+export default {
+  props: {
+    avmatType: {
+      type: String,
+      default: '1'
+    },
+    // 允许切换 航材1/机务0
+    toggle: {
+      type: Boolean,
+      default: false
+    }
+  },
+  name: 'AviationMaterialsModal',
+  components: {},
+  data() {
+    // 这里存放数据
+    return {
+      dialogCurrentNodeKey: '',
+      fittingsVisible: false,
+      dialogMenuTreeData: [],
+      dialogTreeObj: dialogTreeObj,
+      dialogColumns: dialogColumns(this),
+      dialogTableData: [],
+      dialogOptions: dialogOptions,
+      dialogTableRequset: {
+        total: 0,
+        pageIndex: 1,
+        pageSize: 10
+      },
+      radio: '1',
+      avmatCategoriesId: ''
+    }
+  },
+  mounted() {},
+  methods: {
+    handleToggle() {
+      this.dialogFetchTableData()
+    },
+    closefittingsVisible() {
+      this.fittingsVisible = false
+      this.activeIndex = null
+    },
+    dialogTreeNodeClick(node) {
+      this.dialogCurrentNodeKey = node.avmatCategoriesCode
+      this.avmatCategoriesId = node.avmatCategoriesId || ''
+      this.dialogFetchTableData()
+    },
+    openFittings() {
+      this.getroleAvmatCategoriesTree()
+      this.fittingsVisible = true
+    },
+    async getroleAvmatCategoriesTree() {
+      const { code, data } = await roleAvmatCategoriesTree()
+      if (code == 200) {
+        this.dialogMenuTreeData = [
+          {
+            avmatCategoriesName: '全部',
+            avmatCategoriesCode: '',
+            children: data
+          }
+        ]
+        this.dialogFetchTableData()
+      }
+    },
+    async dialogFetchTableData() {
+      let postData = {
+        avmatCategoriesCode: this.dialogCurrentNodeKey,
+        avmatType: this.toggle ? this.radio : this.avmatType,
+        pageIndex: this.dialogTableRequset.pageIndex,
+        pageSize: this.dialogTableRequset.pageSize,
+        avmatCategoriesId: this.avmatCategoriesId
+      }
+      const { code, data } = await getAvmatCatalog(postData)
+      if (code == 200) {
+        this.dialogTableData = data.list
+        this.dialogTableRequset.total = data.totalCount
+      }
+    },
+    select(row) {
+      this.$emit('select', row)
+      this.fittingsVisible = false
+      this.dialogCurrentNodeKey = ''
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+@import './index.scss';
+</style>

+ 1 - 84
src/http/axios.js

@@ -95,91 +95,8 @@ const myAxios = (axiosConfig, scustomOptions, loadingOptions) => {
 
   return service(axiosConfig)
 }
-const newAxios = (axiosConfig, scustomOptions, loadingOptions) => {
-  const service = axios.create({
-    baseURL: '/als',
-    timeout: 1000000
-  })
 
-  // 自定义配置
-  let customOptions = Object.assign(
-    {
-      repeatRequestCancel: true, // 是否开启取消重复请求, 默认为 true
-      loading: false, // 是否开启loading层效果, 默认为false
-      reductDataFormat: true, // 是否开启简洁的数据结构响应, 默认为true
-      errorMessageShow: true, // 是否开启接口错误信息展示,默认为true
-      codeMessageShow: true // 是否开启code不为0时的信息提示, 默认为false
-    },
-    scustomOptions
-  )
-
-  // 请求拦截
-  service.interceptors.request.use(
-    (config) => {
-      removePending(config)
-      customOptions.repeatRequestCancel && addPending(config)
-      // 创建loading实例
-      if (customOptions.loading) {
-        loadingInstance.count++
-        if (loadingInstance.count === 1) {
-          loadingInstance.target = Loading.service(loadingOptions)
-        }
-      }
-      // 自动携带token
-      if (getItem('token')) {
-        // 主动处理登录超时
-        if (isCheckTimeout()) {
-          store.dispatch('user/loginOut')
-          Message({
-            type: 'error',
-            message: '登录超时'
-          })
-        }
-        config.headers.Authorization = getItem('token')
-      }
-
-      return config
-    },
-    (error) => {
-      return Promise.reject(error)
-    }
-  )
-
-  // 响应拦截
-  service.interceptors.response.use(
-    (response) => {
-      removePending(response.config)
-      customOptions.loading && closeLoading(customOptions) // 关闭loading
-      // 处理流文件
-      if (response.request.responseType == 'blob') {
-        const { data, status, headers } = response
-        return { data, headers }
-      }
-
-      if (customOptions.codeMessageShow && response.data && response.data.code != 200) {
-        Message({
-          type: 'error',
-          message: response.data.message || response.data.msg
-        })
-        if (response.data.code == 401) {
-          store.dispatch('user/loginOut')
-        }
-        return Promise.reject(response.data) // code不等于200, 页面具体逻辑就不执行了
-      }
-
-      return customOptions.reductDataFormat ? response.data : response
-    },
-    (error) => {
-      error.config && removePending(error.config)
-      customOptions.loading && closeLoading(customOptions) // 关闭loading
-      customOptions.errorMessageShow && httpErrorStatusHandle(error) // 处理错误状态码
-      return Promise.reject(error)
-    }
-  )
-
-  return service(axiosConfig)
-}
-export { myAxios, newAxios }
+export default myAxios
 
 /**
  * 处理异常

+ 11 - 71
src/http/index.js

@@ -1,4 +1,5 @@
-import { myAxios, newAxios } from './axios'
+import myAxios from './axios'
+
 /**
  * post方法,对应post请求
  * @param {String} url [请求的url地址]
@@ -6,14 +7,7 @@ import { myAxios, newAxios } from './axios'
  */
 
 export function getFile(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'get',
     params: formData,
@@ -25,13 +19,7 @@ export function getFile(url, formData) {
 }
 
 export function postFile(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'post',
     data: formData,
@@ -43,13 +31,7 @@ export function postFile(url, formData) {
 }
 
 export function post(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'post',
     data: formData,
@@ -60,13 +42,7 @@ export function post(url, formData) {
 }
 
 export function getPost(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'post',
     params: formData,
@@ -77,13 +53,7 @@ export function getPost(url, formData) {
 }
 
 export function parmasPost(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'post',
     params: formData
@@ -96,38 +66,20 @@ export function parmasPost(url, formData) {
  * @param {Object} params [请求时携带的参数]
  */
 export function get(url, parameter) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'get',
     params: parameter
   })
 }
 export function upost(url, formData) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
   return myAxios({
     url: url + formData,
     method: 'post'
   })
 }
 export function uget(url, parameter) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url + parameter,
     method: 'get'
   })
@@ -139,13 +91,7 @@ export function uget(url, parameter) {
  * @param {Object} params [请求时携带的参数]
  */
 export function deletes(url, data) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'delete',
     data: data
@@ -158,13 +104,7 @@ export function deletes(url, data) {
  * @param {Object} data [请求时携带的参数]
  */
 export function put(url, data) {
-  let axiosInstance = null
-  if (url.indexOf('/als') === -1) {
-    axiosInstance = myAxios
-  } else {
-    axiosInstance = newAxios
-  }
-  return axiosInstance({
+  return myAxios({
     url: url,
     method: 'put',
     data: data

+ 2 - 7
src/main.js

@@ -6,14 +6,11 @@ import ElementUI from 'element-ui'
 import { resetForm } from '@/utils/element-ui'
 import { selectDictLabel, parseTime } from '@/utils/dataDict'
 import { mymsgbox, myNotification, popupduration } from '@/utils/variouspopups'
-// import dataV from '@jiaminghi/data-view'
+import dataV from '@jiaminghi/data-view'
 import 'element-ui/lib/theme-chalk/index.css'
 import '@/assets/font/iconfont.css'
 import './pemission'
 import { resolveBlob } from '@/utils'
-// 文件上传组件
-import FileUpload from '@/views/als/components/FileUpload'
-import '@/views/als/utils/enum-data'
 
 // 全局设置消息框 点击屏幕外部不能关闭
 ElementUI.MessageBox.setDefaults({ closeOnClickModal: false })
@@ -48,10 +45,8 @@ Vue.prototype.$resolveBlob = resolveBlob
 
 Vue.prototype.resetForm = resetForm
 Vue.prototype.popupduration = popupduration
-
-Vue.component('FileUpload', FileUpload)
 Vue.use(ElementUI)
-// Vue.use(dataV)
+Vue.use(dataV)
 
 new Vue({
   router,

+ 56 - 38
src/router/modules/basicData.js

@@ -11,42 +11,46 @@ import Layout from '@/layout/index.vue'
  * dataEnvironment                      环境因子管理
  */
 
-export const dataSpecies = {
+export const dataType = {
   path: '/basicData',
   redirect: '/basicData/dataSpecies',
   component: Layout,
-  name: 'DataSpecies',
+  name: 'DataType',
   meta: {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
-      path: '/basicData/dataSpecies',
-      component: () => import('@/views/basicData/dataSpecies/index.vue'),
+      path: '/basicData/dataType',
+      component: () => import('@/views/basicData/dataType/index.vue'),
       meta: {
-        title: '机型管理'
-      }
+        title: '机种管理'
+      },
+      sort: 1
     }
   ]
 }
 
-export const dataType = {
+export const dataSpecies = {
   path: '/basicData',
   redirect: '/basicData/dataSpecies',
   component: Layout,
-  name: 'DataType',
+  name: 'DataSpecies',
   meta: {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
-      path: '/basicData/dataType',
-      component: () => import('@/views/basicData/dataType/index.vue'),
+      path: '/basicData/dataSpecies',
+      component: () => import('@/views/basicData/dataSpecies/index.vue'),
       meta: {
-        title: '机种管理'
-      }
+        title: '机型管理'
+      },
+      sort: 2
     }
   ]
 }
@@ -60,36 +64,40 @@ export const dataAircraftCataloging = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataAircraftCataloging',
       component: () => import('@/views/basicData/dataAircraftCataloging/index.vue'),
       meta: {
         title: '飞机编目管理'
-      }
+      },
+      sort: 3
     }
   ]
 }
 
-export const dataAircraftConfiguration = {
-  path: '/basicData',
-  redirect: '/basicData/dataSpecies',
-  component: Layout,
-  name: 'DataAircraftConfiguration',
-  meta: {
-    title: '基础数据',
-    icon: 'el-icon-s-platform'
-  },
-  children: [
-    {
-      path: '/basicData/dataAircraftConfiguration',
-      component: () => import('@/views/basicData/dataAircraftConfiguration/index.vue'),
-      meta: {
-        title: '飞机构型管理'
-      }
-    }
-  ]
-}
+// export const dataAircraftConfiguration = {
+//   path: '/basicData',
+//   redirect: '/basicData/dataSpecies',
+//   component: Layout,
+//   name: 'DataAircraftConfiguration',
+//   meta: {
+//     title: '基础数据',
+//     icon: 'el-icon-s-platform'
+//   },
+//   sort: 10,
+//   children: [
+//     {
+//       path: '/basicData/dataAircraftConfiguration',
+//       component: () => import('@/views/basicData/dataAircraftConfiguration/index.vue'),
+//       meta: {
+//         title: '飞机构型管理'
+//       },
+//       sort: 11
+//     }
+//   ]
+// }
 
 export const dataSailingMaterialClassification = {
   path: '/basicData',
@@ -100,13 +108,15 @@ export const dataSailingMaterialClassification = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataSailingMaterialClassification',
       component: () => import('@/views/basicData/dataSailingMaterialClassification/index.vue'),
       meta: {
         title: '航材分类管理'
-      }
+      },
+      sort: 4
     }
   ]
 }
@@ -120,13 +130,15 @@ export const dataSailingMaterialMaterialCoding = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataSailingMaterialMaterialCoding',
       component: () => import('@/views/basicData/dataSailingMaterialMaterialCoding/index.vue'),
       meta: {
         title: '航材物资编目-机务'
-      }
+      },
+      sort: 5
     }
   ]
 }
@@ -140,13 +152,15 @@ export const dataSailingMaterialMaterialCodingAviation = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataSailingMaterialMaterialCodingAviation',
       component: () => import('@/views/basicData/dataSailingMaterialMaterialCodingAviation/index.vue'),
       meta: {
         title: '航材物资编目-航材'
-      }
+      },
+      sort: 6
     }
   ]
 }
@@ -160,13 +174,15 @@ export const dataSailingMaterialPrice = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataSailingMaterialPrice',
       component: () => import('@/views/basicData/dataSailingMaterialPrice/index.vue'),
       meta: {
         title: '航材价格管理'
-      }
+      },
+      sort: 7
     }
   ]
 }
@@ -180,16 +196,18 @@ export const dataEnvironment = {
     title: '基础数据',
     icon: 'el-icon-s-platform'
   },
+  sort: 10,
   children: [
     {
       path: '/basicData/dataEnvironment',
       component: () => import('@/views/basicData/dataEnvironment/index.vue'),
       meta: {
         title: '环境因子管理'
-      }
+      },
+      sort: 8
     },
     {
-      path: '/basicData/dataEnvironment/:id/:name',
+      path: '/basicData/dataEnvironment/:id/:name/:value',
       component: () => import('@/views/basicData/dataEnvironment/suitableSpareParts.vue'),
       meta: {
         title: '环境因子管理-适用航材',

+ 388 - 0
src/router/modules/carrierStandard.js

@@ -0,0 +1,388 @@
+import Layout from '@/layout/index.vue'
+
+/**
+ * carrierComputationalModel                 携行计算模型管理
+ * carrierComputationalModelVersion          携行计算模型版本管理
+ * carrierSailingMaterialConsumeRecord       航材历年消耗管理
+ * carrierSailingMaterialConsumeRegularities 航材消耗规律管理
+ * carrierFlightMission                      飞行任务管理
+ * carrierListExecutionRegistration          携行清单执行登记
+ * carrierListMachineryPreparation           携行清单机务编修
+ *
+ * 携行清单机务编修 carrierListMachineryPreparation
+ * 携行清单航材编修 carrierListShipping
+ * 任务执行情况登记 carrierListExecutionRegistration
+ * 携行航材使用登记 useRegistration
+ * 携行计算模型管理 carrierComputationalModel
+ * 航材消耗规律管理 carrierSailingMaterialConsumeRegularities
+ * 历年航材消耗数据 carrierSailingMaterialConsumeRecord
+ * 社会化保障参考   safeguardCost
+ *
+ */
+
+//携行清单机务编修
+export const carrierListMachineryPreparation = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierListMachineryPreparation',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierListMachineryPreparation',
+      component: () => import('@/views/carrierStandard/carrierListMachineryPreparation/index.vue'),
+      meta: {
+        title: '携行清单机务编修'
+      },
+      sort: 1
+    },
+    {
+      path: '/carrierStandard/carrierListMachineryPreparation/compile/:id',
+      component: () => import('@/views/carrierStandard/carrierListMachineryPreparation/components/compile/index.vue'),
+      meta: {
+        title: '携行清单机务编修-编修',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListMachineryPreparation/look/:id',
+      component: () => import('@/views/carrierStandard/carrierListMachineryPreparation/components/look/index.vue'),
+      meta: {
+        title: '携行清单机务编修-查看详情',
+        hide: true
+      }
+    }
+  ]
+}
+
+//机务清单总体审核
+export const carrierAllAudit = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierAllAudit',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierAllAudit',
+      component: () => import('@/views/carrierStandard/carrierAllAudit/index.vue'),
+      meta: {
+        title: '机务清单总体审核'
+      },
+      sort: 2
+    },
+    {
+      path: '/carrierStandard/carrierAllAudit/look/:id',
+      component: () => import('@/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.vue'),
+      meta: {
+        title: '机务清单总体审核-查看详情',
+        hide: true
+      }
+    }
+  ]
+}
+
+//携行清单航材编修
+export const carrierListShipping = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierListShipping',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierListShipping',
+      component: () => import('@/views/carrierStandard/carrierListShipping/index.vue'),
+      meta: {
+        title: '携行清单航材编修'
+      },
+      sort: 3
+    },
+    {
+      path: '/carrierStandard/carrierListShipping/compile/:id',
+      component: () => import('@/views/carrierStandard/carrierListShipping/components/compile/index.vue'),
+      meta: {
+        title: '携行清单航材编修-编修',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListShipping/look/:id',
+      component: () => import('@/views/carrierStandard/carrierListShipping/components/look/index.vue'),
+      meta: {
+        title: '携行清单航材编修-详情',
+        hide: true
+      }
+    }
+  ]
+}
+
+// //机务领用航材申请
+// export const maintenanceUseMaterialApply = {
+//   path: '/carrierStandard',
+//   redirect: '/carrierStandard/carrierComputationalModel',
+//   component: Layout,
+//   name: 'MaintenanceUseMaterialApply',
+//   meta: {
+//     title: '航材管理',
+//     icon: 'el-icon-s-platform'
+//   },
+//   sort: 9,
+//   children: [
+//     {
+//       path: '/carrierStandard/carrierListShipping',
+//       component: () => import('@/views/carrierStandard/carrierListShipping/index.vue'),
+//       meta: {
+//         title: '机务领用航材申请'
+//       },
+//       sort: 4
+//     }
+//   ]
+// }
+
+//任务执行情况登记
+export const carrierListExecutionRegistration = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierListExecutionRegistration',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 10,
+  children: [
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistration/index.vue'),
+      meta: {
+        title: '任务执行情况登记'
+      },
+      sort: 5
+    },
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration/aerospaceSpareParts',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistration/components/aerospaceSpareParts/index.vue'),
+      meta: {
+        title: '携行清单执行登记-航材',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration/missionPlane',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistration/components/missionPlane/index.vue'),
+      meta: {
+        title: '携行清单执行登记-任务飞机',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration/compile',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistrationCompile/index.vue'),
+      meta: {
+        title: '携行清单执行登记-编修',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration/registering/:taskId',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistration/components/registering/index.vue'),
+      meta: {
+        title: '任务执行情况登记-登记',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierListExecutionRegistration/look/:taskId',
+      component: () => import('@/views/carrierStandard/carrierListExecutionRegistration/components/look/index.vue'),
+      meta: {
+        title: '任务执行情况登记-查看详情',
+        hide: true
+      }
+    }
+    //
+  ]
+}
+
+//携行航材使用登记
+export const useRegistration = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'UseRegistration',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierUseRegistration',
+      component: () => import('@/views/carrierStandard/carrierUseRegistration/index.vue'),
+      meta: {
+        title: '携行航材使用登记'
+      },
+      sort: 5
+    },
+    {
+      path: '/carrierStandard/carrierSailingMaterial/:id',
+      component: () => import('@/views/carrierStandard/carrierUseRegistration/components/sailingMaterial/index.vue'),
+      meta: {
+        title: '携行航材使用登记-航材',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierUseRegistration/look/:id',
+      component: () => import('@/views/carrierStandard/carrierUseRegistration/components/look/index.vue'),
+      meta: {
+        title: '携行航材使用登记-查看详情',
+        hide: true
+      }
+    }
+  ]
+}
+
+//携行计算模型管理
+export const carrierComputationalModel = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierComputationalModel',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierComputationalModel',
+      component: () => import('@/views/carrierStandard/carrierComputationalModel/index.vue'),
+      meta: {
+        title: '携行计算模型管理'
+      },
+      sort: 6
+    }
+  ]
+}
+
+//航材消耗规律管理
+export const carrierSailingMaterialConsumeRegularities = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierSailingMaterialConsumeRegularities',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierSailingMaterialConsumeRegularities',
+      component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRegularities/index.vue'),
+      meta: {
+        title: '航材消耗规律管理'
+      },
+      sort: 7
+    }
+  ]
+}
+
+//历年航材消耗数据
+export const carrierSailingMaterialConsumeRecord = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'CarrierSailingMaterialConsumeRecord',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/carrierSailingMaterialConsumeRecord',
+      component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRecord/index.vue'),
+      meta: {
+        title: '历年航材消耗数据'
+      },
+      sort: 8
+    },
+    // {
+    //   path: '/carrierStandard/carrierSailingMaterialConsumeRecord',
+    //   component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRecord/annualManagement.vue'),
+    //   meta: {
+    //     title: '历年航材消耗数据-年度管理'
+    //   }
+    // },
+    {
+      path: '/carrierStandard/carrierSailingMaterialConsumeRecord/outboundRecord/:consumeDataId',
+      component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRecord/outboundRecord.vue'),
+      meta: {
+        title: '历年航材消耗数据-出库记录',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierSailingMaterialConsumeRecord/warehousingRecord/:consumeDataId',
+      component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRecord/warehousingRecord.vue'),
+      meta: {
+        title: '历年航材消耗数据-入库记录',
+        hide: true
+      }
+    },
+    {
+      path: '/carrierStandard/carrierSailingMaterialConsumeRecord/summarizedCalculation/:consumeDataId',
+      component: () => import('@/views/carrierStandard/carrierSailingMaterialConsumeRecord/summarizedCalculation.vue'),
+      meta: {
+        title: '历年航材消耗数据-汇总计算',
+        hide: true
+      }
+    }
+  ]
+}
+
+//社会化保障参考
+export const safeguardCost = {
+  path: '/carrierStandard',
+  redirect: '/carrierStandard/carrierComputationalModel',
+  component: Layout,
+  name: 'SafeguardCost',
+  meta: {
+    title: '航材管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 9,
+  children: [
+    {
+      path: '/carrierStandard/safeguardCost',
+      component: () => import('@/views/carrierStandard/safeguardCost/index.vue'),
+      meta: {
+        title: '社会化保障参考',
+        hide: true
+      },
+      sort: 9
+    },
+    {
+      path: '/carrierStandard/safeguardCost/:id',
+      component: () => import('@/views/carrierStandard/safeguardCost/priceList.vue'),
+      meta: {
+        title: '社会化保障参考-价格清单',
+        hide: true
+      }
+    }
+  ]
+}

+ 55 - 0
src/router/modules/safeguard.js

@@ -0,0 +1,55 @@
+import Layout from '@/layout/index.vue'
+
+/**
+ * societySafeguard                   社会化保障
+ * safeguardCost                      直接参考成本
+ */
+
+// export const societySafeguard = {
+//   path: '/safeguard',
+//   redirect: '/safeguard/societySafeguard',
+//   component: Layout,
+//   name: 'SocietySafeguard',
+//   meta: {
+//     title: '社会化保障',
+//     icon: 'el-icon-s-platform'
+//   },
+//   children: [
+//     {
+//       path: '/safeguard/societySafeguard',
+//       component: () => import('@/views/safeguard/societySafeguard/index.vue'),
+//       meta: {
+//         title: '社会化保障'
+//       }
+//     }
+//   ]
+// }
+
+// export const safeguardCost = {
+//   path: '/safeguard',
+//   redirect: '/safeguard/safeguardCost',
+//   component: Layout,
+//   name: 'SafeguardCost',
+//   meta: {
+//     title: '社会化保障参考',
+//     icon: 'el-icon-s-platform'
+//   },
+//   children: [
+//     {
+//       path: '/safeguard/safeguardCost',
+//       component: () => import('@/views/safeguard/safeguardCost/index.vue'),
+//       meta: {
+//         title: '社会化保障参考',
+//         hide: true
+//       }
+//     },
+//     {
+//       path: '/safeguard/safeguardCost/:id',
+//       component: () => import('@/views/safeguard/safeguardCost/priceList.vue'),
+//       meta: {
+//         title: '社会化保障参考-价格清单',
+//         hide: true
+//       }
+//     }
+//   ]
+// }

+ 88 - 0
src/router/modules/statisticalAnalysis.js

@@ -0,0 +1,88 @@
+import Layout from '@/layout/index.vue'
+
+/**
+ * statisticalAnalysisSafeguardSynthesize                保障综合分析
+ * statisticalAnalysisSafeguardAchievementRate           保障达成率统计分析
+ * statisticalAnalysisFundsStatistics                    经费统计分析
+ * statisticalAnalysisSailingMaterialSpareParts          航材统计分析
+ */
+
+export const statisticalAnalysisSailingMaterialSpareParts = {
+  path: '/statisticalAnalysis',
+  redirect: '/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize',
+  component: Layout,
+  name: 'StatisticalAnalysisSailingMaterialSpareParts',
+  meta: {
+    title: '统计分析',
+    icon: 'el-icon-s-platform'
+  },
+  children: [
+    {
+      path: '/statisticalAnalysis/statisticalAnalysisSailingMaterialSpareParts',
+      component: () => import('@/views/statisticalAnalysis/statisticalAnalysisSailingMaterialSpareParts/index.vue'),
+      meta: {
+        title: '军事指标'
+      }
+    }
+  ]
+}
+
+// export const statisticalAnalysisFundsStatistics = {
+//   path: '/statisticalAnalysis',
+//   redirect: '/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize',
+//   component: Layout,
+//   name: 'StatisticalAnalysisFundsStatistics',
+//   meta: {
+//     title: '统计分析',
+//     icon: 'el-icon-s-platform'
+//   },
+//   children: [
+//     {
+//       path: '/statisticalAnalysis/statisticalAnalysisFundsStatistics',
+//       component: () => import('@/views/statisticalAnalysis/statisticalAnalysisFundsStatistics/index.vue'),
+//       meta: {
+//         title: '军事指标'
+//       }
+//     }
+//   ]
+// }
+
+// export const statisticalAnalysisSafeguardAchievementRate = {
+//   path: '/statisticalAnalysis',
+//   redirect: '/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize',
+//   component: Layout,
+//   name: 'StatisticalAnalysisSafeguardAchievementRate',
+//   meta: {
+//     title: '统计分析',
+//     icon: 'el-icon-s-platform'
+//   },
+//   children: [
+//     {
+//       path: '/statisticalAnalysis/statisticalAnalysisSafeguardAchievementRate',
+//       component: () => import('@/views/statisticalAnalysis/statisticalAnalysisSafeguardAchievementRate/index.vue'),
+//       meta: {
+//         title: '保障达成率统计分析'
+//       }
+//     }
+//   ]
+// }
+
+export const statisticalAnalysisSafeguardSynthesize = {
+  path: '/statisticalAnalysis',
+  redirect: '/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize',
+  component: Layout,
+  name: 'StatisticalAnalysisSafeguardSynthesize',
+  meta: {
+    title: '统计分析',
+    icon: 'el-icon-s-platform'
+  },
+  children: [
+    {
+      path: '/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize',
+      component: () => import('@/views/statisticalAnalysis/statisticalAnalysisSafeguardSynthesize/index.vue'),
+      meta: {
+        title: '经济指标'
+      }
+    }
+  ]
+}

+ 50 - 30
src/router/modules/system.js

@@ -8,102 +8,120 @@ import Layout from '@/layout/index.vue'
  * systemLog                    日志信息
  */
 
-export const systemLog = {
+export const systemUser = {
   path: '/system',
   redirect: '/system/program',
   component: Layout,
-  name: 'SystemLog',
+  name: 'SystemUser',
   meta: {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
-      path: '/system/systemLog',
-      component: () => import('@/views/system/systemLog/index.vue'),
+      path: '/system/user',
+      component: () => import('@/views/system/user/index.vue'),
       meta: {
-        title: '日志信息'
-      }
+        title: '用户管理'
+      },
+      sort: 1
     }
   ]
 }
 
-export const systemDataDictionary = {
+export const systemDept = {
   path: '/system',
   redirect: '/system/program',
   component: Layout,
-  name: 'SystemDataDictionary',
+  name: 'SystemDept',
   meta: {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
-      path: '/system/systemDataDictionary',
-      component: () => import('@/views/system/systemDataDictionary/index.vue'),
+      path: '/system/dept',
+      component: () => import('@/views/system/dept/index.vue'),
       meta: {
-        title: '数据字典'
-      }
+        title: '部门管理'
+      },
+      sort: 2
     }
   ]
 }
 
-export const systemUser = {
+export const systemLog = {
   path: '/system',
   redirect: '/system/program',
   component: Layout,
-  name: 'SystemUser',
+  name: 'SystemLog',
   meta: {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
-      path: '/system/user',
-      component: () => import('@/views/system/user/index.vue'),
+      path: '/system/systemLog',
+      component: () => import('@/views/system/systemLog/index.vue'),
       meta: {
-        title: '用户管理'
-      }
+        title: '日志信息'
+      },
+      sort: 3
     }
   ]
 }
 
-export const systemRole = {
+export const systemDataDictionary = {
   path: '/system',
   redirect: '/system/program',
   component: Layout,
-  name: 'SystemRole',
+  name: 'SystemDataDictionary',
   meta: {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
-      path: '/system/role',
-      component: () => import('@/views/system/role/index.vue'),
+      path: '/system/systemDataDictionary',
+      component: () => import('@/views/system/systemDataDictionary/index.vue'),
       meta: {
-        title: '角色管理'
+        title: '数据字典'
+      },
+      sort: 4
+    },
+    {
+      path: '/system/systemDataDictionary/:dictId',
+      component: () => import('@/views/system/systemDataDictionary/data.vue'),
+      meta: {
+        title: '字典数据',
+        hide: true
       }
     }
   ]
 }
 
-export const systemDept = {
+export const systemRole = {
   path: '/system',
   redirect: '/system/program',
   component: Layout,
-  name: 'SystemDept',
+  name: 'SystemRole',
   meta: {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
-      path: '/system/dept',
-      component: () => import('@/views/system/dept/index.vue'),
+      path: '/system/role',
+      component: () => import('@/views/system/role/index.vue'),
       meta: {
-        title: '部门管理'
-      }
+        title: '角色管理'
+      },
+      sort: 5
     }
   ]
 }
@@ -117,13 +135,15 @@ export const systemBackup = {
     title: '系统管理',
     icon: 'el-icon-s-platform'
   },
+  sort: 11,
   children: [
     {
       path: '/system/systemBackup',
       component: () => import('@/views/system/systemBackup/index.vue'),
       meta: {
         title: '系统备份'
-      }
+      },
+      sort: 6
     }
   ]
 }

+ 63 - 0
src/router/modules/task.js

@@ -0,0 +1,63 @@
+import Layout from '@/layout/index.vue'
+
+/**
+ * carrierFlightMission          飞行任务管理
+ * flightTaskResolve             飞行任务分解
+ * taskCarrierListPreparation     机务携行清单编制
+ * taskCarrierAllAudit            机务携行清单审核
+ */
+
+//飞行任务管理
+export const carrierFlightMission = {
+  path: '/task',
+  redirect: '/task/carrierFlightMission',
+  component: Layout,
+  name: 'CarrierFlightMission',
+  meta: {
+    title: '任务管理',
+    icon: 'el-icon-s-platform'
+  },
+  sort: 8,
+  children: [
+    {
+      path: '/task/carrierFlightMission',
+      component: () => import('@/views/task/carrierFlightMission/index.vue'),
+      meta: {
+        title: '飞行任务管理'
+      },
+      sort: 1
+    },
+    {
+      path: '/task/carrierFlightMission/compile',
+      component: () => import('@/views/task/carrierFlightMission/components/compile/index.vue'),
+      meta: {
+        title: '飞行任务管理-任务编制',
+        hide: true
+      }
+    },
+    {
+      path: '/task/carrierFlightMission/aircraft/:id/:status',
+      component: () => import('@/views/task/carrierFlightMission/components/aircraft/index.vue'),
+      meta: {
+        title: '飞行任务管理-任务飞机',
+        hide: true
+      }
+    },
+    {
+      path: '/task/carrierFlightMission/aerospaceSpareParts',
+      component: () => import('@/views/task/carrierFlightMission/components/aerospaceSpareParts/index.vue'),
+      meta: {
+        title: '飞行任务管理-航材',
+        hide: true
+      }
+    },
+    {
+      path: '/task/carrierFlightMission/missionPlane',
+      component: () => import('@/views/task/carrierFlightMission/components/missionPlane/index.vue'),
+      meta: {
+        title: '飞行任务管理-任务飞机',
+        hide: true
+      }
+    }
+  ]
+}

+ 9 - 17
src/router/private-routes.js

@@ -2,29 +2,21 @@ import Layout from '@/layout/index.vue'
 //  这里举例说明 系统管理菜单路由 写法 详见 `/modules/system.js`
 //  目前暂时只支持二级路由 没有三级路由
 
+// 任务管理
+import * as task from './modules/task'
+
+// 航材管理
+import * as carrierStandard from './modules/carrierStandard'
+
 // 基础数据
 import * as basicData from './modules/basicData'
+// 数据管理
 import * as dataManage from './modules/als/dataManage'
 import * as agloManage from './modules/als/agloManage'
 import * as intelligentQA from './modules/als/intelligentQA'
 import * as knowledgeGraph from './modules/als/knowledgeGraph'
 import * as qualityManage from './modules/als/qualityManage'
 
-// 携行标准管理
-// import * as carrierStandard from './modules/carrierStandard'
-
-// import {
-//   carrierFlightMission,
-//   carrierListMachineryPreparation,
-//   carrierListShipping,
-//   carrierListExecutionRegistration,
-//   useRegistration,
-//   carrierComputationalModel,
-//   carrierSailingMaterialConsumeRegularities,
-//   carrierSailingMaterialConsumeRecord,
-//   carrierAllAudit
-// } from './modules/carrierStandard'
-
 // // 社会化保障
 // import * as safeguard from './modules/safeguard'
 
@@ -33,11 +25,10 @@ import * as qualityManage from './modules/als/qualityManage'
 
 //  用户管理 角色管理 权限管理  日志管理 系统配置
 import * as system from './modules/system'
-const allRouter = [dataManage, agloManage, knowledgeGraph, intelligentQA, qualityManage, basicData, system]
+const allRouter = [dataManage, agloManage, knowledgeGraph, intelligentQA, qualityManage, task, carrierStandard, basicData, system]
 
 // 私有路由表
 export const privateRoutes = [
-  // carrierFlightMission,
   // carrierListMachineryPreparation,
   // carrierAllAudit,
   // carrierListShipping,
@@ -46,6 +37,7 @@ export const privateRoutes = [
   // carrierComputationalModel,
   // carrierSailingMaterialConsumeRegularities,
   // carrierSailingMaterialConsumeRecord
+  // safeguardCost
 ]
 allRouter.forEach((i) => {
   privateRoutes.push(...Object.values(i))

+ 0 - 16
src/router/public-routes.js

@@ -37,20 +37,4 @@ export const publicRoutes = [
       }
     ]
   }
-  // {
-  //   path: '/preResult',
-  //   redirect: '/qualityManage/preProcessing/preResult',
-  //   name: 'preProcessResult',
-  //   component: Layout,
-  //   children: [
-  //     {
-  //       path: '/qualityManage/preProcessing/preResult',
-  //       component: () => import('@/views/als/preProcessing/preResult.vue'),
-  //       name: 'PreResult',
-  //       meta: {
-  //         title: '预处理结果'
-  //       }
-  //     }
-  //   ]
-  // }
 ]

+ 0 - 1
src/utils/dataDict.js

@@ -1,6 +1,5 @@
 // 回显数据字典
 export function selectDictLabel(datas = [], value) {
-  // debugger
   var actions = []
   Object.keys(datas).some((key) => {
     if (datas[key].dictValue == '' + value) {

+ 6 - 4
src/utils/route.js

@@ -73,10 +73,9 @@ export const generteMenus = (routes, basePath = '') => {
 
 export const changeSortMenus = (tree) => {
   if (!tree || !Array.isArray(tree)) return []
-
   function customSort(n1, n2) {
-    const { sort: sort1 = Number.MAX_SAFE_INTEGER } = n1.meta || {}
-    const { sort: sort2 = Number.MAX_SAFE_INTEGER } = n2.meta || {}
+    const { sort: sort1 = Number.MAX_SAFE_INTEGER } = n1.sort || {}
+    const { sort: sort2 = Number.MAX_SAFE_INTEGER } = n2.sort || {}
     return sort1 - sort2
   }
 
@@ -101,6 +100,7 @@ export const getMenusData = () => {
         label: item.meta.title,
         id: item.name,
         path: item.path,
+        sort: item.sort,
         children: []
       }
       result.push(obj)
@@ -109,7 +109,7 @@ export const getMenusData = () => {
   privateRoutes.forEach((n) => {
     result.forEach((i) => {
       if (i.path == n.path) {
-        let obj = { parentSymbol: i.id, label: n.children[0].meta.title, id: n.name }
+        let obj = { parentSymbol: i.id, label: n.children[0].meta.title, id: n.name, sort: n.children[0].sort }
         i.children.push(obj)
       }
     })
@@ -119,7 +119,9 @@ export const getMenusData = () => {
 
 export const flatMenus = (router) => {
   const arr = []
+  router.sort((a, b) => a.sort - b.sort)
   const f = (router) => {
+    router.sort((a, b) => a.sort - b.sort)
     router.forEach((r) => {
       if (r.children && r.children.length > 0) {
         f(r.children)

+ 70 - 0
src/views/basicData/dataAircraftCataloging/importDialog/index.vue

@@ -0,0 +1,70 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入飞机编目信息',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/aircaftCatalog/importExcel',
+      fileList: [],
+      fileData: {
+        userName: ''
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      debugger
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 8 - 5
src/views/basicData/dataAircraftCataloging/index.js

@@ -6,7 +6,8 @@ export const defaultProps = {
 export const columns = (_this) => [
   {
     prop: 'aircaftCatalogCode',
-    label: '飞机编号'
+    label: '飞机编号',
+    width: '150px'
   },
   {
     prop: 'mechanician',
@@ -14,7 +15,7 @@ export const columns = (_this) => [
   },
 
   {
-    prop: 'aircaftModelCode',
+    prop: 'aircaftModelName',
     label: '所属机型'
   },
   {
@@ -35,11 +36,13 @@ export const columns = (_this) => [
   },
   {
     prop: 'manufacturer',
-    label: '厂家'
+    label: '厂家',
+    width: '240px'
   },
   {
     prop: 'factoryNumber',
-    label: '出厂编号'
+    label: '出厂编号',
+    width: '150px'
   },
   {
     prop: 'status',
@@ -55,7 +58,7 @@ export const columns = (_this) => [
   {
     button: true,
     label: '操作',
-    width: '240px',
+    width: '200px',
     group: [
       {
         name: '编辑',

+ 1 - 1
src/views/basicData/dataAircraftCataloging/index.scss

@@ -7,7 +7,7 @@
   .view-dataType-title-search {
     display: flex;
     .input1 {
-      width: 240px;
+      width: 340px;
     }
   }
 }

+ 52 - 10
src/views/basicData/dataAircraftCataloging/index.vue

@@ -8,11 +8,17 @@
         <div class="view-dataType-title-btn">
           <el-button type="success" @click="openDialog()" :disabled="currentNode && currentNode.type == 0">新增</el-button>
           <el-button type="warning" @click="remove(tableCheckItems)" :disabled="tableCheckItems.length == 0">删除</el-button>
-          <el-button type="primary">导入模板</el-button>
-          <el-button type="primary">导出模板</el-button>
+          <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExport">
+            更多
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+              <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+              <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </div>
         <div class="view-dataType-title-search">
-          <el-input placeholder="编号/名称" v-model="keyWord" class="input1">
+          <el-input placeholder="请输入飞机编号/厂家/出厂编号" v-model="keyWord" class="input1">
             <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
           </el-input>
         </div>
@@ -49,23 +55,32 @@
           <el-form-item label="生厂编号">
             <el-input v-model="form.factoryNumber"></el-input>
           </el-form-item>
+          <el-form-item label="状态">
+            <el-radio-group v-model="form.status">
+              <el-radio label="0">服役</el-radio>
+              <el-radio label="1">退役</el-radio>
+            </el-radio-group>
+          </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
           <el-button @click="handleClose">取 消</el-button>
           <el-button type="primary" @click="submit">确 定</el-button>
         </span>
       </el-dialog>
+      <!-- 导入 -->
+      <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
     </div>
   </div>
 </template>
 
 <script>
-import { getAircaftCatalog, getAircaftTypeAndModelTree, addAircaftCatalog, updateAircaftCatalog, removeAircaftCatalog } from '@/api/basicData/dataAircraftCataloging'
+import { getAircaftCatalog, getAircaftTypeAndModelTree, addAircaftCatalog, updateAircaftCatalog, removeAircaftCatalog, downLoadFile, exportExcel } from '@/api/basicData/dataAircraftCataloging'
 import { defaultProps, columns, options } from './index'
 import { deepClone, debounce } from '@/utils/index'
+import ImportDialog from './importDialog/index.vue'
 export default {
   name: 'dataAircraftCataloging',
-  components: {},
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -107,7 +122,8 @@ export default {
         station: '',
         assemblyTime: '',
         manufacturer: '',
-        factoryNumber: ''
+        factoryNumber: '',
+        status: ''
       },
       debounceFn: debounce(this.fetch, 500)
     }
@@ -198,8 +214,8 @@ export default {
 
     async updateAircaftCatalogAPI() {
       try {
-        const { aircaftCatalogId, aircaftCatalogCode, mechanician, aircaftModelId, army, warZone, station, assemblyTime, manufacturer, factoryNumber } = this.form
-        const { success } = await updateAircaftCatalog({ aircaftCatalogId, aircaftCatalogCode, mechanician, aircaftModelId, army, warZone, station, assemblyTime, manufacturer, factoryNumber })
+        const { aircaftCatalogId, aircaftCatalogCode, mechanician, aircaftModelId, army, warZone, station, assemblyTime, manufacturer, factoryNumber, status } = this.form
+        const { success } = await updateAircaftCatalog({ aircaftCatalogId, aircaftCatalogCode, mechanician, aircaftModelId, army, warZone, station, assemblyTime, manufacturer, factoryNumber, status })
         if (success) {
           this.$message({
             type: 'success',
@@ -236,12 +252,14 @@ export default {
         station: '',
         assemblyTime: '',
         manufacturer: '',
-        factoryNumber: ''
+        factoryNumber: '',
+        status: ''
       }
     },
 
     handUpdate(row) {
       this.dialogTitle = '编辑'
+      row.status = row.status.toString()
       this.form = deepClone(row)
       this.dialogVisible = true
     },
@@ -264,7 +282,7 @@ export default {
     },
 
     remove(row) {
-      this.$confirm('是否删除该机', '提示', {
+      this.$confirm('是否删除该机', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -273,6 +291,30 @@ export default {
           this.removeAircaftCatalogAPI(row.map((e) => e.aircaftCatalogId))
         })
         .catch(() => {})
+    }, //更多按钮
+    handleExport(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.getAircaftCatalogAPI({ aircaftModelIdList: this.aircaftModelIdList })
+    },
+
+    //导出全部
+    async allExport() {
+      const params = {
+        queryParam: this.searchValue,
+        aircaftModelIdList: this.aircaftModelIdList
+      }
+      await exportExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      await downLoadFile()
     }
   }
 }

+ 38 - 38
src/views/basicData/dataEnvironment/index.js

@@ -10,8 +10,8 @@ const validatePass = (rule, value, callback) => {
 }
 export const modalConfig = (_this) => ({
   formItems: [
-    { key: 'env', type: 'input', label: '使用环境', colLayout: { span: 24 } },
-    { key: 'factor', type: 'input', label: '因子', colLayout: { span: 24 } },
+    { key: 'env', type: 'input', label: '环境因子名称', colLayout: { span: 24 } },
+    { key: 'factor', type: 'input', label: '环境因子', colLayout: { span: 24 } },
     {
       key: 'envStatus',
       type: 'radio',
@@ -25,7 +25,7 @@ export const modalConfig = (_this) => ({
     {
       key: 'remark',
       type: 'input',
-      label: '备注',
+      label: '描述',
       placeHolder: '请输入备注',
       colLayout: { span: 24 },
       inputOptions: {
@@ -35,9 +35,9 @@ export const modalConfig = (_this) => ({
       }
     }
   ],
-  labelWidth: '80px',
+  labelWidth: '100px',
   itemStyle: { padding: '10px' },
-  width: '500px', // 弹框宽度
+  width: '600px', // 弹框宽度
   rules: {
     factor: [{ validator: validatePass, trigger: 'blur' }]
   }
@@ -52,11 +52,11 @@ export const modalConfig = (_this) => ({
 export const columns = (_this) => [
   {
     prop: 'env',
-    label: '使用环境'
+    label: '环境因子名称'
   },
   {
     prop: 'factor',
-    label: '因子'
+    label: '环境因子'
   },
   {
     prop: 'envStatus',
@@ -71,7 +71,7 @@ export const columns = (_this) => [
   },
   {
     prop: 'remark',
-    label: '备注'
+    label: '描述'
   },
 
   {
@@ -132,36 +132,36 @@ export const columns = (_this) => [
   }
 ]
 
-export const data = [
-  {
-    id: 1,
-    serviceEnvironment: '沿海',
-    factor: '1.2',
-    remark: '沿海有核辐射',
-    status: '0'
-  },
-  {
-    id: 2,
-    serviceEnvironment: '沙漠',
-    factor: '1.3',
-    remark: '沙哈拉沙漠',
-    status: '1'
-  },
-  {
-    id: 3,
-    serviceEnvironment: '山地',
-    factor: '1.4',
-    remark: '山地自行车',
-    status: '0'
-  },
-  {
-    id: 4,
-    serviceEnvironment: '平原',
-    factor: '1.5',
-    remark: '青青草原',
-    status: '1'
-  }
-]
+// export const data = [
+//   {
+//     id: 1,
+//     serviceEnvironment: '沿海',
+//     factor: '1.2',
+//     remark: '沿海有核辐射',
+//     status: '0'
+//   },
+//   {
+//     id: 2,
+//     serviceEnvironment: '沙漠',
+//     factor: '1.3',
+//     remark: '沙哈拉沙漠',
+//     status: '1'
+//   },
+//   {
+//     id: 3,
+//     serviceEnvironment: '山地',
+//     factor: '1.4',
+//     remark: '山地自行车',
+//     status: '0'
+//   },
+//   {
+//     id: 4,
+//     serviceEnvironment: '平原',
+//     factor: '1.5',
+//     remark: '青青草原',
+//     status: '1'
+//   }
+// ]
 /**
  *
  * @returns 返回表格基础配置项

+ 2 - 2
src/views/basicData/dataEnvironment/index.vue

@@ -13,7 +13,7 @@
         </el-select>
       </div>
       <div class="common-box-search">
-        <el-input placeholder="请输入因子类型" v-model="keyword" class="input-with-select" @keyup.enter.native="fetchTableData">
+        <el-input placeholder="请输入环境因子名称" v-model="keyword" class="input-with-select" @keyup.enter.native="fetchTableData">
           <el-button slot="append" icon="el-icon-search" @click="fetchTableData(1)"></el-button>
         </el-input>
       </div>
@@ -169,7 +169,7 @@ export default {
     statusChange() {},
 
     handparts(row) {
-      this.$router.push(`/basicData/dataEnvironment/${row.envFactorId}/${row.env}`)
+      this.$router.push(`/basicData/dataEnvironment/${row.envFactorId}/${row.env}/${row.factor}`)
     }
   }
 }

+ 2 - 1
src/views/basicData/dataEnvironment/src/regularitiesChoose.vue

@@ -69,7 +69,7 @@ export default {
         avmatCategoriesName: '',
         envFactorName: this.$route.params.name,
         envFactorId: this.$route.params.id,
-        factor: ''
+        factor: this.$route.params.value
       },
       rules: {
         factor: [{ validator: validatePass, trigger: 'blur' }]
@@ -120,6 +120,7 @@ export default {
       this.dialogType = type
       this.activeRow.envFactorName = this.$route.params.name
       this.activeRow.envFactorId = this.$route.params.id
+      this.activeRow.factor = this.$route.params.value
       this.regularitiesChooseVisible = true
     },
 

+ 10 - 4
src/views/basicData/dataEnvironment/suitableSpareParts.js

@@ -10,7 +10,6 @@ export const modalConfig = (_this) => ({
   width: '500px', // 弹框宽度
   rules: {}
 })
-
 /**
  *
  * @param {*} _this 当前vue 的实例
@@ -22,15 +21,22 @@ export const columns = (_this) => [
     prop: 'avmatCatalogName',
     label: '航材名称'
   },
+  {
+    prop: 'avmatCatalogCode',
+    label: '航材编号'
+  },
+  {
+    prop: 'avmatCategoriesName',
+    label: '航材分类'
+  },
   {
     prop: 'env',
-    label: '使用环境'
+    label: '环境因子名称'
   },
   {
     prop: 'factor',
-    label: '因子'
+    label: '因子'
   },
-
   {
     button: true,
     label: '操作',

+ 1 - 1
src/views/basicData/dataEnvironment/suitableSpareParts.vue

@@ -6,7 +6,7 @@
         <el-button type="warning" @click="handleDelete(tableCheckItems)" :disabled="tableCheckItems.length == 0">删除</el-button>
       </div>
       <div class="common-box-search">
-        <el-input placeholder="请输入因子类型" v-model="searchValue" class="input-with-select" @keyup.enter.native="fetchTableData">
+        <el-input placeholder="请输入环境因子名称" v-model="searchValue" class="input-with-select" @keyup.enter.native="fetchTableData">
           <el-button slot="append" icon="el-icon-search" @click="fetchTableData"></el-button>
         </el-input>
       </div>

+ 69 - 0
src/views/basicData/dataSailingMaterialClassification/importDialog/index.vue

@@ -0,0 +1,69 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入航材分类',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/avmatcategories/importExcel',
+      fileList: [],
+      fileData: {
+        userName: ''
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 48 - 24
src/views/basicData/dataSailingMaterialClassification/index.vue

@@ -3,18 +3,18 @@
     <div class="common-box">
       <div class="common-box-button">
         <el-button type="success" @click="handleAdd">新增</el-button>
-        <!-- <el-button type="warning" @click="handleDelete">删除</el-button> -->
-        <el-button type="primary" @click="handleExport('导出')">导出</el-button>
-        <el-dropdown split-button type="primary" style="margin-left: 10px" @command="handleExport" trigger="click">
+        <el-button type="warning" @click="remove(removeArr)">删除</el-button>
+        <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExport">
           更多
           <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="导入">导入</el-dropdown-item>
-            <el-dropdown-item command="下载模板">下载模板</el-dropdown-item>
+            <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+            <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+            <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
       </div>
       <div class="common-box-search">
-        <el-input placeholder="请输入分类名称编号" v-model="keyword" class="input-with-select" @keyup.enter.native="fetchTableData">
+        <el-input placeholder="请输入分类名称/编号" v-model="keyword" class="input-with-select" @keyup.enter.native="fetchTableData">
           <el-button slot="append" icon="el-icon-search" @click="fetchTableData(1)"></el-button>
         </el-input>
       </div>
@@ -43,17 +43,20 @@
         <el-button type="primary" @click="crudDialogSubmit">确 定</el-button>
       </span>
     </el-dialog>
+    <!-- 导入 -->
+    <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
   </div>
 </template>
 
 <script>
 import { columns, options, rules } from './index'
-import { getAvmatCategoriesTree, addAvmatCategorie, updateAvmatCategorie, removeAvmatCategories } from '@/api/basicData/dataSailingMaterialClassification'
+import { getAvmatCategoriesTree, addAvmatCategorie, updateAvmatCategorie, removeAvmatCategories, downLoadFile, exportExcel } from '@/api/basicData/dataSailingMaterialClassification'
+import ImportDialog from './importDialog/index.vue'
 import { deepClone, debounce } from '@/utils/index'
 
 export default {
   name: 'dataSailingMaterialClassification',
-  components: {},
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -167,22 +170,22 @@ export default {
         this.removeArr.push(item)
       })
     },
-    handleExport(type) {
-      let msg = ''
-      type == '下载模板' ? (msg = '是否确认下载该模板') : (msg = `是否${type}该航材`)
-      this.$confirm(msg, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      })
-        .then(() => {
-          this.$message({
-            type: 'success',
-            message: '操作成功!'
-          })
-        })
-        .catch(() => {})
-    },
+    // handleExport(type) {
+    //   let msg = ''
+    //   type == '下载模板' ? (msg = '是否确认下载该模板') : (msg = `是否${type}该航材`)
+    //   this.$confirm(msg, '提示', {
+    //     confirmButtonText: '确定',
+    //     cancelButtonText: '取消',
+    //     type: 'warning'
+    //   })
+    //     .then(() => {
+    //       this.$message({
+    //         type: 'success',
+    //         message: '操作成功!'
+    //       })
+    //     })
+    //     .catch(() => {})
+    // },
     crudDialogSubmit() {
       this.$refs.form.validate(async (valid) => {
         if (valid) {
@@ -247,6 +250,27 @@ export default {
           this.recursion(item.children, row, statu)
         }
       }
+    },
+    //更多按钮
+    handleExport(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      await exportExcel()
+    },
+    //下载模板
+    async downloadTemplate() {
+      await downLoadFile()
     }
   }
 }

+ 70 - 0
src/views/basicData/dataSailingMaterialMaterialCoding/importDialog/index.vue

@@ -0,0 +1,70 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入航材物资编目-机务',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/avmatCatalog/importExcel',
+      fileList: [],
+      fileData: {
+        userName: '',
+        avmatType: 0
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 6 - 6
src/views/basicData/dataSailingMaterialMaterialCoding/index.js

@@ -41,7 +41,7 @@ export const modalConfig = (_this) => ({
     {
       key: 'isOrdered',
       type: 'radio',
-      label: '是否有',
+      label: '是否有寿',
       valueOptions: [
         { value: 0, label: '否' },
         { value: 1, label: '是' }
@@ -103,9 +103,9 @@ export const columns = (_this) => [
     label: '是否可修',
     render: (h, params) => {
       if (params.row.status == 1) {
-        return h('span', { class: 'success-state' }, '可修')
+        return h('span', { class: 'success-state' }, '')
       } else {
-        return h('span', { class: 'warning-state' }, '不可修')
+        return h('span', { class: 'warning-state' }, '')
       }
     }
   },
@@ -122,12 +122,12 @@ export const columns = (_this) => [
   },
   {
     prop: 'isOrdered',
-    label: '是否有',
+    label: '是否有寿',
     render: (h, params) => {
       if (params.row.isOrdered == 1) {
-        return h('span', { class: 'success-state' }, '有序')
+        return h('span', { class: 'success-state' }, '')
       } else {
-        return h('span', { class: 'warning-state' }, '无序')
+        return h('span', { class: 'warning-state' }, '')
       }
     }
   },

+ 47 - 7
src/views/basicData/dataSailingMaterialMaterialCoding/index.vue

@@ -20,13 +20,18 @@
             :disabled="tableCheckItems.length == 0"
             >删除</el-button
           >
-          <el-button type="primary" @click="handleExport('导入')">导入</el-button>
-          <el-button type="primary" @click="handleExport('导出')">导出</el-button>
-          <el-button type="primary" @click="handleExport('下载模板')">下载模板</el-button>
+          <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExportBtn">
+            更多
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+              <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+              <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </div>
         <div class="common-box-select"></div>
         <div class="common-box-search">
-          <el-input placeholder="航材编码/航材名称" v-model="queryParam" class="input-with-select">
+          <el-input placeholder="航材编码/名称/规格型号" v-model="queryParam" class="input-with-select">
             <el-button slot="append" icon="el-icon-search" @click="queryByCodeOrNameAPI"></el-button>
           </el-input>
         </div>
@@ -38,20 +43,23 @@
 
       <!-- 映射编码 -->
       <MappingCoding ref="MappingCoding" :currentNodeKey="currentNodeValue" @handleMappingCoding="handleMappingCoding" />
+      <!-- 导入 -->
+      <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
     </div>
   </div>
 </template>
 
 <script>
 import { MessageBox } from 'element-ui' //这里是引入 element
-import { addAvmatCatalog, editAvmatCatalog, removeAvmatCatalog, getAvmatCategoriesTree, getAvmatCatalog, queryByCodeOrName } from '@/api/basicData/dataSailingMaterialMaterialCoding'
+import { addAvmatCatalog, editAvmatCatalog, removeAvmatCatalog, getAvmatCategoriesTree, getAvmatCatalog, queryByCodeOrName, downLoadFile, exportExcel } from '@/api/basicData/dataSailingMaterialMaterialCoding'
 import { defaultProps, columns, options, modalConfig } from './index'
 import { debounce } from '@/utils/index'
 import MappingCoding from './mappingCoding/index.vue'
+import ImportDialog from './importDialog/index.vue'
 import Vue from 'vue'
 export default {
   name: 'dataSailingMaterialMaterialCoding',
-  components: { MappingCoding },
+  components: { MappingCoding, ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -259,7 +267,8 @@ export default {
           isRepairable: 1,
           isCompleteSet: 1,
           isOrdered: 1,
-          isImported: 1
+          isImported: 1,
+          avmatCategoriesName: this.currentNode.avmatCategoriesName
         },
         title: '新增'
       }
@@ -311,6 +320,37 @@ export default {
           this.update(dialogData)
           break
       }
+    },
+    //更多按钮
+    handleExportBtn(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      const userInfo = this.$store.state.user.userInfo.user
+      const params = {
+        queryParam: this.queryParam,
+        avmatCategoriesId: this.currentNodeValue,
+        userId: userInfo.userId,
+        avmatType: 0
+      }
+      await exportExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      const params = {
+        avmatType: 0
+      }
+      await downLoadFile(params)
     }
   }
 }

+ 71 - 0
src/views/basicData/dataSailingMaterialMaterialCodingAviation/importDialog/index.vue

@@ -0,0 +1,71 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入航材物资编目-航材',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/avmatCatalog/importExcel',
+      fileList: [],
+      fileData: {
+        userName: '',
+        avmatType: 1
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      debugger
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 5 - 5
src/views/basicData/dataSailingMaterialMaterialCodingAviation/index.js

@@ -40,7 +40,7 @@ export const modalConfig = (_this) => ({
     {
       key: 'isOrdered',
       type: 'radio',
-      label: '是否有',
+      label: '是否有寿',
       valueOptions: [
         { value: 0, label: '否' },
         { value: 1, label: '是' }
@@ -116,18 +116,18 @@ export const columns = (_this) => [
       if (params.row.isCompleteSet == 1) {
         return h('span', { class: 'success-state' }, '是')
       } else {
-        return h('span', { class: 'warning-state' }, '否')
+        return h('span', { class: 'warning-state' }, '否')
       }
     }
   },
   {
     prop: 'isOrdered',
-    label: '是否有',
+    label: '是否有寿',
     render: (h, params) => {
       if (params.row.isOrdered == 1) {
-        return h('span', { class: 'success-state' }, '有序')
+        return h('span', { class: 'success-state' }, '')
       } else {
-        return h('span', { class: 'warning-state' }, '无序')
+        return h('span', { class: 'warning-state' }, '')
       }
     }
   },

+ 45 - 6
src/views/basicData/dataSailingMaterialMaterialCodingAviation/index.vue

@@ -20,13 +20,18 @@
             :disabled="tableCheckItems.length == 0"
             >删除</el-button
           >
-          <el-button type="primary" @click="handleExport('导入')">导入</el-button>
-          <el-button type="primary" @click="handleExport('导出')">导出</el-button>
-          <el-button type="primary" @click="handleExport('下载模板')">下载模板</el-button>
+          <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExportBtn">
+            更多
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+              <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+              <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </div>
         <div class="common-box-select"></div>
         <div class="common-box-search">
-          <el-input placeholder="航材编码/航材名称" v-model="searchValue" class="input-with-select">
+          <el-input placeholder="航材编码/名称/规格型号" v-model="searchValue" class="input-with-select">
             <el-button slot="append" icon="el-icon-search"></el-button>
           </el-input>
         </div>
@@ -35,6 +40,8 @@
 
       <!--  -->
       <CrudDialog v-bind="modalConfig" ref="NewDialogRef" @crudDialogSubmit="crudDialogSubmit"></CrudDialog>
+      <!-- 导入 -->
+      <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
     </div>
   </div>
 </template>
@@ -44,11 +51,12 @@ import { MessageBox } from 'element-ui' //这里是引入 element
 import { defaultProps, columns, options, modalConfig } from './index'
 import { debounce } from '@/utils/index'
 import { getAvmatCategoriesTree, getAvmatCatalog, queryByCodeOrName } from '@/api/basicData/dataSpecies'
-import { addAvmatCatalog, editAvmatCatalog, removeAvmatCatalog } from '@/api/basicData/dataSailingMaterialMaterialCoding'
-
+import { addAvmatCatalog, editAvmatCatalog, removeAvmatCatalog, downLoadFile, exportExcel } from '@/api/basicData/dataSailingMaterialMaterialCoding'
+import ImportDialog from './importDialog/index.vue'
 import Vue from 'vue'
 export default {
   name: 'dataSailingMaterialMaterialCoding',
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -242,6 +250,37 @@ export default {
           this.update(dialogData)
           break
       }
+    },
+    //更多按钮
+    handleExportBtn(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      const userInfo = this.$store.state.user.userInfo.user
+      const params = {
+        queryParam: this.queryParam,
+        avmatCategoriesId: this.currentNodeValue,
+        userId: userInfo.userId,
+        avmatType: 1
+      }
+      await exportExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      const params = {
+        avmatType: 1
+      }
+      await downLoadFile(params)
     }
   }
 }

+ 70 - 0
src/views/basicData/dataSailingMaterialPrice/importDialog/index.vue

@@ -0,0 +1,70 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入航材价格',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/avmatPrice/importExcel',
+      fileList: [],
+      fileData: {
+        userName: ''
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      debugger
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 42 - 6
src/views/basicData/dataSailingMaterialPrice/index.vue

@@ -6,9 +6,18 @@
     <div class="view-dataSailingMaterialPrice-right">
       <div class="common-box">
         <div class="common-box-button">
-          <el-button type="primary" @click="handleSubmit('导入')">导入</el-button>
-          <el-button type="primary" @click="handleSubmit('导出')">导出</el-button>
+          <!-- <el-button type="primary" @click="handleSubmit('导入')">导入</el-button>
+          <el-button type="primary" @click="handleExport('导出')" :disabled="tableData.length == 0">导出</el-button> -->
           <el-button type="primary" @click="handleSubmit('保存')">保存</el-button>
+
+          <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExport">
+            更多
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+              <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+              <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </div>
         <div class="common-box-select">
           <label>维修价格 : </label>
@@ -30,18 +39,21 @@
       </div>
       <LTable ref="table" @selection-change="selection" :defaultFetch="false" :columns="columns" :dataSource="tableData" :options="options" :fetch="fetchTableData" :pagination="tableRequset"></LTable>
       <CrudDialog v-bind="modalConfig" ref="NewDialogRef" @crudDialogSubmit="crudDialogSubmit"></CrudDialog>
+      <!-- 导入 -->
+      <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
     </div>
   </div>
 </template>
 
 <script>
-import { page, edit } from '@/api/basicData/dataSailingMaterialPrice'
+import { page, edit, exportExcel, downLoadFile } from '@/api/basicData/dataSailingMaterialPrice'
 import { getAvmatCategoriesTree } from '@/api/basicData/dataSpecies'
 import { defaultProps, columns, options, modalConfig } from './index'
 import { isNums } from '@/utils/verifyType'
+import ImportDialog from './importDialog/index.vue'
 export default {
   name: 'dataSailingMaterialPrice',
-  components: {},
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -103,14 +115,14 @@ export default {
       const { keyword, repairPriceSearch, purchasePriceSearch } = this
       const {
         data: { list, totalCount }
-      } = await page({ avmatCategoriesCode: this.currentNodeKey, pageSize, pageIndex, keyword, repairPriceSearch, purchasePriceSearch })
+      } = await page({ avmatCategoriesId: this.currentNodeKey, pageSize, pageIndex, keyword, repairPriceSearch, purchasePriceSearch })
 
       this.tableData = list
       this.tableRequset.total = totalCount
     },
 
     treeNodeClick(node) {
-      this.currentNodeKey = node.avmatCategoriesCode
+      this.currentNodeKey = node.avmatCategoriesId
       this.fetchTableData()
     },
 
@@ -165,6 +177,30 @@ export default {
         })
         .catch(() => {})
     },
+    //更多按钮
+    handleExport(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      const params = {
+        avmatCategoriesId: this.currentNodeKey
+      }
+      await exportExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      await downLoadFile()
+    },
 
     priceMaintenance(row) {
       let config = {

+ 69 - 0
src/views/basicData/dataSpecies/importDialog/index.vue

@@ -0,0 +1,69 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入机型信息',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/aircaftModel/importExcel',
+      fileList: [],
+      fileData: {
+        userName: ''
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 43 - 6
src/views/basicData/dataSpecies/index.vue

@@ -9,12 +9,18 @@
         <div class="view-common-header-left">
           <el-button type="success" @click="openDialog()" :disabled="currentNodeKey === ''">新增</el-button>
           <el-button type="warning" @click="remove(removeArr)" :disabled="removeArr.length === 0">删除</el-button>
-          <el-button type="primary">导入模板</el-button>
-          <el-button type="primary">导出模板</el-button>
+          <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExport">
+            更多
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+              <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+              <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </div>
         <div class="view-common-header-right">
           <!-- width-137 在style/excel.js 定义宽度 -->
-          <el-input @keyup.enter.native="fetchTableData('search')" placeholder="请输入机种类/编号" v-model="searchValue" class="input-select">
+          <el-input @keyup.enter.native="fetchTableData('search')" placeholder="请输入机型名称/编号" v-model="searchValue" class="input-select">
             <el-button @click="fetchTableData('search')" slot="append" icon="el-icon-search"></el-button>
           </el-input>
         </div>
@@ -23,16 +29,19 @@
         <LTable ref="table" @select-all="selectAll" @selection-change="selection" :defaultFetch="false" :columns="columns" :dataSource="tableData" :options="options" :fetch="fetchTableData" :pagination="tableRequset"></LTable>
       </div>
       <CrudDialog v-bind="modalConfig" ref="NewDialogRef" @crudDialogSubmit="crudDialogSubmit"></CrudDialog>
+      <!-- 导入 -->
+      <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
     </div>
   </div>
 </template>
 
 <script>
 import { defaultProps, columns, options, modalConfig } from './index'
-import { getAircaftTypeTree, getAircaftModel, addAircaftModel, updateAircaftModel, removeAircaftModel } from '@/api/basicData/dataSpecies'
+import { getAircaftTypeTree, getAircaftModel, addAircaftModel, updateAircaftModel, removeAircaftModel, downLoadFile, exportExcel } from '@/api/basicData/dataSpecies'
+import ImportDialog from './importDialog/index.vue'
 export default {
   name: 'dataSpecies',
-  components: {},
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     return {
@@ -71,7 +80,10 @@ export default {
   },
   methods: {
     async getData() {
-      const { data } = await getAircaftTypeTree()
+      let params = {
+        status: 1
+      }
+      const { data } = await getAircaftTypeTree(params)
       let obj = {
         aircaftTypeId: '',
         aircaftTypeCode: '',
@@ -208,6 +220,31 @@ export default {
           })
         }
       }
+    },
+    //更多按钮
+    handleExport(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      const params = {
+        queryParam: this.searchValue,
+        aircaftTypeId: this.aircaftTypeId
+      }
+      await exportExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      await downLoadFile()
     }
   }
 }

+ 69 - 0
src/views/basicData/dataType/importDialog/index.vue

@@ -0,0 +1,69 @@
+<template>
+  <el-dialog :title="dialogtitle" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center>
+    <div class="upload">
+      <div class="upload-left">导入文件</div>
+      <el-upload class="upload-right" ref="upload" accept=".xls,.xlsx" :action="fileApi" :file-list="fileList" :data="fileData" :auto-upload="false" :on-success="onSuccess" :limit="1">
+        <el-button slot="trigger" style="margin-right: 30px" size="small" type="primary">选择文件</el-button>
+        <el-button size="small" type="success" @click="submitUpload">导入数据</el-button>
+        <div slot="tip" class="el-upload__tip" style="margin-left: 10px; margin-top: 10px; font-size: 14px">只能导入 xls / xlsx 文件</div>
+      </el-upload>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { useMessage } from '@/utils/element-ui'
+export default {
+  data() {
+    return {
+      dialogtitle: '导入机种信息',
+      dialogVisible: false,
+      fileApi: process.env.VUE_APP_BASE_API + '/basicdata/aircaftType/importExcel',
+      fileList: [],
+      fileData: {
+        userName: ''
+      }
+    }
+  },
+  methods: {
+    triggerDialog() {
+      this.dialogVisible = true
+    },
+
+    handleClose() {
+      this.dialogVisible = false
+    },
+
+    // 上传
+    submitUpload() {
+      const userInfo = this.$store.state.user.userInfo.user
+      this.fileData.userName = userInfo.userName
+      this.$refs.upload.submit()
+    },
+
+    // 上传完成后
+    onSuccess(result) {
+      this.$refs.upload.clearFiles()
+      this.fileList = []
+      const { msg, code } = result
+      useMessage(code == 200 ? 'success' : 'warning', msg, 2000)
+      if (code !== 200) return
+      this.handleClose()
+      this.$emit('submitCallBack')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  width: 100%;
+}
+.upload {
+  height: 106px;
+  padding-top: 30px;
+  display: flex;
+  &-left {
+    margin-right: 40px;
+  }
+}
+</style>

+ 40 - 14
src/views/basicData/dataType/index.vue

@@ -5,13 +5,19 @@
       <div class="view-common-header-left">
         <el-button type="success" @click="openDialog()">新增</el-button>
         <el-button type="warning" @click="remove(removeArr)">删除</el-button>
-        <el-button type="primary">导入模板</el-button>
-        <el-button type="primary">导出模板</el-button>
+        <el-dropdown split-button type="primary" style="margin-left: 10px" trigger="click" @command="handleExport">
+          更多
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="importOperation">导入</el-dropdown-item>
+            <el-dropdown-item command="allExport" :disabled="tableData.length == 0">导出</el-dropdown-item>
+            <el-dropdown-item command="downloadTemplate">下载数据模板</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
       </div>
       <div class="view-common-header-right">
         <!-- width-137 在style/excel.js 定义宽度 -->
-        <el-input @keyup.enter.native="fetchTableData2('search')" placeholder="请输入机种类/编号" v-model="searchValue" class="input-select">
-          <el-button @click="fetchTableData2('search')" slot="append" icon="el-icon-search"></el-button>
+        <el-input @keyup.enter.native="fetchTableData('search')" placeholder="请输入机种名称/编号" v-model="searchValue" class="input-select">
+          <el-button @click="fetchTableData('search')" slot="append" icon="el-icon-search"></el-button>
         </el-input>
       </div>
     </div>
@@ -41,17 +47,19 @@
         <el-button type="primary" @click="handleClick">确 定</el-button>
       </span>
     </el-dialog>
+    <!-- 导入 -->
+    <ImportDialog ref="ImportDialog" @submitCallBack="ImportDialogCallBack" />
   </div>
 </template>
 
 <script>
-import { getAircaftTypeTree, addAircaftType, updateAircaftType, removeAircaftType, getAircaftType } from '@/api/basicData/dataSpecies'
-import { debounce } from '@/utils/index'
+import { getAircaftTypeTree, addAircaftType, updateAircaftType, removeAircaftType, downLoadAircaftTypeFile, exportAircaftTypeExcel } from '@/api/basicData/dataSpecies'
+import ImportDialog from './importDialog/index.vue'
 import { columns, options, findParents } from './index'
 
 export default {
   name: 'dataType',
-  components: {},
+  components: { ImportDialog },
   data() {
     // 这里存放数据
     const validInt = (rule, value, callback) => {
@@ -99,16 +107,10 @@ export default {
   },
   methods: {
     async fetchTableData() {
-      const { data } = await getAircaftTypeTree({
-        isAll: 0
-      })
-      this.tableData = data
-    },
-    async fetchTableData2() {
       let params = {
         queryParam: this.searchValue
       }
-      const { data } = await getAircaftType(params)
+      const { data } = await getAircaftTypeTree(params)
       this.tableData = data
     },
     selectAll(data) {
@@ -248,6 +250,30 @@ export default {
           })
         })
         .catch(() => {})
+    },
+    //更多按钮
+    handleExport(type) {
+      this[type]()
+    },
+    //导入
+    importOperation() {
+      this.$refs.ImportDialog.triggerDialog()
+    },
+    //导入回写
+    ImportDialogCallBack() {
+      this.fetchTableData()
+    },
+
+    //导出全部
+    async allExport() {
+      const params = {
+        queryParam: this.searchValue
+      }
+      await exportAircaftTypeExcel(params)
+    },
+    //下载模板
+    async downloadTemplate() {
+      await downLoadAircaftTypeFile()
     }
   }
 }

+ 184 - 0
src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.js

@@ -0,0 +1,184 @@
+export const defaultProps = {
+  children: 'children',
+  label: 'aircraftTypeName'
+}
+export const mockTableData = [
+  {
+    aircraftTypeName: '全部',
+    parentTypeName: '',
+    parentTypeId: '1',
+    id: '1.1',
+    numbering: '01.1',
+    sequence: '1.1',
+    status: 0,
+    children: [
+      {
+        aircraftTypeName: '歼-20 TZ_001',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '1',
+        numbering: '01',
+        sequence: '1',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_002',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '2',
+        numbering: '02',
+        sequence: '2',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_003',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '3',
+        numbering: '03',
+        sequence: '3',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_004',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '4',
+        numbering: '04',
+        sequence: '4',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_005',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '5',
+        numbering: '05',
+        sequence: '5',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_006',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '6',
+        numbering: '06',
+        sequence: '4',
+        status: 1
+      },
+      {
+        aircraftTypeName: '歼-20 TZ_007',
+        parentTypeName: '全部',
+        parentTypeId: '',
+        id: '7',
+        numbering: '07',
+        sequence: '7',
+        status: 1
+      }
+    ]
+  }
+]
+
+export const tableData = [
+  {
+    sparePartsCoding: '201',
+    sparePartsName: '后轮',
+    sparePartsModel: 'J-20',
+    meteringUnit: '个',
+    aircraft: '001',
+    sparePartsCoding: '轰炸机',
+    carryQuantity: '10',
+    unitPrice: '100',
+    amount: '1000',
+    updateTime: '2022-10-12',
+    cjr: '张某某',
+    hcfl: '军械'
+  },
+  {
+    sparePartsCoding: '201',
+    sparePartsName: '后轮',
+    meteringUnit: '个',
+    aircraft: '001',
+    sparePartsModel: 'J-20',
+    sparePartsCoding: 'J20',
+    carryQuantity: '1',
+    unitPrice: '99',
+    amount: '99',
+    updateTime: '2022-10-12',
+    cjr: '张某某',
+    hcfl: '无线电'
+  }
+]
+
+export const treeObj = {
+  title: '任务飞机',
+  activityheight: '275px',
+  searchIcon: false,
+  configure: defaultProps
+}
+
+export const fjList = [
+  {
+    aircraftTypeName: '歼-20 TZ_001',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '1',
+    numbering: '01',
+    sequence: '1',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_002',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '2',
+    numbering: '02',
+    sequence: '2',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_003',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '3',
+    numbering: '03',
+    sequence: '3',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_004',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '4',
+    numbering: '04',
+    sequence: '4',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_005',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '5',
+    numbering: '05',
+    sequence: '5',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_006',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '6',
+    numbering: '06',
+    sequence: '4',
+    status: 1
+  },
+  {
+    aircraftTypeName: '歼-20 TZ_007',
+    parentTypeName: '全部',
+    parentTypeId: '',
+    id: '7',
+    numbering: '07',
+    sequence: '7',
+    status: 1
+  }
+]

+ 75 - 0
src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.scss

@@ -0,0 +1,75 @@
+.view-AerospaceCompileLineList-left {
+  width: 300px;
+}
+.view-AerospaceCompileLineList-right-carrierAllAuditLook {
+  flex: 1;
+}
+.view-AerospaceCompileLineList {
+  display: flex;
+  flex-shrink: 0;
+}
+.view-AerospaceCompileLineList-right-carrierAllAuditLook-btn-right {
+  display: flex;
+  flex-shrink: 0;
+}
+.view-AerospaceCompileLineList-right-carrierAllAuditLook-btn {
+  display: flex;
+  flex-shrink: 0;
+  justify-content: right;
+}
+.view-CarrierListMachineryPreparation .view-AerospaceCompileLineList-right-carrierAllAuditLook-btn {
+  margin-top: 30px;
+}
+.view-AerospaceCompileLineList-right-carrierAllAuditLook-btn-right-select {
+  display: flex;
+  align-items: center;
+  margin-right: 30px;
+  > span {
+    color: #fff;
+    margin-right: 15px;
+    width: 60px;
+  }
+}
+.view-AerospaceCompileLineList-right-carrierAllAuditLook-table {
+  margin-top: 30px;
+  .el-table {
+    height: 520px;
+  }
+}
+
+.fittings-modal-box {
+  display: flex;
+}
+
+.fittings-modal-box-left {
+  width: 230px;
+}
+
+.fittings-modal-box-right {
+  width: calc(100% - 260px);
+  margin-left: 30px;
+}
+
+.fittings-modal .el-dialog {
+  margin-top: 5vh !important;
+}
+
+.auto-generation {
+  margin-bottom: 30px;
+  display: flex;
+  align-items: center;
+  > span {
+    color: #fff;
+    margin-right: 15px;
+    width: 80px;
+  }
+  .el-select {
+    width: 100%;
+  }
+}
+.view-CarrierListMachineryPreparation {
+  display: flex;
+  .el-descriptions__body {
+    background-color: transparent !important;
+  }
+}

+ 109 - 0
src/views/carrierStandard/carrierAllAudit/components/carrierAllAuditLook/index.vue

@@ -0,0 +1,109 @@
+<template>
+  <div class="view-CarrierListMachineryPreparation">
+    <div class="view-AerospaceCompileLineList-right-carrierAllAuditLook">
+      <MissionDetail :detail="detail" />
+      <div class="view-AerospaceCompileLineList-right-carrierAllAuditLook-btn">
+        <div class="view-AerospaceCompileLineList-right-carrierAllAuditLook-btn-right">
+          <el-input placeholder="请输入内容" @keyup.enter.native="getqueryCarryingMainteOrgan('searchValue')" v-model="searchValue" class="input-with-select">
+            <el-button @click="getqueryCarryingMainteOrgan('searchValue')" slot="append" icon="el-icon-search"></el-button>
+          </el-input>
+        </div>
+      </div>
+
+      <div class="view-AerospaceCompileLineList-right-carrierAllAuditLook-table">
+        <el-table :data="tableData" border style="width: 100%">
+          <el-table-column prop="avmatCatalogCode" label="航材编码"> </el-table-column>
+          <el-table-column prop="avmatCatalogName" label="航材名称" align="center"> </el-table-column>
+          <el-table-column prop="specification" label="航材型号" align="center"> </el-table-column>
+          <el-table-column prop="avmatCategoriesName" label="航材分类" align="center"> </el-table-column>
+          <el-table-column prop="unit" label="计量单位" align="center"> </el-table-column>
+          <el-table-column prop="carryQuantity" label="携总带数量" align="center"> </el-table-column>
+          <el-table-column prop="purchasePrice" label="单价/元" align="center"> </el-table-column>
+          <el-table-column prop="createBy" label="创建人" align="center"> </el-table-column>
+          <el-table-column prop="updateTime" label="更新时间" align="center"> </el-table-column>
+        </el-table>
+      </div>
+      <el-pagination
+        background
+        :total="pagination.total"
+        :page-size="pagination.pageSize"
+        :page-sizes="[10, 20, 30, 40, 50]"
+        layout="sizes,total, prev, pager, next, jumper"
+        @size-change="handleSizeChange"
+        @current-change="handleIndexChange"
+        style="padding: 20px; text-align: center"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+import { fjList, tableData } from './index'
+import { queryFlyTaskAircraft, queryCarryingMainteOrgan } from '@/api/carrierStandard/carrierListMachineryPreparation'
+export default {
+  name: 'carrierAllAuditLook',
+  components: {},
+  data() {
+    // 这里存放数据
+    return {
+      fjdialogVisible: false,
+      detail: null,
+      taskId: this.$route.params.id,
+      fjValue: '',
+      fjList: fjList,
+      searchValue: '',
+      modelValue: '战斗机',
+      tableData: tableData,
+      pagination: {
+        total: 100,
+        pageSize: 10,
+        pageIndex: 1
+      }
+    }
+  },
+  mounted() {
+    this.initData()
+  },
+  methods: {
+    async initData() {
+      let postData = {
+        taskId: this.taskId
+      }
+      const { code, data } = await queryFlyTaskAircraft(postData)
+      if (code == 200) {
+        this.detail = data
+        this.getqueryCarryingMainteOrgan()
+        this.$store.commit('app/updataTagsItemMetaTitle', { id: this.$route.params.id, otherTitle: '机务清单总体审核-查看详情', newTitle: `机务清单总体审核-查看详情-${this.detail.taskName}` })
+      }
+    },
+    async getqueryCarryingMainteOrgan(searchValue) {
+      searchValue ? (this.pagination.pageIndex = 1) : (this.pagination.pageIndex = this.pagination.pageIndex)
+      let postData = {
+        pageIndex: this.pagination.pageIndex,
+        pageSize: this.pagination.pageSize,
+        queryParam: this.searchValue,
+        taskId: this.taskId,
+        avmatType: '0'
+      }
+      const { code, data } = await queryCarryingMainteOrgan(postData)
+      if (code == 200) {
+        this.tableData = data.list
+        this.pagination.total = data.totalCount
+      }
+    },
+    handleIndexChange(val) {
+      this.pagination.pageIndex = val
+      this.getqueryCarryingMainteOrgan()
+    },
+    handleSizeChange(val) {
+      this.pagination.pageSize = val
+      this.getqueryCarryingMainteOrgan()
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+@import './index.scss';
+</style>

+ 122 - 0
src/views/carrierStandard/carrierAllAudit/index.js

@@ -0,0 +1,122 @@
+import { taskStatus } from '@/utils/status'
+
+export const columns = (_this) => [
+  {
+    prop: 'taskName',
+    label: '任务名称',
+    align: 'left',
+    width: '200px'
+  },
+  {
+    prop: 'taskCode',
+    label: '任务代号'
+  },
+  {
+    prop: 'taskTime',
+    label: '任务时间',
+    width: '200px'
+  },
+  {
+    prop: 'taskDuration',
+    label: '任务时长/小时'
+  },
+  {
+    prop: 'flyingSession',
+    label: '飞行场次'
+  },
+  {
+    prop: 'env',
+    label: '飞行环境'
+  },
+  {
+    prop: 'transferLabel',
+    label: '转场形式'
+  },
+
+  {
+    prop: 'teamLeader',
+    label: '带队领导'
+  },
+
+  {
+    prop: 'taskAircraftNum',
+    label: '任务要求飞机数量'
+  },
+  {
+    prop: 'carryingAvmatNumber',
+    label: '携带航材数量'
+  },
+  {
+    prop: 'taskType',
+    label: '任务类型'
+  },
+
+  {
+    prop: 'taskSite',
+    label: '任务地点'
+  },
+
+  {
+    prop: 'status',
+    label: '状态',
+    width: '100px',
+    render: (h, params) => taskStatus(h, params.row.status)
+  },
+  {
+    button: true,
+    label: '操作',
+    width: '180px',
+    align: 'left',
+    group: [
+      {
+        name: '查看',
+        type: 'text',
+        round: false,
+        plain: false,
+        onClick: (row, index, scope) => {
+          _this.look(row)
+        }
+      },
+      {
+        name: '审核',
+        type: 'text',
+        statusKey: 'status',
+        unDisableKey: '4',
+        round: false,
+        plain: false,
+        showType: '0', //0:父级;1:子级
+        onClick: (row, index, scope) => {
+          _this.audit(row, '审核')
+        }
+      },
+      {
+        name: '驳回',
+        type: 'text',
+        statusKey: 'status',
+        unDisableKey: '4',
+        round: false,
+        plain: false,
+        showType: '0', //0:父级;1:子级
+        onClick: (row, index, scope) => {
+          _this.audit(row, '驳回')
+        }
+      }
+    ]
+  }
+]
+
+export const options = {
+  treeProps: {
+    children: 'children',
+    hasChildren: 'hasChildren'
+  },
+  rowKey: 'taskId',
+  stripe: true, // 斑马纹
+  mutiSelect: true, // 多选框
+  index: false, // 显示序号, 多选则 mutiSelect
+  loading: false, // 表格动画
+  initTable: true, // 是否一挂载就加载数据
+  border: true,
+  rowKey: 'taskId',
+  height: 'calc(100vh - 340px)'
+}

+ 21 - 0
src/views/carrierStandard/carrierAllAudit/index.scss

@@ -0,0 +1,21 @@
+.view-carrierFlightMission-FlightMission-table {
+  margin-top: 30px;
+}
+.view-carrierFlightMission-FlightMission-btn-mc {
+  display: flex;
+  justify-content: right;
+}
+.view-carrierFlightMission-FlightMission-btn-right {
+  display: flex;
+  .input-with-select {
+    display: flex;
+    margin-right: 20px;
+    > span {
+      color: #fff;
+      display: block;
+      margin-right: 10px;
+      width: 60px;
+      line-height: 30px;
+    }
+  }
+}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio