code4eat 9 месяцев назад
Сommit
ee7e5a2c6b
100 измененных файлов с 11155 добавлено и 0 удалено
  1. BIN
      .DS_Store
  2. 259 0
      .VSCodeCounter/2024-08-30_09-54-22/details.md
  3. 15 0
      .VSCodeCounter/2024-08-30_09-54-22/diff-details.md
  4. 2 0
      .VSCodeCounter/2024-08-30_09-54-22/diff.csv
  5. 19 0
      .VSCodeCounter/2024-08-30_09-54-22/diff.md
  6. 22 0
      .VSCodeCounter/2024-08-30_09-54-22/diff.txt
  7. 246 0
      .VSCodeCounter/2024-08-30_09-54-22/results.csv
  8. 0 0
      .VSCodeCounter/2024-08-30_09-54-22/results.json
  9. 126 0
      .VSCodeCounter/2024-08-30_09-54-22/results.md
  10. 373 0
      .VSCodeCounter/2024-08-30_09-54-22/results.txt
  11. 265 0
      .VSCodeCounter/2024-11-05_10-42-46/details.md
  12. 61 0
      .VSCodeCounter/2024-11-05_10-42-46/diff-details.md
  13. 48 0
      .VSCodeCounter/2024-11-05_10-42-46/diff.csv
  14. 71 0
      .VSCodeCounter/2024-11-05_10-42-46/diff.md
  15. 120 0
      .VSCodeCounter/2024-11-05_10-42-46/diff.txt
  16. 252 0
      .VSCodeCounter/2024-11-05_10-42-46/results.csv
  17. 0 0
      .VSCodeCounter/2024-11-05_10-42-46/results.json
  18. 128 0
      .VSCodeCounter/2024-11-05_10-42-46/results.md
  19. 381 0
      .VSCodeCounter/2024-11-05_10-42-46/results.txt
  20. 3 0
      .eslintrc.js
  21. 12 0
      .gitignore
  22. 4 0
      .husky/commit-msg
  23. 4 0
      .husky/pre-commit
  24. 17 0
      .lintstagedrc
  25. 2 0
      .npmrc
  26. 3 0
      .prettierignore
  27. 8 0
      .prettierrc
  28. 3 0
      .stylelintrc.js
  29. 97 0
      .umirc.ts
  30. 4 0
      .vscode/settings.json
  31. 3 0
      README.md
  32. 11 0
      config/proxy.ts
  33. 60 0
      mock/home.ts
  34. 242 0
      mock/monthlyData.ts
  35. 205 0
      mock/monthlyInfo.ts
  36. 54 0
      mock/monthlySet.ts
  37. 20 0
      mock/userAPI.ts
  38. 47 0
      package.json
  39. BIN
      src/.DS_Store
  40. 78 0
      src/access.ts
  41. 587 0
      src/app.tsx
  42. 0 0
      src/assets/.gitkeep
  43. 57 0
      src/authWrapper.tsx
  44. 4 0
      src/components/Guide/Guide.less
  45. 23 0
      src/components/Guide/Guide.tsx
  46. 2 0
      src/components/Guide/index.ts
  47. 23 0
      src/components/KCIMDrawerForm/index.tsx
  48. 20 0
      src/components/KCIMDrawerForm/style.less
  49. 272 0
      src/components/KCIMLeftList/index.tsx
  50. 138 0
      src/components/KCIMLeftList/style.less
  51. 43 0
      src/components/KCIMModalForm/index.tsx
  52. 102 0
      src/components/KCIMPageContainer/index.tsx
  53. 138 0
      src/components/KCIMPageContainer/style.less
  54. 66 0
      src/components/KCIMTable/index.tsx
  55. 237 0
      src/components/KCIMTable/style.less
  56. 194 0
      src/components/KCIMTableSelector/index.tsx
  57. 33 0
      src/components/KCIMTableSelector/style.less
  58. 78 0
      src/components/KCIMUpload/index.tsx
  59. 30 0
      src/components/KCIMUpload/style.less
  60. 93 0
      src/components/ProgressModal/index.tsx
  61. 34 0
      src/components/ProgressModal/service.ts
  62. 72 0
      src/components/ResizableContainer/index.tsx
  63. 24 0
      src/components/ResizableContainer/style.less
  64. BIN
      src/components/SQLEditor/images/confirm.png
  65. BIN
      src/components/SQLEditor/images/copy.png
  66. 125 0
      src/components/SQLEditor/index.tsx
  67. 55 0
      src/components/SQLEditor/style.less
  68. 20 0
      src/constant.ts
  69. 1 0
      src/constants/index.ts
  70. 825 0
      src/global.less
  71. 62 0
      src/menuIcons.js
  72. 13 0
      src/models/global.ts
  73. 25 0
      src/pages/404.tsx
  74. 32 0
      src/pages/Home/index.tsx
  75. 60 0
      src/pages/Home/service.ts
  76. 94 0
      src/pages/Home/style.less
  77. 261 0
      src/pages/baseInfoMana/checkGroupMana/index.tsx
  78. 96 0
      src/pages/baseInfoMana/checkGroupMana/service.ts
  79. 43 0
      src/pages/baseInfoMana/checkGroupMana/style.less
  80. 120 0
      src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx
  81. 319 0
      src/pages/baseInfoMana/empMana/index.tsx
  82. 106 0
      src/pages/baseInfoMana/empMana/service.ts
  83. 80 0
      src/pages/baseInfoMana/empMana/style.less
  84. 250 0
      src/pages/baseInfoMana/empMana/tableSelector.tsx
  85. 134 0
      src/pages/baseInfoMana/empMana/transform.tsx
  86. 270 0
      src/pages/baseInfoMana/unitMana/index.tsx
  87. 62 0
      src/pages/baseInfoMana/unitMana/service.ts
  88. 78 0
      src/pages/baseInfoMana/unitMana/style.less
  89. 198 0
      src/pages/baseInfoMana/unitMana/tableSelector.tsx
  90. 481 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx
  91. 82 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts
  92. 42 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less
  93. 310 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx
  94. 54 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts
  95. 42 0
      src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less
  96. 451 0
      src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx
  97. 76 0
      src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts
  98. 260 0
      src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less
  99. 201 0
      src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx
  100. 292 0
      src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx

+ 259 - 0
.VSCodeCounter/2024-08-30_09-54-22/details.md

@@ -0,0 +1,259 @@
+# Details
+
+Date : 2024-08-30 09:54:22
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 244 files,  42131 codes, 2729 comments, 8303 blanks, all 53163 lines
+
+[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
+
+## Files
+| filename | language | code | comment | blank | total |
+| :--- | :--- | ---: | ---: | ---: | ---: |
+| [.eslintrc.js](/.eslintrc.js) | JavaScript | 3 | 0 | 1 | 4 |
+| [.prettierignore](/.prettierignore) | Ignore | 3 | 0 | 1 | 4 |
+| [.prettierrc](/.prettierrc) | JSON | 8 | 0 | 1 | 9 |
+| [.stylelintrc.js](/.stylelintrc.js) | JavaScript | 3 | 0 | 1 | 4 |
+| [.umirc.ts](/.umirc.ts) | TypeScript | 379 | 14 | 15 | 408 |
+| [README.md](/README.md) | Markdown | 2 | 0 | 2 | 4 |
+| [config/proxy.ts](/config/proxy.ts) | TypeScript | 0 | 8 | 4 | 12 |
+| [mock/home.ts](/mock/home.ts) | TypeScript | 47 | 8 | 5 | 60 |
+| [mock/monthlyData.ts](/mock/monthlyData.ts) | TypeScript | 156 | 8 | 78 | 242 |
+| [mock/monthlyInfo.ts](/mock/monthlyInfo.ts) | TypeScript | 147 | 8 | 50 | 205 |
+| [mock/monthlySet.ts](/mock/monthlySet.ts) | TypeScript | 43 | 8 | 3 | 54 |
+| [mock/userAPI.ts](/mock/userAPI.ts) | TypeScript | 19 | 0 | 2 | 21 |
+| [package.json](/package.json) | JSON | 47 | 0 | 1 | 48 |
+| [src/access.ts](/src/access.ts) | TypeScript | 45 | 12 | 22 | 79 |
+| [src/app.tsx](/src/app.tsx) | TypeScript JSX | 395 | 71 | 117 | 583 |
+| [src/authWrapper.tsx](/src/authWrapper.tsx) | TypeScript JSX | 46 | 12 | 7 | 65 |
+| [src/components/Guide/Guide.less](/src/components/Guide/Guide.less) | Less | 4 | 0 | 1 | 5 |
+| [src/components/Guide/Guide.tsx](/src/components/Guide/Guide.tsx) | TypeScript JSX | 19 | 1 | 4 | 24 |
+| [src/components/Guide/index.ts](/src/components/Guide/index.ts) | TypeScript | 2 | 0 | 1 | 3 |
+| [src/components/KCIMDrawerForm/index.tsx](/src/components/KCIMDrawerForm/index.tsx) | TypeScript JSX | 6 | 9 | 8 | 23 |
+| [src/components/KCIMDrawerForm/style.less](/src/components/KCIMDrawerForm/style.less) | Less | 17 | 0 | 3 | 20 |
+| [src/components/KCIMLeftList/index.tsx](/src/components/KCIMLeftList/index.tsx) | TypeScript JSX | 169 | 61 | 51 | 281 |
+| [src/components/KCIMLeftList/style.less](/src/components/KCIMLeftList/style.less) | Less | 110 | 8 | 20 | 138 |
+| [src/components/KCIMModalForm/index.tsx](/src/components/KCIMModalForm/index.tsx) | TypeScript JSX | 23 | 8 | 11 | 42 |
+| [src/components/KCIMPageContainer/index.tsx](/src/components/KCIMPageContainer/index.tsx) | TypeScript JSX | 75 | 8 | 18 | 101 |
+| [src/components/KCIMPageContainer/style.less](/src/components/KCIMPageContainer/style.less) | Less | 119 | 0 | 19 | 138 |
+| [src/components/KCIMTable/index.tsx](/src/components/KCIMTable/index.tsx) | TypeScript JSX | 40 | 11 | 15 | 66 |
+| [src/components/KCIMTable/style.less](/src/components/KCIMTable/style.less) | Less | 179 | 8 | 50 | 237 |
+| [src/components/KCIMTableSelector/index.tsx](/src/components/KCIMTableSelector/index.tsx) | TypeScript JSX | 144 | 10 | 40 | 194 |
+| [src/components/KCIMTableSelector/style.less](/src/components/KCIMTableSelector/style.less) | Less | 29 | 0 | 4 | 33 |
+| [src/components/KCIMUpload/index.tsx](/src/components/KCIMUpload/index.tsx) | TypeScript JSX | 56 | 9 | 14 | 79 |
+| [src/components/KCIMUpload/style.less](/src/components/KCIMUpload/style.less) | Less | 26 | 0 | 5 | 31 |
+| [src/components/ProgressModal/index.tsx](/src/components/ProgressModal/index.tsx) | TypeScript JSX | 74 | 8 | 11 | 93 |
+| [src/components/ProgressModal/service.ts](/src/components/ProgressModal/service.ts) | TypeScript | 17 | 8 | 9 | 34 |
+| [src/components/ResizableContainer/index.tsx](/src/components/ResizableContainer/index.tsx) | TypeScript JSX | 54 | 8 | 10 | 72 |
+| [src/components/ResizableContainer/style.less](/src/components/ResizableContainer/style.less) | Less | 18 | 0 | 7 | 25 |
+| [src/components/SQLEditor/index.tsx](/src/components/SQLEditor/index.tsx) | TypeScript JSX | 108 | 10 | 15 | 133 |
+| [src/components/SQLEditor/style.less](/src/components/SQLEditor/style.less) | Less | 45 | 8 | 2 | 55 |
+| [src/constant.ts](/src/constant.ts) | TypeScript | 10 | 8 | 2 | 20 |
+| [src/constants/index.ts](/src/constants/index.ts) | TypeScript | 1 | 0 | 1 | 2 |
+| [src/global.less](/src/global.less) | Less | 603 | 51 | 161 | 815 |
+| [src/menuIcons.js](/src/menuIcons.js) | JavaScript | 33 | 24 | 6 | 63 |
+| [src/models/global.ts](/src/models/global.ts) | TypeScript | 10 | 1 | 3 | 14 |
+| [src/pages/404.tsx](/src/pages/404.tsx) | TypeScript JSX | 15 | 8 | 3 | 26 |
+| [src/pages/Home/index.tsx](/src/pages/Home/index.tsx) | TypeScript JSX | 17 | 9 | 7 | 33 |
+| [src/pages/Home/service.ts](/src/pages/Home/service.ts) | TypeScript | 28 | 11 | 22 | 61 |
+| [src/pages/Home/style.less](/src/pages/Home/style.less) | Less | 77 | 8 | 9 | 94 |
+| [src/pages/baseInfoMana/checkGroupMana/index.tsx](/src/pages/baseInfoMana/checkGroupMana/index.tsx) | TypeScript JSX | 207 | 13 | 42 | 262 |
+| [src/pages/baseInfoMana/checkGroupMana/service.ts](/src/pages/baseInfoMana/checkGroupMana/service.ts) | TypeScript | 60 | 13 | 24 | 97 |
+| [src/pages/baseInfoMana/checkGroupMana/style.less](/src/pages/baseInfoMana/checkGroupMana/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx](/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx) | TypeScript JSX | 85 | 6 | 29 | 120 |
+| [src/pages/baseInfoMana/empMana/index.tsx](/src/pages/baseInfoMana/empMana/index.tsx) | TypeScript JSX | 257 | 15 | 48 | 320 |
+| [src/pages/baseInfoMana/empMana/service.ts](/src/pages/baseInfoMana/empMana/service.ts) | TypeScript | 69 | 14 | 24 | 107 |
+| [src/pages/baseInfoMana/empMana/style.less](/src/pages/baseInfoMana/empMana/style.less) | Less | 66 | 0 | 15 | 81 |
+| [src/pages/baseInfoMana/empMana/tableSelector.tsx](/src/pages/baseInfoMana/empMana/tableSelector.tsx) | TypeScript JSX | 203 | 5 | 42 | 250 |
+| [src/pages/baseInfoMana/empMana/transform.tsx](/src/pages/baseInfoMana/empMana/transform.tsx) | TypeScript JSX | 97 | 19 | 19 | 135 |
+| [src/pages/baseInfoMana/unitMana/index.tsx](/src/pages/baseInfoMana/unitMana/index.tsx) | TypeScript JSX | 207 | 13 | 51 | 271 |
+| [src/pages/baseInfoMana/unitMana/service.ts](/src/pages/baseInfoMana/unitMana/service.ts) | TypeScript | 30 | 12 | 21 | 63 |
+| [src/pages/baseInfoMana/unitMana/style.less](/src/pages/baseInfoMana/unitMana/style.less) | Less | 66 | 0 | 13 | 79 |
+| [src/pages/baseInfoMana/unitMana/tableSelector.tsx](/src/pages/baseInfoMana/unitMana/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 40 | 198 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx) | TypeScript JSX | 402 | 9 | 53 | 464 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts) | TypeScript | 39 | 13 | 31 | 83 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less) | Less | 33 | 4 | 6 | 43 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx) | TypeScript JSX | 239 | 14 | 41 | 294 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts) | TypeScript | 19 | 11 | 25 | 55 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx) | TypeScript JSX | 359 | 14 | 79 | 452 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts) | TypeScript | 39 | 14 | 24 | 77 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less) | Less | 224 | 1 | 35 | 260 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 43 | 201 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx) | TypeScript JSX | 236 | 12 | 45 | 293 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts) | TypeScript | 38 | 13 | 30 | 81 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx) | TypeScript JSX | 255 | 11 | 45 | 311 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts) | TypeScript | 35 | 12 | 29 | 76 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx) | TypeScript JSX | 161 | 5 | 34 | 200 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx) | TypeScript JSX | 359 | 31 | 57 | 447 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts) | TypeScript | 70 | 19 | 47 | 136 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less) | Less | 78 | 0 | 13 | 91 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx) | TypeScript JSX | 134 | 7 | 45 | 186 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx) | TypeScript JSX | 379 | 70 | 52 | 501 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts) | TypeScript | 47 | 14 | 32 | 93 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less) | Less | 56 | 1 | 8 | 65 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx) | TypeScript JSX | 258 | 9 | 46 | 313 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts) | TypeScript | 44 | 13 | 31 | 88 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx) | TypeScript JSX | 227 | 9 | 46 | 282 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx](/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx) | TypeScript JSX | 297 | 66 | 54 | 417 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts](/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts) | TypeScript | 57 | 15 | 33 | 105 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less](/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx) | TypeScript JSX | 316 | 9 | 45 | 370 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts) | TypeScript | 47 | 14 | 32 | 93 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less) | Less | 31 | 0 | 4 | 35 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx) | TypeScript JSX | 125 | 4 | 27 | 156 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx) | TypeScript JSX | 474 | 44 | 120 | 638 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts](/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts) | TypeScript | 74 | 18 | 39 | 131 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less](/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less) | Less | 121 | 0 | 15 | 136 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx) | TypeScript JSX | 235 | 15 | 52 | 302 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx](/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx) | TypeScript JSX | 317 | 47 | 67 | 431 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/service.ts](/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts) | TypeScript | 64 | 13 | 33 | 110 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/style.less](/src/pages/baseSetting/otherItemSet/diySqlMana/style.less) | Less | 81 | 1 | 14 | 96 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx](/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx) | TypeScript JSX | 531 | 18 | 61 | 610 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/service.ts](/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts) | TypeScript | 56 | 15 | 33 | 104 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/style.less](/src/pages/baseSetting/otherItemSet/reportItemSet/style.less) | Less | 44 | 0 | 7 | 51 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx](/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx) | TypeScript JSX | 234 | 17 | 52 | 303 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx](/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx) | TypeScript JSX | 277 | 10 | 30 | 317 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js](/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js) | JavaScript | 30 | 13 | 27 | 70 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less](/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less) | Less | 77 | 0 | 16 | 93 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx) | TypeScript JSX | 244 | 13 | 45 | 302 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts) | TypeScript | 36 | 12 | 29 | 77 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx) | TypeScript JSX | 166 | 9 | 34 | 209 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts) | TypeScript | 33 | 12 | 29 | 74 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less) | Less | 30 | 0 | 4 | 34 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx) | TypeScript JSX | 463 | 12 | 64 | 539 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts) | TypeScript | 48 | 15 | 35 | 98 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx) | TypeScript JSX | 187 | 8 | 41 | 236 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts) | TypeScript | 19 | 11 | 9 | 39 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx) | TypeScript JSX | 121 | 3 | 21 | 145 |
+| [src/pages/costAccounting/calcPageTemplate/columns.tsx](/src/pages/costAccounting/calcPageTemplate/columns.tsx) | TypeScript JSX | 944 | 48 | 38 | 1,030 |
+| [src/pages/costAccounting/calcPageTemplate/config.ts](/src/pages/costAccounting/calcPageTemplate/config.ts) | TypeScript | 375 | 8 | 26 | 409 |
+| [src/pages/costAccounting/calcPageTemplate/index.tsx](/src/pages/costAccounting/calcPageTemplate/index.tsx) | TypeScript JSX | 687 | 16 | 94 | 797 |
+| [src/pages/costAccounting/calcPageTemplate/service.ts](/src/pages/costAccounting/calcPageTemplate/service.ts) | TypeScript | 340 | 22 | 40 | 402 |
+| [src/pages/costAccounting/calcPageTemplate/style.less](/src/pages/costAccounting/calcPageTemplate/style.less) | Less | 39 | 0 | 10 | 49 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx) | TypeScript JSX | 303 | 17 | 48 | 368 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts) | TypeScript | 65 | 14 | 32 | 111 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx) | TypeScript JSX | 299 | 17 | 48 | 364 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts) | TypeScript | 60 | 13 | 30 | 103 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx) | TypeScript JSX | 331 | 21 | 50 | 402 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts) | TypeScript | 60 | 13 | 30 | 103 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx) | TypeScript JSX | 481 | 22 | 88 | 591 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts) | TypeScript | 85 | 22 | 42 | 149 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less) | Less | 223 | 0 | 31 | 254 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx) | TypeScript JSX | 134 | 6 | 43 | 183 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx) | TypeScript JSX | 328 | 17 | 47 | 392 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts) | TypeScript | 54 | 13 | 30 | 97 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx) | TypeScript JSX | 287 | 9 | 46 | 342 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts) | TypeScript | 56 | 14 | 31 | 101 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx) | TypeScript JSX | 225 | 16 | 45 | 286 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts) | TypeScript | 56 | 13 | 30 | 99 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx) | TypeScript JSX | 495 | 11 | 81 | 587 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts) | TypeScript | 83 | 20 | 40 | 143 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less) | Less | 209 | 0 | 30 | 239 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 43 | 201 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx) | TypeScript JSX | 455 | 14 | 56 | 525 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx) | TypeScript JSX | 535 | 15 | 56 | 606 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less) | Less | 449 | 7 | 66 | 522 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx) | TypeScript JSX | 145 | 7 | 44 | 196 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx) | TypeScript JSX | 491 | 28 | 62 | 581 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts) | TypeScript | 198 | 41 | 62 | 301 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less) | Less | 153 | 0 | 25 | 178 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx) | TypeScript JSX | 139 | 5 | 32 | 176 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx) | TypeScript JSX | 367 | 11 | 50 | 428 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts) | TypeScript | 75 | 20 | 51 | 146 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less) | Less | 78 | 0 | 13 | 91 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx) | TypeScript JSX | 134 | 7 | 45 | 186 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx) | TypeScript JSX | 250 | 11 | 47 | 308 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts) | TypeScript | 51 | 14 | 31 | 96 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx) | TypeScript JSX | 388 | 12 | 49 | 449 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx) | TypeScript JSX | 364 | 16 | 49 | 429 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts) | TypeScript | 113 | 21 | 49 | 183 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less) | Less | 212 | 1 | 25 | 238 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx) | TypeScript JSX | 329 | 9 | 45 | 383 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx) | TypeScript JSX | 227 | 13 | 49 | 289 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts](/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts) | TypeScript | 100 | 16 | 38 | 154 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less](/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less) | Less | 64 | 3 | 13 | 80 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx) | TypeScript JSX | 110 | 4 | 19 | 133 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx](/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx) | TypeScript JSX | 460 | 19 | 99 | 578 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/service.ts](/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts) | TypeScript | 64 | 18 | 36 | 118 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/style.less](/src/pages/costLibraryManagement/reportMana/reportListMana/style.less) | Less | 223 | 0 | 33 | 256 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx](/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx) | TypeScript JSX | 154 | 6 | 43 | 203 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx](/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx) | TypeScript JSX | 298 | 12 | 50 | 360 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts](/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts) | TypeScript | 57 | 12 | 31 | 100 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/style.less](/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/incomeCollectionAction/index.tsx](/src/pages/incomeCollectionAction/index.tsx) | TypeScript JSX | 305 | 11 | 38 | 354 |
+| [src/pages/incomeCollectionAction/service.ts](/src/pages/incomeCollectionAction/service.ts) | TypeScript | 13 | 2 | 9 | 24 |
+| [src/pages/incomeCollectionAction/style.less](/src/pages/incomeCollectionAction/style.less) | Less | 183 | 0 | 31 | 214 |
+| [src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx](/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx) | TypeScript JSX | 346 | 14 | 58 | 418 |
+| [src/pages/monthlyInfoCollection/components/style.less](/src/pages/monthlyInfoCollection/components/style.less) | Less | 153 | 0 | 27 | 180 |
+| [src/pages/monthlyInfoCollection/index.tsx](/src/pages/monthlyInfoCollection/index.tsx) | TypeScript JSX | 176 | 13 | 22 | 211 |
+| [src/pages/monthlyInfoCollection/service.ts](/src/pages/monthlyInfoCollection/service.ts) | TypeScript | 66 | 19 | 33 | 118 |
+| [src/pages/monthlyInfoCollection/style.less](/src/pages/monthlyInfoCollection/style.less) | Less | 49 | 0 | 4 | 53 |
+| [src/pages/monthlyInfoCollection/tableSelector.tsx](/src/pages/monthlyInfoCollection/tableSelector.tsx) | TypeScript JSX | 153 | 2 | 38 | 193 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx) | TypeScript JSX | 200 | 36 | 25 | 261 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/service.js](/src/pages/monthlyInfoSearch/empCostDataImport/service.js) | JavaScript | 39 | 13 | 27 | 79 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/style.less](/src/pages/monthlyInfoSearch/empCostDataImport/style.less) | Less | 84 | 0 | 17 | 101 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx) | TypeScript JSX | 391 | 56 | 55 | 502 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/service.js](/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js) | JavaScript | 62 | 16 | 29 | 107 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/style.less](/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less) | Less | 74 | 0 | 16 | 90 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/test.html](/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html) | HTML | 20 | 0 | 1 | 21 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx](/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx) | TypeScript JSX | 284 | 64 | 32 | 380 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js](/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js) | JavaScript | 45 | 14 | 28 | 87 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less](/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less) | Less | 91 | 1 | 17 | 109 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/index.tsx](/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx) | TypeScript JSX | 312 | 54 | 31 | 397 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/service.js](/src/pages/monthlyInfoSearch/patientInfoImport/service.js) | JavaScript | 39 | 13 | 27 | 79 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/style.less](/src/pages/monthlyInfoSearch/patientInfoImport/style.less) | Less | 84 | 1 | 16 | 101 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx) | TypeScript JSX | 260 | 29 | 41 | 330 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts) | TypeScript | 43 | 12 | 29 | 84 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less) | Less | 162 | 0 | 27 | 189 |
+| [src/pages/noAccess/index.tsx](/src/pages/noAccess/index.tsx) | TypeScript JSX | 18 | 9 | 4 | 31 |
+| [src/pages/noAccess/style.less](/src/pages/noAccess/style.less) | Less | 45 | 0 | 4 | 49 |
+| [src/pages/reportExport/report/ExportProgressModal.tsx](/src/pages/reportExport/report/ExportProgressModal.tsx) | TypeScript JSX | 42 | 8 | 11 | 61 |
+| [src/pages/reportExport/report/index.tsx](/src/pages/reportExport/report/index.tsx) | TypeScript JSX | 336 | 52 | 120 | 508 |
+| [src/pages/reportExport/report/service.ts](/src/pages/reportExport/report/service.ts) | TypeScript | 21 | 9 | 19 | 49 |
+| [src/pages/reportExport/report/style.less](/src/pages/reportExport/report/style.less) | Less | 80 | 0 | 9 | 89 |
+| [src/pages/setting/fenyeTemplate/index.tsx](/src/pages/setting/fenyeTemplate/index.tsx) | TypeScript JSX | 304 | 13 | 47 | 364 |
+| [src/pages/setting/fenyeTemplate/service.ts](/src/pages/setting/fenyeTemplate/service.ts) | TypeScript | 47 | 12 | 23 | 82 |
+| [src/pages/setting/fenyeTemplate/style.less](/src/pages/setting/fenyeTemplate/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/setting/qualitativeOptionsMana/index.tsx](/src/pages/setting/qualitativeOptionsMana/index.tsx) | TypeScript JSX | 286 | 9 | 46 | 341 |
+| [src/pages/setting/qualitativeOptionsMana/service.ts](/src/pages/setting/qualitativeOptionsMana/service.ts) | TypeScript | 62 | 14 | 24 | 100 |
+| [src/pages/setting/qualitativeOptionsMana/style.less](/src/pages/setting/qualitativeOptionsMana/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/specialDataImport/index.tsx](/src/pages/specialDataImport/index.tsx) | TypeScript JSX | 204 | 9 | 37 | 250 |
+| [src/pages/specialDataImport/service.ts](/src/pages/specialDataImport/service.ts) | TypeScript | 33 | 12 | 26 | 71 |
+| [src/pages/specialDataImport/style.less](/src/pages/specialDataImport/style.less) | Less | 50 | 0 | 7 | 57 |
+| [src/pages/static/index.tsx](/src/pages/static/index.tsx) | TypeScript JSX | 54 | 10 | 21 | 85 |
+| [src/pages/static/service.js](/src/pages/static/service.js) | JavaScript | 45 | 14 | 28 | 87 |
+| [src/pages/static/style.less](/src/pages/static/style.less) | Less | 81 | 0 | 16 | 97 |
+| [src/services/auth.ts](/src/services/auth.ts) | TypeScript | 26 | 12 | 11 | 49 |
+| [src/services/demo/UserController.ts](/src/services/demo/UserController.ts) | TypeScript | 74 | 17 | 6 | 97 |
+| [src/services/demo/index.ts](/src/services/demo/index.ts) | TypeScript | 4 | 2 | 2 | 8 |
+| [src/services/demo/typings.d.ts](/src/services/demo/typings.d.ts) | TypeScript | 48 | 10 | 11 | 69 |
+| [src/services/getDic.ts](/src/services/getDic.ts) | TypeScript | 38 | 12 | 26 | 76 |
+| [src/typings.d.ts](/src/typings.d.ts) | TypeScript | 21 | 10 | 3 | 34 |
+| [src/utils/devicePixelRatio.js](/src/utils/devicePixelRatio.js) | JavaScript | 38 | 27 | 2 | 67 |
+| [src/utils/format.ts](/src/utils/format.ts) | TypeScript | 9 | 10 | 2 | 21 |
+| [src/utils/tableToExcel.ts](/src/utils/tableToExcel.ts) | TypeScript | 42 | 21 | 23 | 86 |
+| [src/utils/tableToMultiHeaderExcel.ts](/src/utils/tableToMultiHeaderExcel.ts) | TypeScript | 221 | 10 | 51 | 282 |
+| [src/utils/tooljs.ts](/src/utils/tooljs.ts) | TypeScript | 220 | 39 | 97 | 356 |
+| [src/utils/zhongtaiA.js](/src/utils/zhongtaiA.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [src/utils/zhongtaiB.js](/src/utils/zhongtaiB.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [src/utils/zhongtaiC.js](/src/utils/zhongtaiC.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [tsconfig.json](/tsconfig.json) | JSON with Comments | 3 | 0 | 1 | 4 |
+| [typings.d.ts](/typings.d.ts) | TypeScript | 8 | 8 | 2 | 18 |
+| [yarn-error.log](/yarn-error.log) | Log | 8,469 | 0 | 1,293 | 9,762 |
+
+[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

+ 15 - 0
.VSCodeCounter/2024-08-30_09-54-22/diff-details.md

@@ -0,0 +1,15 @@
+# Diff Details
+
+Date : 2024-08-30 09:54:22
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 0 files,  0 codes, 0 comments, 0 blanks, all 0 lines
+
+[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
+
+## Files
+| filename | language | code | comment | blank | total |
+| :--- | :--- | ---: | ---: | ---: | ---: |
+
+[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details

+ 2 - 0
.VSCodeCounter/2024-08-30_09-54-22/diff.csv

@@ -0,0 +1,2 @@
+"filename", "language", "", "comment", "blank", "total"
+"Total", "-", , 0, 0, 0

+ 19 - 0
.VSCodeCounter/2024-08-30_09-54-22/diff.md

@@ -0,0 +1,19 @@
+# Diff Summary
+
+Date : 2024-08-30 09:54:22
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 0 files,  0 codes, 0 comments, 0 blanks, all 0 lines
+
+[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
+
+## Languages
+| language | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+
+## Directories
+| path | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+
+[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)

+ 22 - 0
.VSCodeCounter/2024-08-30_09-54-22/diff.txt

@@ -0,0 +1,22 @@
+Date : 2024-08-30 09:54:22
+Directory : /Users/dema/work/CostAccountingSys
+Total : 0 files,  0 codes, 0 comments, 0 blanks, all 0 lines
+
+Languages
++----------+------------+------------+------------+------------+------------+
+| language | files      | code       | comment    | blank      | total      |
++----------+------------+------------+------------+------------+------------+
++----------+------------+------------+------------+------------+------------+
+
+Directories
++------+------------+------------+------------+------------+------------+
+| path | files      | code       | comment    | blank      | total      |
++------+------------+------------+------------+------------+------------+
++------+------------+------------+------------+------------+------------+
+
+Files
++----------+----------+------------+------------+------------+------------+
+| filename | language | code       | comment    | blank      | total      |
++----------+----------+------------+------------+------------+------------+
+| Total    |          |          0 |          0 |          0 |          0 |
++----------+----------+------------+------------+------------+------------+

+ 246 - 0
.VSCodeCounter/2024-08-30_09-54-22/results.csv

@@ -0,0 +1,246 @@
+"filename", "language", "TypeScript", "TypeScript JSX", "Less", "JavaScript", "HTML", "JSON with Comments", "JSON", "Markdown", "Ignore", "Log", "comment", "blank", "total"
+"/Users/dema/work/CostAccountingSys/.eslintrc.js", "JavaScript", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.prettierignore", "Ignore", 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.prettierrc", "JSON", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 1, 9
+"/Users/dema/work/CostAccountingSys/.stylelintrc.js", "JavaScript", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.umirc.ts", "TypeScript", 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15, 408
+"/Users/dema/work/CostAccountingSys/README.md", "Markdown", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4
+"/Users/dema/work/CostAccountingSys/config/proxy.ts", "TypeScript", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 12
+"/Users/dema/work/CostAccountingSys/mock/home.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 5, 60
+"/Users/dema/work/CostAccountingSys/mock/monthlyData.ts", "TypeScript", 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 78, 242
+"/Users/dema/work/CostAccountingSys/mock/monthlyInfo.ts", "TypeScript", 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 50, 205
+"/Users/dema/work/CostAccountingSys/mock/monthlySet.ts", "TypeScript", 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 54
+"/Users/dema/work/CostAccountingSys/mock/userAPI.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21
+"/Users/dema/work/CostAccountingSys/package.json", "JSON", 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 1, 48
+"/Users/dema/work/CostAccountingSys/src/access.ts", "TypeScript", 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 22, 79
+"/Users/dema/work/CostAccountingSys/src/app.tsx", "TypeScript JSX", 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, 71, 117, 583
+"/Users/dema/work/CostAccountingSys/src/authWrapper.tsx", "TypeScript JSX", 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 65
+"/Users/dema/work/CostAccountingSys/src/components/Guide/Guide.less", "Less", 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5
+"/Users/dema/work/CostAccountingSys/src/components/Guide/Guide.tsx", "TypeScript JSX", 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 24
+"/Users/dema/work/CostAccountingSys/src/components/Guide/index.ts", "TypeScript", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3
+"/Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/index.tsx", "TypeScript JSX", 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 9, 8, 23
+"/Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/style.less", "Less", 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20
+"/Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx", "TypeScript JSX", 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 61, 51, 281
+"/Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/style.less", "Less", 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 8, 20, 138
+"/Users/dema/work/CostAccountingSys/src/components/KCIMModalForm/index.tsx", "TypeScript JSX", 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 42
+"/Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/index.tsx", "TypeScript JSX", 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 8, 18, 101
+"/Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/style.less", "Less", 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 19, 138
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTable/index.tsx", "TypeScript JSX", 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 11, 15, 66
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTable/style.less", "Less", 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 8, 50, 237
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/index.tsx", "TypeScript JSX", 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 10, 40, 194
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/style.less", "Less", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 4, 33
+"/Users/dema/work/CostAccountingSys/src/components/KCIMUpload/index.tsx", "TypeScript JSX", 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 9, 14, 79
+"/Users/dema/work/CostAccountingSys/src/components/KCIMUpload/style.less", "Less", 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31
+"/Users/dema/work/CostAccountingSys/src/components/ProgressModal/index.tsx", "TypeScript JSX", 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 93
+"/Users/dema/work/CostAccountingSys/src/components/ProgressModal/service.ts", "TypeScript", 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 34
+"/Users/dema/work/CostAccountingSys/src/components/ResizableContainer/index.tsx", "TypeScript JSX", 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 72
+"/Users/dema/work/CostAccountingSys/src/components/ResizableContainer/style.less", "Less", 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 7, 25
+"/Users/dema/work/CostAccountingSys/src/components/SQLEditor/index.tsx", "TypeScript JSX", 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 133
+"/Users/dema/work/CostAccountingSys/src/components/SQLEditor/style.less", "Less", 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 8, 2, 55
+"/Users/dema/work/CostAccountingSys/src/constant.ts", "TypeScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 20
+"/Users/dema/work/CostAccountingSys/src/constants/index.ts", "TypeScript", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2
+"/Users/dema/work/CostAccountingSys/src/global.less", "Less", 0, 0, 603, 0, 0, 0, 0, 0, 0, 0, 51, 161, 815
+"/Users/dema/work/CostAccountingSys/src/menuIcons.js", "JavaScript", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 24, 6, 63
+"/Users/dema/work/CostAccountingSys/src/models/global.ts", "TypeScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 14
+"/Users/dema/work/CostAccountingSys/src/pages/404.tsx", "TypeScript JSX", 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 26
+"/Users/dema/work/CostAccountingSys/src/pages/Home/index.tsx", "TypeScript JSX", 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 33
+"/Users/dema/work/CostAccountingSys/src/pages/Home/service.ts", "TypeScript", 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 22, 61
+"/Users/dema/work/CostAccountingSys/src/pages/Home/style.less", "Less", 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 8, 9, 94
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/index.tsx", "TypeScript JSX", 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 13, 42, 262
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 24, 97
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx", "TypeScript JSX", 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29, 120
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/index.tsx", "TypeScript JSX", 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 15, 48, 320
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/service.ts", "TypeScript", 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 107
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/style.less", "Less", 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 15, 81
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/tableSelector.tsx", "TypeScript JSX", 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 5, 42, 250
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/transform.tsx", "TypeScript JSX", 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 135
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/index.tsx", "TypeScript JSX", 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 13, 51, 271
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/service.ts", "TypeScript", 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 21, 63
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/style.less", "Less", 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 13, 79
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40, 198
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx", "TypeScript JSX", 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 9, 53, 464
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts", "TypeScript", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 31, 83
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less", "Less", 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 4, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx", "TypeScript JSX", 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 14, 41, 294
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 25, 55
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx", "TypeScript JSX", 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 14, 79, 452
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts", "TypeScript", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 77
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less", "Less", 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 1, 35, 260
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 201
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx", "TypeScript JSX", 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45, 293
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts", "TypeScript", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 81
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx", "TypeScript JSX", 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 11, 45, 311
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts", "TypeScript", 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 76
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx", "TypeScript JSX", 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34, 200
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx", "TypeScript JSX", 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 31, 57, 447
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts", "TypeScript", 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 47, 136
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less", "Less", 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 13, 91
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx", "TypeScript JSX", 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 7, 45, 186
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx", "TypeScript JSX", 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 70, 52, 501
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less", "Less", 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 1, 8, 65
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx", "TypeScript JSX", 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 313
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts", "TypeScript", 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 31, 88
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx", "TypeScript JSX", 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 282
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx", "TypeScript JSX", 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 66, 54, 417
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts", "TypeScript", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 33, 105
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx", "TypeScript JSX", 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 9, 45, 370
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less", "Less", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 4, 35
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx", "TypeScript JSX", 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 4, 27, 156
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx", "TypeScript JSX", 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 44, 120, 638
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts", "TypeScript", 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 39, 131
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less", "Less", 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 15, 136
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx", "TypeScript JSX", 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 15, 52, 302
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx", "TypeScript JSX", 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 47, 67, 431
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts", "TypeScript", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 33, 110
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/style.less", "Less", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 1, 14, 96
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx", "TypeScript JSX", 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 18, 61, 610
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 33, 104
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less", "Less", 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 7, 51
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx", "TypeScript JSX", 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 17, 52, 303
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx", "TypeScript JSX", 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 317
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js", "JavaScript", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 13, 27, 70
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less", "Less", 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 16, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx", "TypeScript JSX", 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 13, 45, 302
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts", "TypeScript", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 77
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx", "TypeScript JSX", 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 9, 34, 209
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts", "TypeScript", 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 74
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less", "Less", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 4, 34
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx", "TypeScript JSX", 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64, 539
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts", "TypeScript", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 35, 98
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx", "TypeScript JSX", 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 8, 41, 236
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 39
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx", "TypeScript JSX", 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 145
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx", "TypeScript JSX", 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 48, 38, 1030
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/config.ts", "TypeScript", 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 26, 409
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx", "TypeScript JSX", 0, 687, 0, 0, 0, 0, 0, 0, 0, 0, 16, 94, 797
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/service.ts", "TypeScript", 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 40, 402
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less", "Less", 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 10, 49
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx", "TypeScript JSX", 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 17, 48, 368
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts", "TypeScript", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 111
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx", "TypeScript JSX", 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 17, 48, 364
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 103
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx", "TypeScript JSX", 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 21, 50, 402
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 103
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx", "TypeScript JSX", 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 22, 88, 591
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts", "TypeScript", 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 42, 149
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less", "Less", 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 31, 254
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx", "TypeScript JSX", 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 183
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx", "TypeScript JSX", 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, 17, 47, 392
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts", "TypeScript", 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 97
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx", "TypeScript JSX", 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 342
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 101
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx", "TypeScript JSX", 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 16, 45, 286
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 99
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx", "TypeScript JSX", 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, 11, 81, 587
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts", "TypeScript", 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 40, 143
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less", "Less", 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 30, 239
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 201
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx", "TypeScript JSX", 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 14, 56, 525
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx", "TypeScript JSX", 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 15, 56, 606
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less", "Less", 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 7, 66, 522
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx", "TypeScript JSX", 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44, 196
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx", "TypeScript JSX", 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 581
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts", "TypeScript", 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 62, 301
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less", "Less", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 25, 178
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx", "TypeScript JSX", 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 5, 32, 176
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx", "TypeScript JSX", 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 11, 50, 428
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts", "TypeScript", 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 51, 146
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less", "Less", 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 13, 91
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx", "TypeScript JSX", 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 7, 45, 186
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx", "TypeScript JSX", 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 11, 47, 308
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts", "TypeScript", 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 96
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx", "TypeScript JSX", 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 12, 49, 449
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx", "TypeScript JSX", 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 16, 49, 429
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts", "TypeScript", 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 49, 183
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less", "Less", 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 1, 25, 238
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx", "TypeScript JSX", 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 9, 45, 383
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx", "TypeScript JSX", 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 13, 49, 289
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts", "TypeScript", 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 38, 154
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less", "Less", 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 3, 13, 80
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx", "TypeScript JSX", 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 4, 19, 133
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx", "TypeScript JSX", 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 19, 99, 578
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts", "TypeScript", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 36, 118
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/style.less", "Less", 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 33, 256
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx", "TypeScript JSX", 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 203
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx", "TypeScript JSX", 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 12, 50, 360
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts", "TypeScript", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 31, 100
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx", "TypeScript JSX", 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 11, 38, 354
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/service.ts", "TypeScript", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 24
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/style.less", "Less", 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 31, 214
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx", "TypeScript JSX", 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 14, 58, 418
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/style.less", "Less", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 27, 180
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx", "TypeScript JSX", 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 13, 22, 211
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/service.ts", "TypeScript", 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 33, 118
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 4, 53
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/tableSelector.tsx", "TypeScript JSX", 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 2, 38, 193
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx", "TypeScript JSX", 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 36, 25, 261
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/service.js", "JavaScript", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 13, 27, 79
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/style.less", "Less", 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 17, 101
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx", "TypeScript JSX", 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 56, 55, 502
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js", "JavaScript", 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 16, 29, 107
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less", "Less", 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 16, 90
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html", "HTML", 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 21
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx", "TypeScript JSX", 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 380
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js", "JavaScript", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 14, 28, 87
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less", "Less", 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 1, 17, 109
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx", "TypeScript JSX", 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 54, 31, 397
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/service.js", "JavaScript", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 13, 27, 79
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/style.less", "Less", 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 1, 16, 101
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx", "TypeScript JSX", 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 29, 41, 330
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts", "TypeScript", 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 84
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less", "Less", 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 27, 189
+"/Users/dema/work/CostAccountingSys/src/pages/noAccess/index.tsx", "TypeScript JSX", 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 31
+"/Users/dema/work/CostAccountingSys/src/pages/noAccess/style.less", "Less", 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 4, 49
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx", "TypeScript JSX", 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 61
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx", "TypeScript JSX", 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, 52, 120, 508
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/service.ts", "TypeScript", 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 19, 49
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/style.less", "Less", 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 9, 89
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/index.tsx", "TypeScript JSX", 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 13, 47, 364
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 23, 82
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/index.tsx", "TypeScript JSX", 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 341
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/service.ts", "TypeScript", 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 100
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx", "TypeScript JSX", 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 9, 37, 250
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/service.ts", "TypeScript", 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, 71
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/style.less", "Less", 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 7, 57
+"/Users/dema/work/CostAccountingSys/src/pages/static/index.tsx", "TypeScript JSX", 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 85
+"/Users/dema/work/CostAccountingSys/src/pages/static/service.js", "JavaScript", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 14, 28, 87
+"/Users/dema/work/CostAccountingSys/src/pages/static/style.less", "Less", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 16, 97
+"/Users/dema/work/CostAccountingSys/src/services/auth.ts", "TypeScript", 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 11, 49
+"/Users/dema/work/CostAccountingSys/src/services/demo/UserController.ts", "TypeScript", 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 97
+"/Users/dema/work/CostAccountingSys/src/services/demo/index.ts", "TypeScript", 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 8
+"/Users/dema/work/CostAccountingSys/src/services/demo/typings.d.ts", "TypeScript", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 69
+"/Users/dema/work/CostAccountingSys/src/services/getDic.ts", "TypeScript", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, 76
+"/Users/dema/work/CostAccountingSys/src/typings.d.ts", "TypeScript", 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 34
+"/Users/dema/work/CostAccountingSys/src/utils/devicePixelRatio.js", "JavaScript", 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 27, 2, 67
+"/Users/dema/work/CostAccountingSys/src/utils/format.ts", "TypeScript", 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 21
+"/Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts", "TypeScript", 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 86
+"/Users/dema/work/CostAccountingSys/src/utils/tableToMultiHeaderExcel.ts", "TypeScript", 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 51, 282
+"/Users/dema/work/CostAccountingSys/src/utils/tooljs.ts", "TypeScript", 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 97, 356
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiA.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiB.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiC.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/tsconfig.json", "JSON with Comments", 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/typings.d.ts", "TypeScript", 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 18
+"/Users/dema/work/CostAccountingSys/yarn-error.log", "Log", 0, 0, 0, 0, 0, 0, 0, 0, 0, 8469, 0, 1293, 9762
+"Total", "-", 4716, 22780, 5743, 340, 20, 3, 55, 2, 3, 8469, 2729, 8303, 53163

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
.VSCodeCounter/2024-08-30_09-54-22/results.json


+ 126 - 0
.VSCodeCounter/2024-08-30_09-54-22/results.md

@@ -0,0 +1,126 @@
+# Summary
+
+Date : 2024-08-30 09:54:22
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 244 files,  42131 codes, 2729 comments, 8303 blanks, all 53163 lines
+
+Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
+
+## Languages
+| language | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| TypeScript JSX | 92 | 22,780 | 1,576 | 3,993 | 28,349 |
+| Log | 1 | 8,469 | 0 | 1,293 | 9,762 |
+| Less | 63 | 5,743 | 103 | 1,001 | 6,847 |
+| TypeScript | 69 | 4,716 | 892 | 1,833 | 7,441 |
+| JavaScript | 13 | 340 | 158 | 176 | 674 |
+| JSON | 2 | 55 | 0 | 2 | 57 |
+| HTML | 1 | 20 | 0 | 1 | 21 |
+| JSON with Comments | 1 | 3 | 0 | 1 | 4 |
+| Ignore | 1 | 3 | 0 | 1 | 4 |
+| Markdown | 1 | 2 | 0 | 2 | 4 |
+
+## Directories
+| path | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| . | 244 | 42,131 | 2,729 | 8,303 | 53,163 |
+| . (Files) | 10 | 8,925 | 22 | 1,318 | 10,265 |
+| config | 1 | 0 | 8 | 4 | 12 |
+| mock | 5 | 412 | 32 | 138 | 582 |
+| src | 228 | 32,794 | 2,667 | 6,843 | 42,304 |
+| src (Files) | 7 | 1,153 | 188 | 318 | 1,659 |
+| src/components | 22 | 1,334 | 175 | 318 | 1,827 |
+| src/components/Guide | 3 | 25 | 1 | 6 | 32 |
+| src/components/KCIMDrawerForm | 2 | 23 | 9 | 11 | 43 |
+| src/components/KCIMLeftList | 2 | 279 | 69 | 71 | 419 |
+| src/components/KCIMModalForm | 1 | 23 | 8 | 11 | 42 |
+| src/components/KCIMPageContainer | 2 | 194 | 8 | 37 | 239 |
+| src/components/KCIMTable | 2 | 219 | 19 | 65 | 303 |
+| src/components/KCIMTableSelector | 2 | 173 | 10 | 44 | 227 |
+| src/components/KCIMUpload | 2 | 82 | 9 | 19 | 110 |
+| src/components/ProgressModal | 2 | 91 | 16 | 20 | 127 |
+| src/components/ResizableContainer | 2 | 72 | 8 | 17 | 97 |
+| src/components/SQLEditor | 2 | 153 | 18 | 17 | 188 |
+| src/constants | 1 | 1 | 0 | 1 | 2 |
+| src/models | 1 | 10 | 1 | 3 | 14 |
+| src/pages | 184 | 29,573 | 2,119 | 5,972 | 37,664 |
+| src/pages (Files) | 1 | 15 | 8 | 3 | 26 |
+| src/pages/Home | 3 | 122 | 28 | 38 | 188 |
+| src/pages/baseInfoMana | 13 | 1,536 | 116 | 375 | 2,027 |
+| src/pages/baseInfoMana/checkGroupMana | 4 | 389 | 32 | 102 | 523 |
+| src/pages/baseInfoMana/empMana | 5 | 692 | 53 | 148 | 893 |
+| src/pages/baseInfoMana/unitMana | 4 | 455 | 31 | 125 | 611 |
+| src/pages/baseSetting | 62 | 9,050 | 726 | 2,023 | 11,799 |
+| src/pages/baseSetting/accountingAccountSet | 13 | 1,866 | 111 | 426 | 2,403 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana | 3 | 474 | 26 | 90 | 590 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap | 3 | 295 | 25 | 72 | 392 |
+| src/pages/baseSetting/accountingAccountSet/chargeItemMap | 4 | 774 | 35 | 181 | 990 |
+| src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana | 3 | 323 | 25 | 83 | 431 |
+| src/pages/baseSetting/costAllocationSet | 22 | 3,087 | 309 | 698 | 4,094 |
+| src/pages/baseSetting/costAllocationSet/allocationLevelSet | 3 | 327 | 23 | 80 | 430 |
+| src/pages/baseSetting/costAllocationSet/allocationParamsMap | 5 | 802 | 62 | 196 | 1,060 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal | 3 | 482 | 85 | 92 | 659 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet | 4 | 566 | 31 | 129 | 726 |
+| src/pages/baseSetting/costAllocationSet/idleCostSetting | 3 | 391 | 81 | 93 | 565 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet | 4 | 519 | 27 | 108 | 654 |
+| src/pages/baseSetting/otherItemSet | 20 | 3,161 | 257 | 713 | 4,131 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc | 4 | 904 | 77 | 226 | 1,207 |
+| src/pages/baseSetting/otherItemSet/diySqlMana | 3 | 462 | 61 | 114 | 637 |
+| src/pages/baseSetting/otherItemSet/reportItemSet | 4 | 865 | 50 | 153 | 1,068 |
+| src/pages/baseSetting/otherItemSet/reportProjectSetting | 3 | 384 | 23 | 73 | 480 |
+| src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting | 3 | 317 | 25 | 80 | 422 |
+| src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet | 3 | 229 | 21 | 67 | 317 |
+| src/pages/baseSetting/responsibilityCenterSet | 7 | 936 | 49 | 186 | 1,171 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter | 3 | 560 | 27 | 107 | 694 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect | 4 | 376 | 22 | 79 | 477 |
+| src/pages/costAccounting | 5 | 2,385 | 94 | 208 | 2,687 |
+| src/pages/costAccounting/calcPageTemplate | 5 | 2,385 | 94 | 208 | 2,687 |
+| src/pages/costLibraryManagement | 57 | 11,049 | 606 | 2,191 | 13,846 |
+| src/pages/costLibraryManagement/basicCostManagement | 16 | 2,619 | 175 | 547 | 3,341 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement | 3 | 417 | 31 | 87 | 535 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement | 3 | 408 | 30 | 85 | 523 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement | 3 | 440 | 34 | 87 | 561 |
+| src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana | 4 | 923 | 50 | 204 | 1,177 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement | 3 | 431 | 30 | 84 | 545 |
+| src/pages/costLibraryManagement/diseaseCostManagement | 6 | 722 | 52 | 168 | 942 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison | 3 | 392 | 23 | 85 | 500 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana | 3 | 330 | 29 | 83 | 442 |
+| src/pages/costLibraryManagement/medicalOrderProject | 4 | 939 | 37 | 194 | 1,170 |
+| src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana | 4 | 939 | 37 | 194 | 1,170 |
+| src/pages/costLibraryManagement/projectCostManagement | 19 | 4,646 | 230 | 819 | 5,695 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana | 7 | 2,426 | 112 | 371 | 2,909 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana (Files) | 3 | 842 | 69 | 149 | 1,060 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components | 4 | 1,584 | 43 | 222 | 1,849 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet | 5 | 793 | 43 | 191 | 1,027 |
+| src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet | 3 | 350 | 25 | 85 | 460 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana | 4 | 1,077 | 50 | 172 | 1,299 |
+| src/pages/costLibraryManagement/reportMana | 12 | 2,123 | 112 | 463 | 2,698 |
+| src/pages/costLibraryManagement/reportMana/reportColumnMana | 5 | 830 | 45 | 164 | 1,039 |
+| src/pages/costLibraryManagement/reportMana/reportListMana | 4 | 901 | 43 | 211 | 1,155 |
+| src/pages/costLibraryManagement/reportMana/reportNavSet | 3 | 392 | 24 | 88 | 504 |
+| src/pages/incomeCollectionAction | 3 | 501 | 13 | 78 | 592 |
+| src/pages/monthlyInfoCollection | 6 | 943 | 48 | 182 | 1,173 |
+| src/pages/monthlyInfoCollection (Files) | 4 | 444 | 34 | 97 | 575 |
+| src/pages/monthlyInfoCollection/components | 2 | 499 | 14 | 85 | 598 |
+| src/pages/monthlyInfoSearch | 16 | 2,190 | 309 | 418 | 2,917 |
+| src/pages/monthlyInfoSearch/empCostDataImport | 3 | 323 | 49 | 69 | 441 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport | 4 | 547 | 72 | 101 | 720 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport | 3 | 420 | 79 | 77 | 576 |
+| src/pages/monthlyInfoSearch/patientInfoImport | 3 | 435 | 68 | 74 | 577 |
+| src/pages/monthlyInfoSearch/wholeHospIncomeAndCost | 3 | 465 | 41 | 97 | 603 |
+| src/pages/noAccess | 2 | 63 | 9 | 8 | 80 |
+| src/pages/reportExport | 4 | 479 | 69 | 159 | 707 |
+| src/pages/reportExport/report | 4 | 479 | 69 | 159 | 707 |
+| src/pages/setting | 6 | 773 | 48 | 154 | 975 |
+| src/pages/setting/fenyeTemplate | 3 | 388 | 25 | 77 | 490 |
+| src/pages/setting/qualitativeOptionsMana | 3 | 385 | 23 | 77 | 485 |
+| src/pages/specialDataImport | 3 | 287 | 21 | 70 | 378 |
+| src/pages/static | 3 | 180 | 24 | 65 | 269 |
+| src/services | 5 | 190 | 53 | 56 | 299 |
+| src/services (Files) | 2 | 64 | 24 | 37 | 125 |
+| src/services/demo | 3 | 126 | 29 | 19 | 174 |
+| src/utils | 8 | 533 | 131 | 175 | 839 |
+
+Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

+ 373 - 0
.VSCodeCounter/2024-08-30_09-54-22/results.txt

@@ -0,0 +1,373 @@
+Date : 2024-08-30 09:54:22
+Directory : /Users/dema/work/CostAccountingSys
+Total : 244 files,  42131 codes, 2729 comments, 8303 blanks, all 53163 lines
+
+Languages
++--------------------+------------+------------+------------+------------+------------+
+| language           | files      | code       | comment    | blank      | total      |
++--------------------+------------+------------+------------+------------+------------+
+| TypeScript JSX     |         92 |     22,780 |      1,576 |      3,993 |     28,349 |
+| Log                |          1 |      8,469 |          0 |      1,293 |      9,762 |
+| Less               |         63 |      5,743 |        103 |      1,001 |      6,847 |
+| TypeScript         |         69 |      4,716 |        892 |      1,833 |      7,441 |
+| JavaScript         |         13 |        340 |        158 |        176 |        674 |
+| JSON               |          2 |         55 |          0 |          2 |         57 |
+| HTML               |          1 |         20 |          0 |          1 |         21 |
+| JSON with Comments |          1 |          3 |          0 |          1 |          4 |
+| Ignore             |          1 |          3 |          0 |          1 |          4 |
+| Markdown           |          1 |          2 |          0 |          2 |          4 |
++--------------------+------------+------------+------------+------------+------------+
+
+Directories
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| path                                                                                                                                  | files      | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| .                                                                                                                                     |        244 |     42,131 |      2,729 |      8,303 |     53,163 |
+| . (Files)                                                                                                                             |         10 |      8,925 |         22 |      1,318 |     10,265 |
+| config                                                                                                                                |          1 |          0 |          8 |          4 |         12 |
+| mock                                                                                                                                  |          5 |        412 |         32 |        138 |        582 |
+| src                                                                                                                                   |        228 |     32,794 |      2,667 |      6,843 |     42,304 |
+| src (Files)                                                                                                                           |          7 |      1,153 |        188 |        318 |      1,659 |
+| src/components                                                                                                                        |         22 |      1,334 |        175 |        318 |      1,827 |
+| src/components/Guide                                                                                                                  |          3 |         25 |          1 |          6 |         32 |
+| src/components/KCIMDrawerForm                                                                                                         |          2 |         23 |          9 |         11 |         43 |
+| src/components/KCIMLeftList                                                                                                           |          2 |        279 |         69 |         71 |        419 |
+| src/components/KCIMModalForm                                                                                                          |          1 |         23 |          8 |         11 |         42 |
+| src/components/KCIMPageContainer                                                                                                      |          2 |        194 |          8 |         37 |        239 |
+| src/components/KCIMTable                                                                                                              |          2 |        219 |         19 |         65 |        303 |
+| src/components/KCIMTableSelector                                                                                                      |          2 |        173 |         10 |         44 |        227 |
+| src/components/KCIMUpload                                                                                                             |          2 |         82 |          9 |         19 |        110 |
+| src/components/ProgressModal                                                                                                          |          2 |         91 |         16 |         20 |        127 |
+| src/components/ResizableContainer                                                                                                     |          2 |         72 |          8 |         17 |         97 |
+| src/components/SQLEditor                                                                                                              |          2 |        153 |         18 |         17 |        188 |
+| src/constants                                                                                                                         |          1 |          1 |          0 |          1 |          2 |
+| src/models                                                                                                                            |          1 |         10 |          1 |          3 |         14 |
+| src/pages                                                                                                                             |        184 |     29,573 |      2,119 |      5,972 |     37,664 |
+| src/pages (Files)                                                                                                                     |          1 |         15 |          8 |          3 |         26 |
+| src/pages/Home                                                                                                                        |          3 |        122 |         28 |         38 |        188 |
+| src/pages/baseInfoMana                                                                                                                |         13 |      1,536 |        116 |        375 |      2,027 |
+| src/pages/baseInfoMana/checkGroupMana                                                                                                 |          4 |        389 |         32 |        102 |        523 |
+| src/pages/baseInfoMana/empMana                                                                                                        |          5 |        692 |         53 |        148 |        893 |
+| src/pages/baseInfoMana/unitMana                                                                                                       |          4 |        455 |         31 |        125 |        611 |
+| src/pages/baseSetting                                                                                                                 |         62 |      9,050 |        726 |      2,023 |     11,799 |
+| src/pages/baseSetting/accountingAccountSet                                                                                            |         13 |      1,866 |        111 |        426 |      2,403 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana                                                                          |          3 |        474 |         26 |         90 |        590 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap                                                                           |          3 |        295 |         25 |         72 |        392 |
+| src/pages/baseSetting/accountingAccountSet/chargeItemMap                                                                              |          4 |        774 |         35 |        181 |        990 |
+| src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana                                                                      |          3 |        323 |         25 |         83 |        431 |
+| src/pages/baseSetting/costAllocationSet                                                                                               |         22 |      3,087 |        309 |        698 |      4,094 |
+| src/pages/baseSetting/costAllocationSet/allocationLevelSet                                                                            |          3 |        327 |         23 |         80 |        430 |
+| src/pages/baseSetting/costAllocationSet/allocationParamsMap                                                                           |          5 |        802 |         62 |        196 |      1,060 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal                                                                      |          3 |        482 |         85 |         92 |        659 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet                                                                       |          4 |        566 |         31 |        129 |        726 |
+| src/pages/baseSetting/costAllocationSet/idleCostSetting                                                                               |          3 |        391 |         81 |         93 |        565 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet                                                                          |          4 |        519 |         27 |        108 |        654 |
+| src/pages/baseSetting/otherItemSet                                                                                                    |         20 |      3,161 |        257 |        713 |      4,131 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc                                                                                 |          4 |        904 |         77 |        226 |      1,207 |
+| src/pages/baseSetting/otherItemSet/diySqlMana                                                                                         |          3 |        462 |         61 |        114 |        637 |
+| src/pages/baseSetting/otherItemSet/reportItemSet                                                                                      |          4 |        865 |         50 |        153 |      1,068 |
+| src/pages/baseSetting/otherItemSet/reportProjectSetting                                                                               |          3 |        384 |         23 |         73 |        480 |
+| src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting                                                                         |          3 |        317 |         25 |         80 |        422 |
+| src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet                                                                          |          3 |        229 |         21 |         67 |        317 |
+| src/pages/baseSetting/responsibilityCenterSet                                                                                         |          7 |        936 |         49 |        186 |      1,171 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter                                                                    |          3 |        560 |         27 |        107 |        694 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect                                                             |          4 |        376 |         22 |         79 |        477 |
+| src/pages/costAccounting                                                                                                              |          5 |      2,385 |         94 |        208 |      2,687 |
+| src/pages/costAccounting/calcPageTemplate                                                                                             |          5 |      2,385 |         94 |        208 |      2,687 |
+| src/pages/costLibraryManagement                                                                                                       |         57 |     11,049 |        606 |      2,191 |     13,846 |
+| src/pages/costLibraryManagement/basicCostManagement                                                                                   |         16 |      2,619 |        175 |        547 |      3,341 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement                                                                |          3 |        417 |         31 |         87 |        535 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement                                                           |          3 |        408 |         30 |         85 |        523 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement                                                            |          3 |        440 |         34 |         87 |        561 |
+| src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana                                                       |          4 |        923 |         50 |        204 |      1,177 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement                                                               |          3 |        431 |         30 |         84 |        545 |
+| src/pages/costLibraryManagement/diseaseCostManagement                                                                                 |          6 |        722 |         52 |        168 |        942 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison                                                      |          3 |        392 |         23 |         85 |        500 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana                                                                     |          3 |        330 |         29 |         83 |        442 |
+| src/pages/costLibraryManagement/medicalOrderProject                                                                                   |          4 |        939 |         37 |        194 |      1,170 |
+| src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana                                                           |          4 |        939 |         37 |        194 |      1,170 |
+| src/pages/costLibraryManagement/projectCostManagement                                                                                 |         19 |      4,646 |        230 |        819 |      5,695 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana                                                                 |          7 |      2,426 |        112 |        371 |      2,909 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana (Files)                                                         |          3 |        842 |         69 |        149 |      1,060 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components                                                      |          4 |      1,584 |         43 |        222 |      1,849 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet                                                             |          5 |        793 |         43 |        191 |      1,027 |
+| src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet                                                           |          3 |        350 |         25 |         85 |        460 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana                                                             |          4 |      1,077 |         50 |        172 |      1,299 |
+| src/pages/costLibraryManagement/reportMana                                                                                            |         12 |      2,123 |        112 |        463 |      2,698 |
+| src/pages/costLibraryManagement/reportMana/reportColumnMana                                                                           |          5 |        830 |         45 |        164 |      1,039 |
+| src/pages/costLibraryManagement/reportMana/reportListMana                                                                             |          4 |        901 |         43 |        211 |      1,155 |
+| src/pages/costLibraryManagement/reportMana/reportNavSet                                                                               |          3 |        392 |         24 |         88 |        504 |
+| src/pages/incomeCollectionAction                                                                                                      |          3 |        501 |         13 |         78 |        592 |
+| src/pages/monthlyInfoCollection                                                                                                       |          6 |        943 |         48 |        182 |      1,173 |
+| src/pages/monthlyInfoCollection (Files)                                                                                               |          4 |        444 |         34 |         97 |        575 |
+| src/pages/monthlyInfoCollection/components                                                                                            |          2 |        499 |         14 |         85 |        598 |
+| src/pages/monthlyInfoSearch                                                                                                           |         16 |      2,190 |        309 |        418 |      2,917 |
+| src/pages/monthlyInfoSearch/empCostDataImport                                                                                         |          3 |        323 |         49 |         69 |        441 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport                                                                                      |          4 |        547 |         72 |        101 |        720 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport                                                                                  |          3 |        420 |         79 |         77 |        576 |
+| src/pages/monthlyInfoSearch/patientInfoImport                                                                                         |          3 |        435 |         68 |         74 |        577 |
+| src/pages/monthlyInfoSearch/wholeHospIncomeAndCost                                                                                    |          3 |        465 |         41 |         97 |        603 |
+| src/pages/noAccess                                                                                                                    |          2 |         63 |          9 |          8 |         80 |
+| src/pages/reportExport                                                                                                                |          4 |        479 |         69 |        159 |        707 |
+| src/pages/reportExport/report                                                                                                         |          4 |        479 |         69 |        159 |        707 |
+| src/pages/setting                                                                                                                     |          6 |        773 |         48 |        154 |        975 |
+| src/pages/setting/fenyeTemplate                                                                                                       |          3 |        388 |         25 |         77 |        490 |
+| src/pages/setting/qualitativeOptionsMana                                                                                              |          3 |        385 |         23 |         77 |        485 |
+| src/pages/specialDataImport                                                                                                           |          3 |        287 |         21 |         70 |        378 |
+| src/pages/static                                                                                                                      |          3 |        180 |         24 |         65 |        269 |
+| src/services                                                                                                                          |          5 |        190 |         53 |         56 |        299 |
+| src/services (Files)                                                                                                                  |          2 |         64 |         24 |         37 |        125 |
+| src/services/demo                                                                                                                     |          3 |        126 |         29 |         19 |        174 |
+| src/utils                                                                                                                             |          8 |        533 |        131 |        175 |        839 |
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+
+Files
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
+| filename                                                                                                                              | language           | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
+| /Users/dema/work/CostAccountingSys/.eslintrc.js                                                                                       | JavaScript         |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.prettierignore                                                                                    | Ignore             |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.prettierrc                                                                                        | JSON               |          8 |          0 |          1 |          9 |
+| /Users/dema/work/CostAccountingSys/.stylelintrc.js                                                                                    | JavaScript         |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.umirc.ts                                                                                          | TypeScript         |        379 |         14 |         15 |        408 |
+| /Users/dema/work/CostAccountingSys/README.md                                                                                          | Markdown           |          2 |          0 |          2 |          4 |
+| /Users/dema/work/CostAccountingSys/config/proxy.ts                                                                                    | TypeScript         |          0 |          8 |          4 |         12 |
+| /Users/dema/work/CostAccountingSys/mock/home.ts                                                                                       | TypeScript         |         47 |          8 |          5 |         60 |
+| /Users/dema/work/CostAccountingSys/mock/monthlyData.ts                                                                                | TypeScript         |        156 |          8 |         78 |        242 |
+| /Users/dema/work/CostAccountingSys/mock/monthlyInfo.ts                                                                                | TypeScript         |        147 |          8 |         50 |        205 |
+| /Users/dema/work/CostAccountingSys/mock/monthlySet.ts                                                                                 | TypeScript         |         43 |          8 |          3 |         54 |
+| /Users/dema/work/CostAccountingSys/mock/userAPI.ts                                                                                    | TypeScript         |         19 |          0 |          2 |         21 |
+| /Users/dema/work/CostAccountingSys/package.json                                                                                       | JSON               |         47 |          0 |          1 |         48 |
+| /Users/dema/work/CostAccountingSys/src/access.ts                                                                                      | TypeScript         |         45 |         12 |         22 |         79 |
+| /Users/dema/work/CostAccountingSys/src/app.tsx                                                                                        | TypeScript JSX     |        395 |         71 |        117 |        583 |
+| /Users/dema/work/CostAccountingSys/src/authWrapper.tsx                                                                                | TypeScript JSX     |         46 |         12 |          7 |         65 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/Guide.less                                                                    | Less               |          4 |          0 |          1 |          5 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/Guide.tsx                                                                     | TypeScript JSX     |         19 |          1 |          4 |         24 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/index.ts                                                                      | TypeScript         |          2 |          0 |          1 |          3 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/index.tsx                                                            | TypeScript JSX     |          6 |          9 |          8 |         23 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/style.less                                                           | Less               |         17 |          0 |          3 |         20 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx                                                              | TypeScript JSX     |        169 |         61 |         51 |        281 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/style.less                                                             | Less               |        110 |          8 |         20 |        138 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMModalForm/index.tsx                                                             | TypeScript JSX     |         23 |          8 |         11 |         42 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/index.tsx                                                         | TypeScript JSX     |         75 |          8 |         18 |        101 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/style.less                                                        | Less               |        119 |          0 |         19 |        138 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTable/index.tsx                                                                 | TypeScript JSX     |         40 |         11 |         15 |         66 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTable/style.less                                                                | Less               |        179 |          8 |         50 |        237 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/index.tsx                                                         | TypeScript JSX     |        144 |         10 |         40 |        194 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/style.less                                                        | Less               |         29 |          0 |          4 |         33 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMUpload/index.tsx                                                                | TypeScript JSX     |         56 |          9 |         14 |         79 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMUpload/style.less                                                               | Less               |         26 |          0 |          5 |         31 |
+| /Users/dema/work/CostAccountingSys/src/components/ProgressModal/index.tsx                                                             | TypeScript JSX     |         74 |          8 |         11 |         93 |
+| /Users/dema/work/CostAccountingSys/src/components/ProgressModal/service.ts                                                            | TypeScript         |         17 |          8 |          9 |         34 |
+| /Users/dema/work/CostAccountingSys/src/components/ResizableContainer/index.tsx                                                        | TypeScript JSX     |         54 |          8 |         10 |         72 |
+| /Users/dema/work/CostAccountingSys/src/components/ResizableContainer/style.less                                                       | Less               |         18 |          0 |          7 |         25 |
+| /Users/dema/work/CostAccountingSys/src/components/SQLEditor/index.tsx                                                                 | TypeScript JSX     |        108 |         10 |         15 |        133 |
+| /Users/dema/work/CostAccountingSys/src/components/SQLEditor/style.less                                                                | Less               |         45 |          8 |          2 |         55 |
+| /Users/dema/work/CostAccountingSys/src/constant.ts                                                                                    | TypeScript         |         10 |          8 |          2 |         20 |
+| /Users/dema/work/CostAccountingSys/src/constants/index.ts                                                                             | TypeScript         |          1 |          0 |          1 |          2 |
+| /Users/dema/work/CostAccountingSys/src/global.less                                                                                    | Less               |        603 |         51 |        161 |        815 |
+| /Users/dema/work/CostAccountingSys/src/menuIcons.js                                                                                   | JavaScript         |         33 |         24 |          6 |         63 |
+| /Users/dema/work/CostAccountingSys/src/models/global.ts                                                                               | TypeScript         |         10 |          1 |          3 |         14 |
+| /Users/dema/work/CostAccountingSys/src/pages/404.tsx                                                                                  | TypeScript JSX     |         15 |          8 |          3 |         26 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/index.tsx                                                                           | TypeScript JSX     |         17 |          9 |          7 |         33 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/service.ts                                                                          | TypeScript         |         28 |         11 |         22 |         61 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/style.less                                                                          | Less               |         77 |          8 |          9 |         94 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/index.tsx                                                    | TypeScript JSX     |        207 |         13 |         42 |        262 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/service.ts                                                   | TypeScript         |         60 |         13 |         24 |         97 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/style.less                                                   | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx                                            | TypeScript JSX     |         85 |          6 |         29 |        120 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/index.tsx                                                           | TypeScript JSX     |        257 |         15 |         48 |        320 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/service.ts                                                          | TypeScript         |         69 |         14 |         24 |        107 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/style.less                                                          | Less               |         66 |          0 |         15 |         81 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/tableSelector.tsx                                                   | TypeScript JSX     |        203 |          5 |         42 |        250 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/transform.tsx                                                       | TypeScript JSX     |         97 |         19 |         19 |        135 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/index.tsx                                                          | TypeScript JSX     |        207 |         13 |         51 |        271 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/service.ts                                                         | TypeScript         |         30 |         12 |         21 |         63 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/style.less                                                         | Less               |         66 |          0 |         13 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/tableSelector.tsx                                                  | TypeScript JSX     |        152 |          6 |         40 |        198 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx                             | TypeScript JSX     |        402 |          9 |         53 |        464 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts                            | TypeScript         |         39 |         13 |         31 |         83 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less                            | Less               |         33 |          4 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx                              | TypeScript JSX     |        239 |         14 |         41 |        294 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts                             | TypeScript         |         19 |         11 |         25 |         55 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less                             | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx                                 | TypeScript JSX     |        359 |         14 |         79 |        452 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts                                | TypeScript         |         39 |         14 |         24 |         77 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less                                | Less               |        224 |          1 |         35 |        260 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx                         | TypeScript JSX     |        152 |          6 |         43 |        201 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx                         | TypeScript JSX     |        236 |         12 |         45 |        293 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts                        | TypeScript         |         38 |         13 |         30 |         81 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less                        | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx                               | TypeScript JSX     |        255 |         11 |         45 |        311 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts                              | TypeScript         |         35 |         12 |         29 |         76 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less                              | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx                     | TypeScript JSX     |        161 |          5 |         34 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx                              | TypeScript JSX     |        359 |         31 |         57 |        447 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts                             | TypeScript         |         70 |         19 |         47 |        136 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less                             | Less               |         78 |          0 |         13 |         91 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx                      | TypeScript JSX     |        134 |          7 |         45 |        186 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx                         | TypeScript JSX     |        379 |         70 |         52 |        501 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts                        | TypeScript         |         47 |         14 |         32 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less                        | Less               |         56 |          1 |          8 |         65 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx                          | TypeScript JSX     |        258 |          9 |         46 |        313 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts                         | TypeScript         |         44 |         13 |         31 |         88 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less                         | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx                      | TypeScript JSX     |        227 |          9 |         46 |        282 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx                                  | TypeScript JSX     |        297 |         66 |         54 |        417 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts                                 | TypeScript         |         57 |         15 |         33 |        105 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less                                 | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx                             | TypeScript JSX     |        316 |          9 |         45 |        370 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts                            | TypeScript         |         47 |         14 |         32 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less                            | Less               |         31 |          0 |          4 |         35 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx                         | TypeScript JSX     |        125 |          4 |         27 |        156 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx                                    | TypeScript JSX     |        474 |         44 |        120 |        638 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts                                   | TypeScript         |         74 |         18 |         39 |        131 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less                                   | Less               |        121 |          0 |         15 |        136 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx                                | TypeScript JSX     |        235 |         15 |         52 |        302 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx                                            | TypeScript JSX     |        317 |         47 |         67 |        431 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts                                           | TypeScript         |         64 |         13 |         33 |        110 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/style.less                                           | Less               |         81 |          1 |         14 |         96 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx                                         | TypeScript JSX     |        531 |         18 |         61 |        610 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts                                        | TypeScript         |         56 |         15 |         33 |        104 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less                                        | Less               |         44 |          0 |          7 |         51 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx                                     | TypeScript JSX     |        234 |         17 |         52 |        303 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx                                  | TypeScript JSX     |        277 |         10 |         30 |        317 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js                                 | JavaScript         |         30 |         13 |         27 |         70 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less                                 | Less               |         77 |          0 |         16 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx                            | TypeScript JSX     |        244 |         13 |         45 |        302 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts                           | TypeScript         |         36 |         12 |         29 |         77 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less                           | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx                             | TypeScript JSX     |        166 |          9 |         34 |        209 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts                            | TypeScript         |         33 |         12 |         29 |         74 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less                            | Less               |         30 |          0 |          4 |         34 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx                       | TypeScript JSX     |        463 |         12 |         64 |        539 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts                      | TypeScript         |         48 |         15 |         35 |         98 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less                      | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx                | TypeScript JSX     |        187 |          8 |         41 |        236 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts               | TypeScript         |         19 |         11 |          9 |         39 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less               | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx            | TypeScript JSX     |        121 |          3 |         21 |        145 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx                                              | TypeScript JSX     |        944 |         48 |         38 |      1,030 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/config.ts                                                | TypeScript         |        375 |          8 |         26 |        409 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx                                                | TypeScript JSX     |        687 |         16 |         94 |        797 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/service.ts                                               | TypeScript         |        340 |         22 |         40 |        402 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less                                               | Less               |         39 |          0 |         10 |         49 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx                   | TypeScript JSX     |        303 |         17 |         48 |        368 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts                  | TypeScript         |         65 |         14 |         32 |        111 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less                  | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx              | TypeScript JSX     |        299 |         17 |         48 |        364 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts             | TypeScript         |         60 |         13 |         30 |        103 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less             | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx               | TypeScript JSX     |        331 |         21 |         50 |        402 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts              | TypeScript         |         60 |         13 |         30 |        103 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less              | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx          | TypeScript JSX     |        481 |         22 |         88 |        591 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts         | TypeScript         |         85 |         22 |         42 |        149 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less         | Less               |        223 |          0 |         31 |        254 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx  | TypeScript JSX     |        134 |          6 |         43 |        183 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx                  | TypeScript JSX     |        328 |         17 |         47 |        392 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts                 | TypeScript         |         54 |         13 |         30 |         97 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less                 | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx         | TypeScript JSX     |        287 |          9 |         46 |        342 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts        | TypeScript         |         56 |         14 |         31 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less        | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx                        | TypeScript JSX     |        225 |         16 |         45 |        286 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts                       | TypeScript         |         56 |         13 |         30 |         99 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less                       | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx              | TypeScript JSX     |        495 |         11 |         81 |        587 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts             | TypeScript         |         83 |         20 |         40 |        143 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less             | Less               |        209 |          0 |         30 |        239 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx      | TypeScript JSX     |        152 |          6 |         43 |        201 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx         | TypeScript JSX     |        455 |         14 |         56 |        525 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx       | TypeScript JSX     |        535 |         15 |         56 |        606 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less        | Less               |        449 |          7 |         66 |        522 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx | TypeScript JSX     |        145 |          7 |         44 |        196 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx                    | TypeScript JSX     |        491 |         28 |         62 |        581 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts                   | TypeScript         |        198 |         41 |         62 |        301 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less                   | Less               |        153 |          0 |         25 |        178 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx       | TypeScript JSX     |        139 |          5 |         32 |        176 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx                | TypeScript JSX     |        367 |         11 |         50 |        428 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts               | TypeScript         |         75 |         20 |         51 |        146 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less               | Less               |         78 |          0 |         13 |         91 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx        | TypeScript JSX     |        134 |          7 |         45 |        186 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx              | TypeScript JSX     |        250 |         11 |         47 |        308 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts             | TypeScript         |         51 |         14 |         31 |         96 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less             | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx               | TypeScript JSX     |        388 |         12 |         49 |        449 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx                | TypeScript JSX     |        364 |         16 |         49 |        429 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts               | TypeScript         |        113 |         21 |         49 |        183 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less               | Less               |        212 |          1 |         25 |        238 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx                       | TypeScript JSX     |        329 |          9 |         45 |        383 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx                              | TypeScript JSX     |        227 |         13 |         49 |        289 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts                             | TypeScript         |        100 |         16 |         38 |        154 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less                             | Less               |         64 |          3 |         13 |         80 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx                          | TypeScript JSX     |        110 |          4 |         19 |        133 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx                                | TypeScript JSX     |        460 |         19 |         99 |        578 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts                               | TypeScript         |         64 |         18 |         36 |        118 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/style.less                               | Less               |        223 |          0 |         33 |        256 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx                        | TypeScript JSX     |        154 |          6 |         43 |        203 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx                                  | TypeScript JSX     |        298 |         12 |         50 |        360 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts                                 | TypeScript         |         57 |         12 |         31 |        100 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less                                 | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx                                                         | TypeScript JSX     |        305 |         11 |         38 |        354 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/service.ts                                                        | TypeScript         |         13 |          2 |          9 |         24 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/style.less                                                        | Less               |        183 |          0 |         31 |        214 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx                               | TypeScript JSX     |        346 |         14 |         58 |        418 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/style.less                                              | Less               |        153 |          0 |         27 |        180 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx                                                          | TypeScript JSX     |        176 |         13 |         22 |        211 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/service.ts                                                         | TypeScript         |         66 |         19 |         33 |        118 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/style.less                                                         | Less               |         49 |          0 |          4 |         53 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/tableSelector.tsx                                                  | TypeScript JSX     |        153 |          2 |         38 |        193 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx                                            | TypeScript JSX     |        200 |         36 |         25 |        261 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/service.js                                           | JavaScript         |         39 |         13 |         27 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/style.less                                           | Less               |         84 |          0 |         17 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx                                         | TypeScript JSX     |        391 |         56 |         55 |        502 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js                                        | JavaScript         |         62 |         16 |         29 |        107 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less                                        | Less               |         74 |          0 |         16 |         90 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html                                         | HTML               |         20 |          0 |          1 |         21 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx                                     | TypeScript JSX     |        284 |         64 |         32 |        380 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js                                    | JavaScript         |         45 |         14 |         28 |         87 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less                                    | Less               |         91 |          1 |         17 |        109 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx                                            | TypeScript JSX     |        312 |         54 |         31 |        397 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/service.js                                           | JavaScript         |         39 |         13 |         27 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/style.less                                           | Less               |         84 |          1 |         16 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx                                       | TypeScript JSX     |        260 |         29 |         41 |        330 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts                                      | TypeScript         |         43 |         12 |         29 |         84 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less                                      | Less               |        162 |          0 |         27 |        189 |
+| /Users/dema/work/CostAccountingSys/src/pages/noAccess/index.tsx                                                                       | TypeScript JSX     |         18 |          9 |          4 |         31 |
+| /Users/dema/work/CostAccountingSys/src/pages/noAccess/style.less                                                                      | Less               |         45 |          0 |          4 |         49 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx                                              | TypeScript JSX     |         42 |          8 |         11 |         61 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx                                                            | TypeScript JSX     |        336 |         52 |        120 |        508 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/service.ts                                                           | TypeScript         |         21 |          9 |         19 |         49 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/style.less                                                           | Less               |         80 |          0 |          9 |         89 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/index.tsx                                                          | TypeScript JSX     |        304 |         13 |         47 |        364 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/service.ts                                                         | TypeScript         |         47 |         12 |         23 |         82 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/style.less                                                         | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/index.tsx                                                 | TypeScript JSX     |        286 |          9 |         46 |        341 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/service.ts                                                | TypeScript         |         62 |         14 |         24 |        100 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/style.less                                                | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx                                                              | TypeScript JSX     |        204 |          9 |         37 |        250 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/service.ts                                                             | TypeScript         |         33 |         12 |         26 |         71 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/style.less                                                             | Less               |         50 |          0 |          7 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/index.tsx                                                                         | TypeScript JSX     |         54 |         10 |         21 |         85 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/service.js                                                                        | JavaScript         |         45 |         14 |         28 |         87 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/style.less                                                                        | Less               |         81 |          0 |         16 |         97 |
+| /Users/dema/work/CostAccountingSys/src/services/auth.ts                                                                               | TypeScript         |         26 |         12 |         11 |         49 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/UserController.ts                                                                | TypeScript         |         74 |         17 |          6 |         97 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/index.ts                                                                         | TypeScript         |          4 |          2 |          2 |          8 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/typings.d.ts                                                                     | TypeScript         |         48 |         10 |         11 |         69 |
+| /Users/dema/work/CostAccountingSys/src/services/getDic.ts                                                                             | TypeScript         |         38 |         12 |         26 |         76 |
+| /Users/dema/work/CostAccountingSys/src/typings.d.ts                                                                                   | TypeScript         |         21 |         10 |          3 |         34 |
+| /Users/dema/work/CostAccountingSys/src/utils/devicePixelRatio.js                                                                      | JavaScript         |         38 |         27 |          2 |         67 |
+| /Users/dema/work/CostAccountingSys/src/utils/format.ts                                                                                | TypeScript         |          9 |         10 |          2 |         21 |
+| /Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts                                                                          | TypeScript         |         42 |         21 |         23 |         86 |
+| /Users/dema/work/CostAccountingSys/src/utils/tableToMultiHeaderExcel.ts                                                               | TypeScript         |        221 |         10 |         51 |        282 |
+| /Users/dema/work/CostAccountingSys/src/utils/tooljs.ts                                                                                | TypeScript         |        220 |         39 |         97 |        356 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiA.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiB.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiC.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/tsconfig.json                                                                                      | JSON with Comments |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/typings.d.ts                                                                                       | TypeScript         |          8 |          8 |          2 |         18 |
+| /Users/dema/work/CostAccountingSys/yarn-error.log                                                                                     | Log                |      8,469 |          0 |      1,293 |      9,762 |
+| Total                                                                                                                                 |                    |     42,131 |      2,729 |      8,303 |     53,163 |
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+

+ 265 - 0
.VSCodeCounter/2024-11-05_10-42-46/details.md

@@ -0,0 +1,265 @@
+# Details
+
+Date : 2024-11-05 10:42:46
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 250 files,  44380 codes, 2971 comments, 8813 blanks, all 56164 lines
+
+[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
+
+## Files
+| filename | language | code | comment | blank | total |
+| :--- | :--- | ---: | ---: | ---: | ---: |
+| [.eslintrc.js](/.eslintrc.js) | JavaScript | 3 | 0 | 1 | 4 |
+| [.prettierignore](/.prettierignore) | Ignore | 3 | 0 | 1 | 4 |
+| [.prettierrc](/.prettierrc) | JSON | 8 | 0 | 1 | 9 |
+| [.stylelintrc.js](/.stylelintrc.js) | JavaScript | 3 | 0 | 1 | 4 |
+| [.umirc.ts](/.umirc.ts) | TypeScript | 389 | 14 | 15 | 418 |
+| [README.md](/README.md) | Markdown | 2 | 0 | 2 | 4 |
+| [config/proxy.ts](/config/proxy.ts) | TypeScript | 0 | 8 | 4 | 12 |
+| [mock/home.ts](/mock/home.ts) | TypeScript | 47 | 8 | 5 | 60 |
+| [mock/monthlyData.ts](/mock/monthlyData.ts) | TypeScript | 156 | 8 | 78 | 242 |
+| [mock/monthlyInfo.ts](/mock/monthlyInfo.ts) | TypeScript | 147 | 8 | 50 | 205 |
+| [mock/monthlySet.ts](/mock/monthlySet.ts) | TypeScript | 43 | 8 | 3 | 54 |
+| [mock/userAPI.ts](/mock/userAPI.ts) | TypeScript | 19 | 0 | 2 | 21 |
+| [package.json](/package.json) | JSON | 47 | 0 | 1 | 48 |
+| [src/access.ts](/src/access.ts) | TypeScript | 45 | 12 | 22 | 79 |
+| [src/app.tsx](/src/app.tsx) | TypeScript JSX | 419 | 64 | 119 | 602 |
+| [src/authWrapper.tsx](/src/authWrapper.tsx) | TypeScript JSX | 46 | 12 | 7 | 65 |
+| [src/components/Guide/Guide.less](/src/components/Guide/Guide.less) | Less | 4 | 0 | 1 | 5 |
+| [src/components/Guide/Guide.tsx](/src/components/Guide/Guide.tsx) | TypeScript JSX | 19 | 1 | 4 | 24 |
+| [src/components/Guide/index.ts](/src/components/Guide/index.ts) | TypeScript | 2 | 0 | 1 | 3 |
+| [src/components/KCIMDrawerForm/index.tsx](/src/components/KCIMDrawerForm/index.tsx) | TypeScript JSX | 6 | 9 | 8 | 23 |
+| [src/components/KCIMDrawerForm/style.less](/src/components/KCIMDrawerForm/style.less) | Less | 17 | 0 | 3 | 20 |
+| [src/components/KCIMLeftList/index.tsx](/src/components/KCIMLeftList/index.tsx) | TypeScript JSX | 168 | 61 | 51 | 280 |
+| [src/components/KCIMLeftList/style.less](/src/components/KCIMLeftList/style.less) | Less | 110 | 8 | 20 | 138 |
+| [src/components/KCIMModalForm/index.tsx](/src/components/KCIMModalForm/index.tsx) | TypeScript JSX | 23 | 8 | 11 | 42 |
+| [src/components/KCIMPageContainer/index.tsx](/src/components/KCIMPageContainer/index.tsx) | TypeScript JSX | 75 | 8 | 18 | 101 |
+| [src/components/KCIMPageContainer/style.less](/src/components/KCIMPageContainer/style.less) | Less | 119 | 0 | 19 | 138 |
+| [src/components/KCIMTable/index.tsx](/src/components/KCIMTable/index.tsx) | TypeScript JSX | 40 | 11 | 15 | 66 |
+| [src/components/KCIMTable/style.less](/src/components/KCIMTable/style.less) | Less | 179 | 8 | 50 | 237 |
+| [src/components/KCIMTableSelector/index.tsx](/src/components/KCIMTableSelector/index.tsx) | TypeScript JSX | 144 | 10 | 40 | 194 |
+| [src/components/KCIMTableSelector/style.less](/src/components/KCIMTableSelector/style.less) | Less | 29 | 0 | 4 | 33 |
+| [src/components/KCIMUpload/index.tsx](/src/components/KCIMUpload/index.tsx) | TypeScript JSX | 56 | 9 | 14 | 79 |
+| [src/components/KCIMUpload/style.less](/src/components/KCIMUpload/style.less) | Less | 26 | 0 | 5 | 31 |
+| [src/components/ProgressModal/index.tsx](/src/components/ProgressModal/index.tsx) | TypeScript JSX | 74 | 8 | 11 | 93 |
+| [src/components/ProgressModal/service.ts](/src/components/ProgressModal/service.ts) | TypeScript | 17 | 8 | 9 | 34 |
+| [src/components/ResizableContainer/index.tsx](/src/components/ResizableContainer/index.tsx) | TypeScript JSX | 54 | 8 | 10 | 72 |
+| [src/components/ResizableContainer/style.less](/src/components/ResizableContainer/style.less) | Less | 18 | 0 | 7 | 25 |
+| [src/components/SQLEditor/index.tsx](/src/components/SQLEditor/index.tsx) | TypeScript JSX | 108 | 10 | 15 | 133 |
+| [src/components/SQLEditor/style.less](/src/components/SQLEditor/style.less) | Less | 45 | 8 | 2 | 55 |
+| [src/constant.ts](/src/constant.ts) | TypeScript | 10 | 8 | 2 | 20 |
+| [src/constants/index.ts](/src/constants/index.ts) | TypeScript | 1 | 0 | 1 | 2 |
+| [src/global.less](/src/global.less) | Less | 610 | 52 | 163 | 825 |
+| [src/menuIcons.js](/src/menuIcons.js) | JavaScript | 33 | 24 | 6 | 63 |
+| [src/models/global.ts](/src/models/global.ts) | TypeScript | 10 | 1 | 3 | 14 |
+| [src/pages/404.tsx](/src/pages/404.tsx) | TypeScript JSX | 15 | 8 | 3 | 26 |
+| [src/pages/Home/index.tsx](/src/pages/Home/index.tsx) | TypeScript JSX | 17 | 9 | 7 | 33 |
+| [src/pages/Home/service.ts](/src/pages/Home/service.ts) | TypeScript | 28 | 11 | 22 | 61 |
+| [src/pages/Home/style.less](/src/pages/Home/style.less) | Less | 77 | 8 | 9 | 94 |
+| [src/pages/baseInfoMana/checkGroupMana/index.tsx](/src/pages/baseInfoMana/checkGroupMana/index.tsx) | TypeScript JSX | 207 | 13 | 42 | 262 |
+| [src/pages/baseInfoMana/checkGroupMana/service.ts](/src/pages/baseInfoMana/checkGroupMana/service.ts) | TypeScript | 60 | 13 | 24 | 97 |
+| [src/pages/baseInfoMana/checkGroupMana/style.less](/src/pages/baseInfoMana/checkGroupMana/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx](/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx) | TypeScript JSX | 85 | 6 | 29 | 120 |
+| [src/pages/baseInfoMana/empMana/index.tsx](/src/pages/baseInfoMana/empMana/index.tsx) | TypeScript JSX | 257 | 15 | 48 | 320 |
+| [src/pages/baseInfoMana/empMana/service.ts](/src/pages/baseInfoMana/empMana/service.ts) | TypeScript | 69 | 14 | 24 | 107 |
+| [src/pages/baseInfoMana/empMana/style.less](/src/pages/baseInfoMana/empMana/style.less) | Less | 66 | 0 | 15 | 81 |
+| [src/pages/baseInfoMana/empMana/tableSelector.tsx](/src/pages/baseInfoMana/empMana/tableSelector.tsx) | TypeScript JSX | 203 | 5 | 42 | 250 |
+| [src/pages/baseInfoMana/empMana/transform.tsx](/src/pages/baseInfoMana/empMana/transform.tsx) | TypeScript JSX | 97 | 19 | 19 | 135 |
+| [src/pages/baseInfoMana/unitMana/index.tsx](/src/pages/baseInfoMana/unitMana/index.tsx) | TypeScript JSX | 207 | 13 | 51 | 271 |
+| [src/pages/baseInfoMana/unitMana/service.ts](/src/pages/baseInfoMana/unitMana/service.ts) | TypeScript | 30 | 12 | 21 | 63 |
+| [src/pages/baseInfoMana/unitMana/style.less](/src/pages/baseInfoMana/unitMana/style.less) | Less | 66 | 0 | 13 | 79 |
+| [src/pages/baseInfoMana/unitMana/tableSelector.tsx](/src/pages/baseInfoMana/unitMana/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 40 | 198 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx) | TypeScript JSX | 413 | 11 | 58 | 482 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts) | TypeScript | 39 | 13 | 31 | 83 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less) | Less | 33 | 4 | 6 | 43 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx) | TypeScript JSX | 250 | 16 | 45 | 311 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts) | TypeScript | 19 | 11 | 25 | 55 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx) | TypeScript JSX | 359 | 14 | 79 | 452 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts) | TypeScript | 39 | 14 | 24 | 77 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less) | Less | 224 | 1 | 35 | 260 |
+| [src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx](/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 43 | 201 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx) | TypeScript JSX | 236 | 12 | 45 | 293 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts) | TypeScript | 38 | 13 | 30 | 81 |
+| [src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less](/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx) | TypeScript JSX | 255 | 11 | 45 | 311 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts) | TypeScript | 35 | 12 | 29 | 76 |
+| [src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less](/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx) | TypeScript JSX | 161 | 5 | 34 | 200 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx) | TypeScript JSX | 359 | 31 | 57 | 447 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts) | TypeScript | 70 | 19 | 47 | 136 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less) | Less | 78 | 0 | 13 | 91 |
+| [src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx](/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx) | TypeScript JSX | 134 | 7 | 45 | 186 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx) | TypeScript JSX | 380 | 9 | 53 | 442 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts) | TypeScript | 47 | 14 | 32 | 93 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less) | Less | 56 | 1 | 8 | 65 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx) | TypeScript JSX | 273 | 10 | 48 | 331 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts) | TypeScript | 44 | 13 | 31 | 88 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx) | TypeScript JSX | 227 | 9 | 46 | 282 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx](/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx) | TypeScript JSX | 297 | 66 | 54 | 417 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts](/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts) | TypeScript | 57 | 15 | 33 | 105 |
+| [src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less](/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx) | TypeScript JSX | 318 | 9 | 45 | 372 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts) | TypeScript | 47 | 14 | 32 | 93 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less) | Less | 31 | 0 | 4 | 35 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx) | TypeScript JSX | 125 | 4 | 27 | 156 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx) | TypeScript JSX | 627 | 58 | 136 | 821 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts](/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts) | TypeScript | 74 | 18 | 39 | 131 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less](/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less) | Less | 151 | 0 | 17 | 168 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx) | TypeScript JSX | 234 | 15 | 53 | 302 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx](/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx) | TypeScript JSX | 317 | 47 | 67 | 431 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/service.ts](/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts) | TypeScript | 64 | 13 | 33 | 110 |
+| [src/pages/baseSetting/otherItemSet/diySqlMana/style.less](/src/pages/baseSetting/otherItemSet/diySqlMana/style.less) | Less | 81 | 1 | 14 | 96 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx](/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx) | TypeScript JSX | 517 | 31 | 62 | 610 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/service.ts](/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts) | TypeScript | 56 | 15 | 33 | 104 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/style.less](/src/pages/baseSetting/otherItemSet/reportItemSet/style.less) | Less | 58 | 0 | 10 | 68 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx](/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx) | TypeScript JSX | 234 | 17 | 52 | 303 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx](/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx) | TypeScript JSX | 277 | 10 | 30 | 317 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js](/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js) | JavaScript | 30 | 13 | 27 | 70 |
+| [src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less](/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less) | Less | 77 | 0 | 16 | 93 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx) | TypeScript JSX | 244 | 13 | 45 | 302 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts) | TypeScript | 36 | 12 | 29 | 77 |
+| [src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less](/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less) | Less | 37 | 0 | 6 | 43 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx) | TypeScript JSX | 166 | 9 | 34 | 209 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts) | TypeScript | 33 | 12 | 29 | 74 |
+| [src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less](/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less) | Less | 30 | 0 | 4 | 34 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx) | TypeScript JSX | 484 | 20 | 63 | 567 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts) | TypeScript | 48 | 15 | 35 | 98 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx) | TypeScript JSX | 187 | 8 | 41 | 236 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts) | TypeScript | 19 | 11 | 9 | 39 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx) | TypeScript JSX | 121 | 3 | 21 | 145 |
+| [src/pages/costAccounting/calcPageTemplate/columns.tsx](/src/pages/costAccounting/calcPageTemplate/columns.tsx) | TypeScript JSX | 963 | 68 | 38 | 1,069 |
+| [src/pages/costAccounting/calcPageTemplate/config.ts](/src/pages/costAccounting/calcPageTemplate/config.ts) | TypeScript | 375 | 8 | 26 | 409 |
+| [src/pages/costAccounting/calcPageTemplate/index.tsx](/src/pages/costAccounting/calcPageTemplate/index.tsx) | TypeScript JSX | 790 | 28 | 125 | 943 |
+| [src/pages/costAccounting/calcPageTemplate/service.ts](/src/pages/costAccounting/calcPageTemplate/service.ts) | TypeScript | 340 | 22 | 40 | 402 |
+| [src/pages/costAccounting/calcPageTemplate/style.less](/src/pages/costAccounting/calcPageTemplate/style.less) | Less | 81 | 0 | 12 | 93 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx) | TypeScript JSX | 305 | 17 | 48 | 370 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts) | TypeScript | 65 | 14 | 32 | 111 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx) | TypeScript JSX | 302 | 17 | 48 | 367 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts) | TypeScript | 60 | 13 | 30 | 103 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx) | TypeScript JSX | 333 | 21 | 50 | 404 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts) | TypeScript | 60 | 13 | 30 | 103 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx) | TypeScript JSX | 481 | 22 | 88 | 591 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts) | TypeScript | 85 | 22 | 42 | 149 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less) | Less | 223 | 0 | 31 | 254 |
+| [src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx](/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx) | TypeScript JSX | 134 | 6 | 43 | 183 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx) | TypeScript JSX | 332 | 17 | 47 | 396 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts) | TypeScript | 54 | 13 | 30 | 97 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx) | TypeScript JSX | 287 | 9 | 46 | 342 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts) | TypeScript | 56 | 14 | 31 | 101 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx) | TypeScript JSX | 225 | 16 | 45 | 286 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts) | TypeScript | 56 | 13 | 30 | 99 |
+| [src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less](/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less) | Less | 49 | 0 | 8 | 57 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx) | TypeScript JSX | 495 | 11 | 81 | 587 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts) | TypeScript | 83 | 20 | 40 | 143 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less) | Less | 209 | 0 | 30 | 239 |
+| [src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx](/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx) | TypeScript JSX | 152 | 6 | 43 | 201 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx) | TypeScript JSX | 455 | 14 | 56 | 525 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx) | TypeScript JSX | 535 | 15 | 56 | 606 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less) | Less | 449 | 7 | 66 | 522 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx) | TypeScript JSX | 145 | 7 | 44 | 196 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx) | TypeScript JSX | 492 | 28 | 62 | 582 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts) | TypeScript | 198 | 41 | 62 | 301 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less) | Less | 153 | 0 | 25 | 178 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx) | TypeScript JSX | 138 | 5 | 32 | 175 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx) | TypeScript JSX | 367 | 11 | 50 | 428 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts) | TypeScript | 75 | 20 | 51 | 146 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less) | Less | 78 | 0 | 13 | 91 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx) | TypeScript JSX | 133 | 7 | 45 | 185 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx) | TypeScript JSX | 250 | 11 | 47 | 308 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts) | TypeScript | 51 | 14 | 31 | 96 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less](/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less) | Less | 49 | 0 | 7 | 56 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx) | TypeScript JSX | 391 | 12 | 49 | 452 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx) | TypeScript JSX | 364 | 16 | 49 | 429 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts) | TypeScript | 113 | 21 | 49 | 183 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less) | Less | 212 | 1 | 25 | 238 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx) | TypeScript JSX | 329 | 9 | 45 | 383 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx) | TypeScript JSX | 227 | 13 | 49 | 289 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts](/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts) | TypeScript | 100 | 16 | 38 | 154 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less](/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less) | Less | 64 | 3 | 13 | 80 |
+| [src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx](/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx) | TypeScript JSX | 110 | 4 | 19 | 133 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx](/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx) | TypeScript JSX | 460 | 46 | 99 | 605 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/service.ts](/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts) | TypeScript | 64 | 18 | 36 | 118 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/style.less](/src/pages/costLibraryManagement/reportMana/reportListMana/style.less) | Less | 223 | 0 | 33 | 256 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx](/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx) | TypeScript JSX | 154 | 6 | 43 | 203 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx](/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx) | TypeScript JSX | 298 | 12 | 50 | 360 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts](/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts) | TypeScript | 57 | 12 | 31 | 100 |
+| [src/pages/costLibraryManagement/reportMana/reportNavSet/style.less](/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/departmentCostCheck/index.tsx](/src/pages/departmentCostCheck/index.tsx) | TypeScript JSX | 638 | 73 | 135 | 846 |
+| [src/pages/departmentCostCheck/service.ts](/src/pages/departmentCostCheck/service.ts) | TypeScript | 80 | 19 | 41 | 140 |
+| [src/pages/departmentCostCheck/style.less](/src/pages/departmentCostCheck/style.less) | Less | 174 | 0 | 26 | 200 |
+| [src/pages/departmentMenzhuCostCalc/index.tsx](/src/pages/departmentMenzhuCostCalc/index.tsx) | TypeScript JSX | 650 | 239 | 167 | 1,056 |
+| [src/pages/departmentMenzhuCostCalc/service.ts](/src/pages/departmentMenzhuCostCalc/service.ts) | TypeScript | 20 | 11 | 27 | 58 |
+| [src/pages/departmentMenzhuCostCalc/style.less](/src/pages/departmentMenzhuCostCalc/style.less) | Less | 174 | 0 | 26 | 200 |
+| [src/pages/incomeCollectionAction/index.tsx](/src/pages/incomeCollectionAction/index.tsx) | TypeScript JSX | 310 | 11 | 40 | 361 |
+| [src/pages/incomeCollectionAction/service.ts](/src/pages/incomeCollectionAction/service.ts) | TypeScript | 13 | 2 | 9 | 24 |
+| [src/pages/incomeCollectionAction/style.less](/src/pages/incomeCollectionAction/style.less) | Less | 183 | 0 | 31 | 214 |
+| [src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx](/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx) | TypeScript JSX | 346 | 14 | 58 | 418 |
+| [src/pages/monthlyInfoCollection/components/style.less](/src/pages/monthlyInfoCollection/components/style.less) | Less | 153 | 0 | 27 | 180 |
+| [src/pages/monthlyInfoCollection/index.tsx](/src/pages/monthlyInfoCollection/index.tsx) | TypeScript JSX | 177 | 13 | 22 | 212 |
+| [src/pages/monthlyInfoCollection/service.ts](/src/pages/monthlyInfoCollection/service.ts) | TypeScript | 66 | 19 | 33 | 118 |
+| [src/pages/monthlyInfoCollection/style.less](/src/pages/monthlyInfoCollection/style.less) | Less | 49 | 0 | 4 | 53 |
+| [src/pages/monthlyInfoCollection/tableSelector.tsx](/src/pages/monthlyInfoCollection/tableSelector.tsx) | TypeScript JSX | 153 | 2 | 38 | 193 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx) | TypeScript JSX | 204 | 15 | 26 | 245 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/service.js](/src/pages/monthlyInfoSearch/empCostDataImport/service.js) | JavaScript | 39 | 13 | 27 | 79 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/style.less](/src/pages/monthlyInfoSearch/empCostDataImport/style.less) | Less | 84 | 0 | 17 | 101 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx) | TypeScript JSX | 391 | 35 | 56 | 482 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/service.js](/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js) | JavaScript | 62 | 16 | 29 | 107 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/style.less](/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less) | Less | 74 | 0 | 16 | 90 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/test.html](/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html) | HTML | 20 | 0 | 1 | 21 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx](/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx) | TypeScript JSX | 288 | 16 | 31 | 335 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js](/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js) | JavaScript | 45 | 14 | 28 | 87 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less](/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less) | Less | 91 | 1 | 17 | 109 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/index.tsx](/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx) | TypeScript JSX | 312 | 9 | 32 | 353 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/service.js](/src/pages/monthlyInfoSearch/patientInfoImport/service.js) | JavaScript | 39 | 13 | 27 | 79 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/style.less](/src/pages/monthlyInfoSearch/patientInfoImport/style.less) | Less | 84 | 1 | 16 | 101 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx) | TypeScript JSX | 260 | 29 | 41 | 330 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts) | TypeScript | 43 | 12 | 29 | 84 |
+| [src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less](/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less) | Less | 162 | 0 | 27 | 189 |
+| [src/pages/noAccess/index.tsx](/src/pages/noAccess/index.tsx) | TypeScript JSX | 18 | 9 | 4 | 31 |
+| [src/pages/noAccess/style.less](/src/pages/noAccess/style.less) | Less | 45 | 0 | 4 | 49 |
+| [src/pages/reportExport/report/ExportProgressModal.tsx](/src/pages/reportExport/report/ExportProgressModal.tsx) | TypeScript JSX | 41 | 8 | 11 | 60 |
+| [src/pages/reportExport/report/index.tsx](/src/pages/reportExport/report/index.tsx) | TypeScript JSX | 338 | 51 | 122 | 511 |
+| [src/pages/reportExport/report/service.ts](/src/pages/reportExport/report/service.ts) | TypeScript | 21 | 9 | 19 | 49 |
+| [src/pages/reportExport/report/style.less](/src/pages/reportExport/report/style.less) | Less | 80 | 0 | 9 | 89 |
+| [src/pages/setting/fenyeTemplate/index.tsx](/src/pages/setting/fenyeTemplate/index.tsx) | TypeScript JSX | 304 | 13 | 47 | 364 |
+| [src/pages/setting/fenyeTemplate/service.ts](/src/pages/setting/fenyeTemplate/service.ts) | TypeScript | 47 | 12 | 23 | 82 |
+| [src/pages/setting/fenyeTemplate/style.less](/src/pages/setting/fenyeTemplate/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/setting/qualitativeOptionsMana/index.tsx](/src/pages/setting/qualitativeOptionsMana/index.tsx) | TypeScript JSX | 286 | 9 | 46 | 341 |
+| [src/pages/setting/qualitativeOptionsMana/service.ts](/src/pages/setting/qualitativeOptionsMana/service.ts) | TypeScript | 62 | 14 | 24 | 100 |
+| [src/pages/setting/qualitativeOptionsMana/style.less](/src/pages/setting/qualitativeOptionsMana/style.less) | Less | 37 | 0 | 7 | 44 |
+| [src/pages/specialDataImport/index.tsx](/src/pages/specialDataImport/index.tsx) | TypeScript JSX | 205 | 9 | 37 | 251 |
+| [src/pages/specialDataImport/service.ts](/src/pages/specialDataImport/service.ts) | TypeScript | 33 | 12 | 26 | 71 |
+| [src/pages/specialDataImport/style.less](/src/pages/specialDataImport/style.less) | Less | 50 | 0 | 7 | 57 |
+| [src/pages/static/index.tsx](/src/pages/static/index.tsx) | TypeScript JSX | 59 | 12 | 26 | 97 |
+| [src/pages/static/service.js](/src/pages/static/service.js) | JavaScript | 45 | 14 | 28 | 87 |
+| [src/pages/static/style.less](/src/pages/static/style.less) | Less | 81 | 0 | 16 | 97 |
+| [src/services/auth.ts](/src/services/auth.ts) | TypeScript | 31 | 13 | 12 | 56 |
+| [src/services/demo/UserController.ts](/src/services/demo/UserController.ts) | TypeScript | 74 | 17 | 6 | 97 |
+| [src/services/demo/index.ts](/src/services/demo/index.ts) | TypeScript | 4 | 2 | 2 | 8 |
+| [src/services/demo/typings.d.ts](/src/services/demo/typings.d.ts) | TypeScript | 48 | 10 | 11 | 69 |
+| [src/services/getDic.ts](/src/services/getDic.ts) | TypeScript | 38 | 12 | 26 | 76 |
+| [src/typings.d.ts](/src/typings.d.ts) | TypeScript | 21 | 10 | 3 | 34 |
+| [src/utils/devicePixelRatio.js](/src/utils/devicePixelRatio.js) | JavaScript | 38 | 27 | 2 | 67 |
+| [src/utils/format.ts](/src/utils/format.ts) | TypeScript | 22 | 10 | 5 | 37 |
+| [src/utils/tableToExcel.ts](/src/utils/tableToExcel.ts) | TypeScript | 56 | 22 | 25 | 103 |
+| [src/utils/tableToMultiHeaderExcel.ts](/src/utils/tableToMultiHeaderExcel.ts) | TypeScript | 221 | 10 | 51 | 282 |
+| [src/utils/tooljs.ts](/src/utils/tooljs.ts) | TypeScript | 220 | 39 | 97 | 356 |
+| [src/utils/zhongtaiA.js](/src/utils/zhongtaiA.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [src/utils/zhongtaiB.js](/src/utils/zhongtaiB.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [src/utils/zhongtaiC.js](/src/utils/zhongtaiC.js) | JavaScript | 1 | 8 | 0 | 9 |
+| [tsconfig.json](/tsconfig.json) | JSON with Comments | 3 | 0 | 1 | 4 |
+| [typings.d.ts](/typings.d.ts) | TypeScript | 8 | 8 | 2 | 18 |
+| [yarn-error.log](/yarn-error.log) | Log | 8,469 | 0 | 1,293 | 9,762 |
+
+[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

+ 61 - 0
.VSCodeCounter/2024-11-05_10-42-46/diff-details.md

@@ -0,0 +1,61 @@
+# Diff Details
+
+Date : 2024-11-05 10:42:46
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 46 files,  2249 codes, 242 comments, 510 blanks, all 3001 lines
+
+[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
+
+## Files
+| filename | language | code | comment | blank | total |
+| :--- | :--- | ---: | ---: | ---: | ---: |
+| [.umirc.ts](/.umirc.ts) | TypeScript | 10 | 0 | 0 | 10 |
+| [src/app.tsx](/src/app.tsx) | TypeScript JSX | 24 | -7 | 2 | 19 |
+| [src/components/KCIMLeftList/index.tsx](/src/components/KCIMLeftList/index.tsx) | TypeScript JSX | -1 | 0 | 0 | -1 |
+| [src/global.less](/src/global.less) | Less | 7 | 1 | 2 | 10 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx) | TypeScript JSX | 11 | 2 | 5 | 18 |
+| [src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx](/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx) | TypeScript JSX | 11 | 2 | 4 | 17 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx) | TypeScript JSX | 1 | -61 | 1 | -59 |
+| [src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx](/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx) | TypeScript JSX | 15 | 1 | 2 | 18 |
+| [src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx](/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx) | TypeScript JSX | 2 | 0 | 0 | 2 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx) | TypeScript JSX | 153 | 14 | 16 | 183 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less](/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less) | Less | 30 | 0 | 2 | 32 |
+| [src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx](/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx) | TypeScript JSX | -1 | 0 | 1 | 0 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx](/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx) | TypeScript JSX | -14 | 13 | 1 | 0 |
+| [src/pages/baseSetting/otherItemSet/reportItemSet/style.less](/src/pages/baseSetting/otherItemSet/reportItemSet/style.less) | Less | 14 | 0 | 3 | 17 |
+| [src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx](/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx) | TypeScript JSX | 21 | 8 | -1 | 28 |
+| [src/pages/costAccounting/calcPageTemplate/columns.tsx](/src/pages/costAccounting/calcPageTemplate/columns.tsx) | TypeScript JSX | 19 | 20 | 0 | 39 |
+| [src/pages/costAccounting/calcPageTemplate/index.tsx](/src/pages/costAccounting/calcPageTemplate/index.tsx) | TypeScript JSX | 103 | 12 | 31 | 146 |
+| [src/pages/costAccounting/calcPageTemplate/style.less](/src/pages/costAccounting/calcPageTemplate/style.less) | Less | 42 | 0 | 2 | 44 |
+| [src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx) | TypeScript JSX | 2 | 0 | 0 | 2 |
+| [src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx) | TypeScript JSX | 3 | 0 | 0 | 3 |
+| [src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx) | TypeScript JSX | 2 | 0 | 0 | 2 |
+| [src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx](/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx) | TypeScript JSX | 4 | 0 | 0 | 4 |
+| [src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx](/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx) | TypeScript JSX | 1 | 0 | 0 | 1 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx) | TypeScript JSX | -1 | 0 | 0 | -1 |
+| [src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx](/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx) | TypeScript JSX | -1 | 0 | 0 | -1 |
+| [src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx](/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx) | TypeScript JSX | 3 | 0 | 0 | 3 |
+| [src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx](/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx) | TypeScript JSX | 0 | 27 | 0 | 27 |
+| [src/pages/departmentCostCheck/index.tsx](/src/pages/departmentCostCheck/index.tsx) | TypeScript JSX | 638 | 73 | 135 | 846 |
+| [src/pages/departmentCostCheck/service.ts](/src/pages/departmentCostCheck/service.ts) | TypeScript | 80 | 19 | 41 | 140 |
+| [src/pages/departmentCostCheck/style.less](/src/pages/departmentCostCheck/style.less) | Less | 174 | 0 | 26 | 200 |
+| [src/pages/departmentMenzhuCostCalc/index.tsx](/src/pages/departmentMenzhuCostCalc/index.tsx) | TypeScript JSX | 650 | 239 | 167 | 1,056 |
+| [src/pages/departmentMenzhuCostCalc/service.ts](/src/pages/departmentMenzhuCostCalc/service.ts) | TypeScript | 20 | 11 | 27 | 58 |
+| [src/pages/departmentMenzhuCostCalc/style.less](/src/pages/departmentMenzhuCostCalc/style.less) | Less | 174 | 0 | 26 | 200 |
+| [src/pages/incomeCollectionAction/index.tsx](/src/pages/incomeCollectionAction/index.tsx) | TypeScript JSX | 5 | 0 | 2 | 7 |
+| [src/pages/monthlyInfoCollection/index.tsx](/src/pages/monthlyInfoCollection/index.tsx) | TypeScript JSX | 1 | 0 | 0 | 1 |
+| [src/pages/monthlyInfoSearch/empCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx) | TypeScript JSX | 4 | -21 | 1 | -16 |
+| [src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx](/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx) | TypeScript JSX | 0 | -21 | 1 | -20 |
+| [src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx](/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx) | TypeScript JSX | 4 | -48 | -1 | -45 |
+| [src/pages/monthlyInfoSearch/patientInfoImport/index.tsx](/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx) | TypeScript JSX | 0 | -45 | 1 | -44 |
+| [src/pages/reportExport/report/ExportProgressModal.tsx](/src/pages/reportExport/report/ExportProgressModal.tsx) | TypeScript JSX | -1 | 0 | 0 | -1 |
+| [src/pages/reportExport/report/index.tsx](/src/pages/reportExport/report/index.tsx) | TypeScript JSX | 2 | -1 | 2 | 3 |
+| [src/pages/specialDataImport/index.tsx](/src/pages/specialDataImport/index.tsx) | TypeScript JSX | 1 | 0 | 0 | 1 |
+| [src/pages/static/index.tsx](/src/pages/static/index.tsx) | TypeScript JSX | 5 | 2 | 5 | 12 |
+| [src/services/auth.ts](/src/services/auth.ts) | TypeScript | 5 | 1 | 1 | 7 |
+| [src/utils/format.ts](/src/utils/format.ts) | TypeScript | 13 | 0 | 3 | 16 |
+| [src/utils/tableToExcel.ts](/src/utils/tableToExcel.ts) | TypeScript | 14 | 1 | 2 | 17 |
+
+[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details

+ 48 - 0
.VSCodeCounter/2024-11-05_10-42-46/diff.csv

@@ -0,0 +1,48 @@
+"filename", "language", "TypeScript", "TypeScript JSX", "Less", "comment", "blank", "total"
+"/Users/dema/work/CostAccountingSys/.umirc.ts", "TypeScript", 10, 0, 0, 0, 0, 10
+"/Users/dema/work/CostAccountingSys/src/app.tsx", "TypeScript JSX", 0, 24, 0, -7, 2, 19
+"/Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx", "TypeScript JSX", 0, -1, 0, 0, 0, -1
+"/Users/dema/work/CostAccountingSys/src/global.less", "Less", 0, 0, 7, 1, 2, 10
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx", "TypeScript JSX", 0, 11, 0, 2, 5, 18
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx", "TypeScript JSX", 0, 11, 0, 2, 4, 17
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx", "TypeScript JSX", 0, 1, 0, -61, 1, -59
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx", "TypeScript JSX", 0, 15, 0, 1, 2, 18
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx", "TypeScript JSX", 0, 2, 0, 0, 0, 2
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx", "TypeScript JSX", 0, 153, 0, 14, 16, 183
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less", "Less", 0, 0, 30, 0, 2, 32
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx", "TypeScript JSX", 0, -1, 0, 0, 1, 0
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx", "TypeScript JSX", 0, -14, 0, 13, 1, 0
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less", "Less", 0, 0, 14, 0, 3, 17
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx", "TypeScript JSX", 0, 21, 0, 8, -1, 28
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx", "TypeScript JSX", 0, 19, 0, 20, 0, 39
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx", "TypeScript JSX", 0, 103, 0, 12, 31, 146
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less", "Less", 0, 0, 42, 0, 2, 44
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx", "TypeScript JSX", 0, 2, 0, 0, 0, 2
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx", "TypeScript JSX", 0, 3, 0, 0, 0, 3
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx", "TypeScript JSX", 0, 2, 0, 0, 0, 2
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx", "TypeScript JSX", 0, 4, 0, 0, 0, 4
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx", "TypeScript JSX", 0, 1, 0, 0, 0, 1
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx", "TypeScript JSX", 0, -1, 0, 0, 0, -1
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx", "TypeScript JSX", 0, -1, 0, 0, 0, -1
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx", "TypeScript JSX", 0, 3, 0, 0, 0, 3
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx", "TypeScript JSX", 0, 0, 0, 27, 0, 27
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/index.tsx", "TypeScript JSX", 0, 638, 0, 73, 135, 846
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/service.ts", "TypeScript", 80, 0, 0, 19, 41, 140
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/style.less", "Less", 0, 0, 174, 0, 26, 200
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/index.tsx", "TypeScript JSX", 0, 650, 0, 239, 167, 1056
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/service.ts", "TypeScript", 20, 0, 0, 11, 27, 58
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/style.less", "Less", 0, 0, 174, 0, 26, 200
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx", "TypeScript JSX", 0, 5, 0, 0, 2, 7
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx", "TypeScript JSX", 0, 1, 0, 0, 0, 1
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx", "TypeScript JSX", 0, 4, 0, -21, 1, -16
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx", "TypeScript JSX", 0, 0, 0, -21, 1, -20
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx", "TypeScript JSX", 0, 4, 0, -48, -1, -45
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx", "TypeScript JSX", 0, 0, 0, -45, 1, -44
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx", "TypeScript JSX", 0, -1, 0, 0, 0, -1
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx", "TypeScript JSX", 0, 2, 0, -1, 2, 3
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx", "TypeScript JSX", 0, 1, 0, 0, 0, 1
+"/Users/dema/work/CostAccountingSys/src/pages/static/index.tsx", "TypeScript JSX", 0, 5, 0, 2, 5, 12
+"/Users/dema/work/CostAccountingSys/src/services/auth.ts", "TypeScript", 5, 0, 0, 1, 1, 7
+"/Users/dema/work/CostAccountingSys/src/utils/format.ts", "TypeScript", 13, 0, 0, 0, 3, 16
+"/Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts", "TypeScript", 14, 0, 0, 1, 2, 17
+"Total", "-", 142, 1666, 441, 242, 510, 3001

+ 71 - 0
.VSCodeCounter/2024-11-05_10-42-46/diff.md

@@ -0,0 +1,71 @@
+# Diff Summary
+
+Date : 2024-11-05 10:42:46
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 46 files,  2249 codes, 242 comments, 510 blanks, all 3001 lines
+
+[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
+
+## Languages
+| language | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| TypeScript JSX | 34 | 1,666 | 209 | 375 | 2,250 |
+| Less | 6 | 441 | 1 | 61 | 503 |
+| TypeScript | 6 | 142 | 32 | 74 | 248 |
+
+## Directories
+| path | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| . | 46 | 2,249 | 242 | 510 | 3,001 |
+| . (Files) | 1 | 10 | 0 | 0 | 10 |
+| src | 45 | 2,239 | 242 | 510 | 2,991 |
+| src (Files) | 2 | 31 | -6 | 4 | 29 |
+| src/components | 1 | -1 | 0 | 0 | -1 |
+| src/components/KCIMLeftList | 1 | -1 | 0 | 0 | -1 |
+| src/pages | 39 | 2,177 | 246 | 500 | 2,923 |
+| src/pages/baseSetting | 11 | 243 | -21 | 34 | 256 |
+| src/pages/baseSetting/accountingAccountSet | 2 | 22 | 4 | 9 | 35 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana | 1 | 11 | 2 | 5 | 18 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap | 1 | 11 | 2 | 4 | 17 |
+| src/pages/baseSetting/costAllocationSet | 3 | 18 | -60 | 3 | -39 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal | 1 | 1 | -61 | 1 | -59 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet | 1 | 15 | 1 | 2 | 18 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet | 1 | 2 | 0 | 0 | 2 |
+| src/pages/baseSetting/otherItemSet | 5 | 182 | 27 | 23 | 232 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc | 3 | 182 | 14 | 19 | 215 |
+| src/pages/baseSetting/otherItemSet/reportItemSet | 2 | 0 | 13 | 4 | 17 |
+| src/pages/baseSetting/responsibilityCenterSet | 1 | 21 | 8 | -1 | 28 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter | 1 | 21 | 8 | -1 | 28 |
+| src/pages/costAccounting | 3 | 164 | 32 | 33 | 229 |
+| src/pages/costAccounting/calcPageTemplate | 3 | 164 | 32 | 33 | 229 |
+| src/pages/costLibraryManagement | 9 | 13 | 27 | 0 | 40 |
+| src/pages/costLibraryManagement/basicCostManagement | 4 | 11 | 0 | 0 | 11 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement | 1 | 2 | 0 | 0 | 2 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement | 1 | 3 | 0 | 0 | 3 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement | 1 | 2 | 0 | 0 | 2 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement | 1 | 4 | 0 | 0 | 4 |
+| src/pages/costLibraryManagement/projectCostManagement | 4 | 2 | 0 | 0 | 2 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana | 1 | 1 | 0 | 0 | 1 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet | 2 | -2 | 0 | 0 | -2 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana | 1 | 3 | 0 | 0 | 3 |
+| src/pages/costLibraryManagement/reportMana | 1 | 0 | 27 | 0 | 27 |
+| src/pages/costLibraryManagement/reportMana/reportListMana | 1 | 0 | 27 | 0 | 27 |
+| src/pages/departmentCostCheck | 3 | 892 | 92 | 202 | 1,186 |
+| src/pages/departmentMenzhuCostCalc | 3 | 844 | 250 | 220 | 1,314 |
+| src/pages/incomeCollectionAction | 1 | 5 | 0 | 2 | 7 |
+| src/pages/monthlyInfoCollection | 1 | 1 | 0 | 0 | 1 |
+| src/pages/monthlyInfoSearch | 4 | 8 | -135 | 2 | -125 |
+| src/pages/monthlyInfoSearch/empCostDataImport | 1 | 4 | -21 | 1 | -16 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport | 1 | 0 | -21 | 1 | -20 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport | 1 | 4 | -48 | -1 | -45 |
+| src/pages/monthlyInfoSearch/patientInfoImport | 1 | 0 | -45 | 1 | -44 |
+| src/pages/reportExport | 2 | 1 | -1 | 2 | 2 |
+| src/pages/reportExport/report | 2 | 1 | -1 | 2 | 2 |
+| src/pages/specialDataImport | 1 | 1 | 0 | 0 | 1 |
+| src/pages/static | 1 | 5 | 2 | 5 | 12 |
+| src/services | 1 | 5 | 1 | 1 | 7 |
+| src/utils | 2 | 27 | 1 | 5 | 33 |
+
+[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)

+ 120 - 0
.VSCodeCounter/2024-11-05_10-42-46/diff.txt

@@ -0,0 +1,120 @@
+Date : 2024-11-05 10:42:46
+Directory : /Users/dema/work/CostAccountingSys
+Total : 46 files,  2249 codes, 242 comments, 510 blanks, all 3001 lines
+
+Languages
++----------------+------------+------------+------------+------------+------------+
+| language       | files      | code       | comment    | blank      | total      |
++----------------+------------+------------+------------+------------+------------+
+| TypeScript JSX |         34 |      1,666 |        209 |        375 |      2,250 |
+| Less           |          6 |        441 |          1 |         61 |        503 |
+| TypeScript     |          6 |        142 |         32 |         74 |        248 |
++----------------+------------+------------+------------+------------+------------+
+
+Directories
++---------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| path                                                                                                                            | files      | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| .                                                                                                                               |         46 |      2,249 |        242 |        510 |      3,001 |
+| . (Files)                                                                                                                       |          1 |         10 |          0 |          0 |         10 |
+| src                                                                                                                             |         45 |      2,239 |        242 |        510 |      2,991 |
+| src (Files)                                                                                                                     |          2 |         31 |         -6 |          4 |         29 |
+| src/components                                                                                                                  |          1 |         -1 |          0 |          0 |         -1 |
+| src/components/KCIMLeftList                                                                                                     |          1 |         -1 |          0 |          0 |         -1 |
+| src/pages                                                                                                                       |         39 |      2,177 |        246 |        500 |      2,923 |
+| src/pages/baseSetting                                                                                                           |         11 |        243 |        -21 |         34 |        256 |
+| src/pages/baseSetting/accountingAccountSet                                                                                      |          2 |         22 |          4 |          9 |         35 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana                                                                    |          1 |         11 |          2 |          5 |         18 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap                                                                     |          1 |         11 |          2 |          4 |         17 |
+| src/pages/baseSetting/costAllocationSet                                                                                         |          3 |         18 |        -60 |          3 |        -39 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal                                                                |          1 |          1 |        -61 |          1 |        -59 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet                                                                 |          1 |         15 |          1 |          2 |         18 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet                                                                    |          1 |          2 |          0 |          0 |          2 |
+| src/pages/baseSetting/otherItemSet                                                                                              |          5 |        182 |         27 |         23 |        232 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc                                                                           |          3 |        182 |         14 |         19 |        215 |
+| src/pages/baseSetting/otherItemSet/reportItemSet                                                                                |          2 |          0 |         13 |          4 |         17 |
+| src/pages/baseSetting/responsibilityCenterSet                                                                                   |          1 |         21 |          8 |         -1 |         28 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter                                                              |          1 |         21 |          8 |         -1 |         28 |
+| src/pages/costAccounting                                                                                                        |          3 |        164 |         32 |         33 |        229 |
+| src/pages/costAccounting/calcPageTemplate                                                                                       |          3 |        164 |         32 |         33 |        229 |
+| src/pages/costLibraryManagement                                                                                                 |          9 |         13 |         27 |          0 |         40 |
+| src/pages/costLibraryManagement/basicCostManagement                                                                             |          4 |         11 |          0 |          0 |         11 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement                                                          |          1 |          2 |          0 |          0 |          2 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement                                                     |          1 |          3 |          0 |          0 |          3 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement                                                      |          1 |          2 |          0 |          0 |          2 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement                                                         |          1 |          4 |          0 |          0 |          4 |
+| src/pages/costLibraryManagement/projectCostManagement                                                                           |          4 |          2 |          0 |          0 |          2 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana                                                           |          1 |          1 |          0 |          0 |          1 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet                                                       |          2 |         -2 |          0 |          0 |         -2 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana                                                       |          1 |          3 |          0 |          0 |          3 |
+| src/pages/costLibraryManagement/reportMana                                                                                      |          1 |          0 |         27 |          0 |         27 |
+| src/pages/costLibraryManagement/reportMana/reportListMana                                                                       |          1 |          0 |         27 |          0 |         27 |
+| src/pages/departmentCostCheck                                                                                                   |          3 |        892 |         92 |        202 |      1,186 |
+| src/pages/departmentMenzhuCostCalc                                                                                              |          3 |        844 |        250 |        220 |      1,314 |
+| src/pages/incomeCollectionAction                                                                                                |          1 |          5 |          0 |          2 |          7 |
+| src/pages/monthlyInfoCollection                                                                                                 |          1 |          1 |          0 |          0 |          1 |
+| src/pages/monthlyInfoSearch                                                                                                     |          4 |          8 |       -135 |          2 |       -125 |
+| src/pages/monthlyInfoSearch/empCostDataImport                                                                                   |          1 |          4 |        -21 |          1 |        -16 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport                                                                                |          1 |          0 |        -21 |          1 |        -20 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport                                                                            |          1 |          4 |        -48 |         -1 |        -45 |
+| src/pages/monthlyInfoSearch/patientInfoImport                                                                                   |          1 |          0 |        -45 |          1 |        -44 |
+| src/pages/reportExport                                                                                                          |          2 |          1 |         -1 |          2 |          2 |
+| src/pages/reportExport/report                                                                                                   |          2 |          1 |         -1 |          2 |          2 |
+| src/pages/specialDataImport                                                                                                     |          1 |          1 |          0 |          0 |          1 |
+| src/pages/static                                                                                                                |          1 |          5 |          2 |          5 |         12 |
+| src/services                                                                                                                    |          1 |          5 |          1 |          1 |          7 |
+| src/utils                                                                                                                       |          2 |         27 |          1 |          5 |         33 |
++---------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+
+Files
++---------------------------------------------------------------------------------------------------------------------------------+----------------+------------+------------+------------+------------+
+| filename                                                                                                                        | language       | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------+----------------+------------+------------+------------+------------+
+| /Users/dema/work/CostAccountingSys/.umirc.ts                                                                                    | TypeScript     |         10 |          0 |          0 |         10 |
+| /Users/dema/work/CostAccountingSys/src/app.tsx                                                                                  | TypeScript JSX |         24 |         -7 |          2 |         19 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx                                                        | TypeScript JSX |         -1 |          0 |          0 |         -1 |
+| /Users/dema/work/CostAccountingSys/src/global.less                                                                              | Less           |          7 |          1 |          2 |         10 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx                       | TypeScript JSX |         11 |          2 |          5 |         18 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx                        | TypeScript JSX |         11 |          2 |          4 |         17 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx                   | TypeScript JSX |          1 |        -61 |          1 |        -59 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx                    | TypeScript JSX |         15 |          1 |          2 |         18 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx                       | TypeScript JSX |          2 |          0 |          0 |          2 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx                              | TypeScript JSX |        153 |         14 |         16 |        183 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less                             | Less           |         30 |          0 |          2 |         32 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx                          | TypeScript JSX |         -1 |          0 |          1 |          0 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx                                   | TypeScript JSX |        -14 |         13 |          1 |          0 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less                                  | Less           |         14 |          0 |          3 |         17 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx                 | TypeScript JSX |         21 |          8 |         -1 |         28 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx                                        | TypeScript JSX |         19 |         20 |          0 |         39 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx                                          | TypeScript JSX |        103 |         12 |         31 |        146 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less                                         | Less           |         42 |          0 |          2 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx             | TypeScript JSX |          2 |          0 |          0 |          2 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx        | TypeScript JSX |          3 |          0 |          0 |          3 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx         | TypeScript JSX |          2 |          0 |          0 |          2 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx            | TypeScript JSX |          4 |          0 |          0 |          4 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx              | TypeScript JSX |          1 |          0 |          0 |          1 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx | TypeScript JSX |         -1 |          0 |          0 |         -1 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx  | TypeScript JSX |         -1 |          0 |          0 |         -1 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx         | TypeScript JSX |          3 |          0 |          0 |          3 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx                          | TypeScript JSX |          0 |         27 |          0 |         27 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/index.tsx                                                      | TypeScript JSX |        638 |         73 |        135 |        846 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/service.ts                                                     | TypeScript     |         80 |         19 |         41 |        140 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/style.less                                                     | Less           |        174 |          0 |         26 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/index.tsx                                                 | TypeScript JSX |        650 |        239 |        167 |      1,056 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/service.ts                                                | TypeScript     |         20 |         11 |         27 |         58 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/style.less                                                | Less           |        174 |          0 |         26 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx                                                   | TypeScript JSX |          5 |          0 |          2 |          7 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx                                                    | TypeScript JSX |          1 |          0 |          0 |          1 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx                                      | TypeScript JSX |          4 |        -21 |          1 |        -16 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx                                   | TypeScript JSX |          0 |        -21 |          1 |        -20 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx                               | TypeScript JSX |          4 |        -48 |         -1 |        -45 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx                                      | TypeScript JSX |          0 |        -45 |          1 |        -44 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx                                        | TypeScript JSX |         -1 |          0 |          0 |         -1 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx                                                      | TypeScript JSX |          2 |         -1 |          2 |          3 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx                                                        | TypeScript JSX |          1 |          0 |          0 |          1 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/index.tsx                                                                   | TypeScript JSX |          5 |          2 |          5 |         12 |
+| /Users/dema/work/CostAccountingSys/src/services/auth.ts                                                                         | TypeScript     |          5 |          1 |          1 |          7 |
+| /Users/dema/work/CostAccountingSys/src/utils/format.ts                                                                          | TypeScript     |         13 |          0 |          3 |         16 |
+| /Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts                                                                    | TypeScript     |         14 |          1 |          2 |         17 |
+| Total                                                                                                                           |                |      2,249 |        242 |        510 |      3,001 |
++---------------------------------------------------------------------------------------------------------------------------------+----------------+------------+------------+------------+------------+

+ 252 - 0
.VSCodeCounter/2024-11-05_10-42-46/results.csv

@@ -0,0 +1,252 @@
+"filename", "language", "TypeScript", "TypeScript JSX", "Less", "JavaScript", "HTML", "JSON with Comments", "JSON", "Markdown", "Ignore", "Log", "comment", "blank", "total"
+"/Users/dema/work/CostAccountingSys/.eslintrc.js", "JavaScript", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.prettierignore", "Ignore", 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.prettierrc", "JSON", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 1, 9
+"/Users/dema/work/CostAccountingSys/.stylelintrc.js", "JavaScript", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/.umirc.ts", "TypeScript", 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15, 418
+"/Users/dema/work/CostAccountingSys/README.md", "Markdown", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4
+"/Users/dema/work/CostAccountingSys/config/proxy.ts", "TypeScript", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 12
+"/Users/dema/work/CostAccountingSys/mock/home.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 5, 60
+"/Users/dema/work/CostAccountingSys/mock/monthlyData.ts", "TypeScript", 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 78, 242
+"/Users/dema/work/CostAccountingSys/mock/monthlyInfo.ts", "TypeScript", 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 50, 205
+"/Users/dema/work/CostAccountingSys/mock/monthlySet.ts", "TypeScript", 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 54
+"/Users/dema/work/CostAccountingSys/mock/userAPI.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21
+"/Users/dema/work/CostAccountingSys/package.json", "JSON", 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 1, 48
+"/Users/dema/work/CostAccountingSys/src/access.ts", "TypeScript", 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 22, 79
+"/Users/dema/work/CostAccountingSys/src/app.tsx", "TypeScript JSX", 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 64, 119, 602
+"/Users/dema/work/CostAccountingSys/src/authWrapper.tsx", "TypeScript JSX", 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 65
+"/Users/dema/work/CostAccountingSys/src/components/Guide/Guide.less", "Less", 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5
+"/Users/dema/work/CostAccountingSys/src/components/Guide/Guide.tsx", "TypeScript JSX", 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 24
+"/Users/dema/work/CostAccountingSys/src/components/Guide/index.ts", "TypeScript", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3
+"/Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/index.tsx", "TypeScript JSX", 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 9, 8, 23
+"/Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/style.less", "Less", 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20
+"/Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx", "TypeScript JSX", 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 61, 51, 280
+"/Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/style.less", "Less", 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 8, 20, 138
+"/Users/dema/work/CostAccountingSys/src/components/KCIMModalForm/index.tsx", "TypeScript JSX", 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 42
+"/Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/index.tsx", "TypeScript JSX", 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 8, 18, 101
+"/Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/style.less", "Less", 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 19, 138
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTable/index.tsx", "TypeScript JSX", 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 11, 15, 66
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTable/style.less", "Less", 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 8, 50, 237
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/index.tsx", "TypeScript JSX", 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 10, 40, 194
+"/Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/style.less", "Less", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 4, 33
+"/Users/dema/work/CostAccountingSys/src/components/KCIMUpload/index.tsx", "TypeScript JSX", 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 9, 14, 79
+"/Users/dema/work/CostAccountingSys/src/components/KCIMUpload/style.less", "Less", 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31
+"/Users/dema/work/CostAccountingSys/src/components/ProgressModal/index.tsx", "TypeScript JSX", 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 93
+"/Users/dema/work/CostAccountingSys/src/components/ProgressModal/service.ts", "TypeScript", 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 34
+"/Users/dema/work/CostAccountingSys/src/components/ResizableContainer/index.tsx", "TypeScript JSX", 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 72
+"/Users/dema/work/CostAccountingSys/src/components/ResizableContainer/style.less", "Less", 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 7, 25
+"/Users/dema/work/CostAccountingSys/src/components/SQLEditor/index.tsx", "TypeScript JSX", 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 133
+"/Users/dema/work/CostAccountingSys/src/components/SQLEditor/style.less", "Less", 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 8, 2, 55
+"/Users/dema/work/CostAccountingSys/src/constant.ts", "TypeScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 20
+"/Users/dema/work/CostAccountingSys/src/constants/index.ts", "TypeScript", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2
+"/Users/dema/work/CostAccountingSys/src/global.less", "Less", 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 52, 163, 825
+"/Users/dema/work/CostAccountingSys/src/menuIcons.js", "JavaScript", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 24, 6, 63
+"/Users/dema/work/CostAccountingSys/src/models/global.ts", "TypeScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 14
+"/Users/dema/work/CostAccountingSys/src/pages/404.tsx", "TypeScript JSX", 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 26
+"/Users/dema/work/CostAccountingSys/src/pages/Home/index.tsx", "TypeScript JSX", 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 33
+"/Users/dema/work/CostAccountingSys/src/pages/Home/service.ts", "TypeScript", 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 22, 61
+"/Users/dema/work/CostAccountingSys/src/pages/Home/style.less", "Less", 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 8, 9, 94
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/index.tsx", "TypeScript JSX", 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 13, 42, 262
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 24, 97
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx", "TypeScript JSX", 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29, 120
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/index.tsx", "TypeScript JSX", 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 15, 48, 320
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/service.ts", "TypeScript", 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 107
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/style.less", "Less", 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 15, 81
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/tableSelector.tsx", "TypeScript JSX", 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 5, 42, 250
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/transform.tsx", "TypeScript JSX", 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 135
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/index.tsx", "TypeScript JSX", 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 13, 51, 271
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/service.ts", "TypeScript", 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 21, 63
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/style.less", "Less", 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 13, 79
+"/Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40, 198
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx", "TypeScript JSX", 0, 413, 0, 0, 0, 0, 0, 0, 0, 0, 11, 58, 482
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts", "TypeScript", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 31, 83
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less", "Less", 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 4, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx", "TypeScript JSX", 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 16, 45, 311
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 25, 55
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx", "TypeScript JSX", 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 14, 79, 452
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts", "TypeScript", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 77
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less", "Less", 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 1, 35, 260
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 201
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx", "TypeScript JSX", 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45, 293
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts", "TypeScript", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 81
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx", "TypeScript JSX", 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 11, 45, 311
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts", "TypeScript", 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 76
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx", "TypeScript JSX", 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34, 200
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx", "TypeScript JSX", 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 31, 57, 447
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts", "TypeScript", 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 47, 136
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less", "Less", 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 13, 91
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx", "TypeScript JSX", 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 7, 45, 186
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx", "TypeScript JSX", 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 9, 53, 442
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less", "Less", 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 1, 8, 65
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx", "TypeScript JSX", 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 10, 48, 331
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts", "TypeScript", 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 31, 88
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx", "TypeScript JSX", 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 282
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx", "TypeScript JSX", 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 66, 54, 417
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts", "TypeScript", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 33, 105
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx", "TypeScript JSX", 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 9, 45, 372
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less", "Less", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 4, 35
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx", "TypeScript JSX", 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 4, 27, 156
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx", "TypeScript JSX", 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 58, 136, 821
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts", "TypeScript", 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 39, 131
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less", "Less", 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 17, 168
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx", "TypeScript JSX", 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 15, 53, 302
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx", "TypeScript JSX", 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 47, 67, 431
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts", "TypeScript", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 33, 110
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/style.less", "Less", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 1, 14, 96
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx", "TypeScript JSX", 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 31, 62, 610
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 33, 104
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less", "Less", 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 10, 68
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx", "TypeScript JSX", 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 17, 52, 303
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx", "TypeScript JSX", 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 317
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js", "JavaScript", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 13, 27, 70
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less", "Less", 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 16, 93
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx", "TypeScript JSX", 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 13, 45, 302
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts", "TypeScript", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 77
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx", "TypeScript JSX", 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 9, 34, 209
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts", "TypeScript", 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 74
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less", "Less", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 4, 34
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx", "TypeScript JSX", 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 20, 63, 567
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts", "TypeScript", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 35, 98
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx", "TypeScript JSX", 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 8, 41, 236
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts", "TypeScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 39
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx", "TypeScript JSX", 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 145
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx", "TypeScript JSX", 0, 963, 0, 0, 0, 0, 0, 0, 0, 0, 68, 38, 1069
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/config.ts", "TypeScript", 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 26, 409
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx", "TypeScript JSX", 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 28, 125, 943
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/service.ts", "TypeScript", 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 40, 402
+"/Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less", "Less", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 12, 93
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx", "TypeScript JSX", 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 17, 48, 370
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts", "TypeScript", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 32, 111
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx", "TypeScript JSX", 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 17, 48, 367
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 103
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx", "TypeScript JSX", 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 21, 50, 404
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts", "TypeScript", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 103
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx", "TypeScript JSX", 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 22, 88, 591
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts", "TypeScript", 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 42, 149
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less", "Less", 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 31, 254
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx", "TypeScript JSX", 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 183
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx", "TypeScript JSX", 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 17, 47, 396
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts", "TypeScript", 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 97
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx", "TypeScript JSX", 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 342
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 101
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx", "TypeScript JSX", 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 16, 45, 286
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 99
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 8, 57
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx", "TypeScript JSX", 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, 11, 81, 587
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts", "TypeScript", 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 40, 143
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less", "Less", 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 30, 239
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx", "TypeScript JSX", 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 201
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx", "TypeScript JSX", 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 14, 56, 525
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx", "TypeScript JSX", 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 15, 56, 606
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less", "Less", 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 7, 66, 522
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx", "TypeScript JSX", 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44, 196
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx", "TypeScript JSX", 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 582
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts", "TypeScript", 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 62, 301
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less", "Less", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 25, 178
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx", "TypeScript JSX", 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 5, 32, 175
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx", "TypeScript JSX", 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 11, 50, 428
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts", "TypeScript", 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 51, 146
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less", "Less", 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 13, 91
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx", "TypeScript JSX", 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 7, 45, 185
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx", "TypeScript JSX", 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 11, 47, 308
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts", "TypeScript", 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 96
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 7, 56
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx", "TypeScript JSX", 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 12, 49, 452
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx", "TypeScript JSX", 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 16, 49, 429
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts", "TypeScript", 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 49, 183
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less", "Less", 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 1, 25, 238
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx", "TypeScript JSX", 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 9, 45, 383
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx", "TypeScript JSX", 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 13, 49, 289
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts", "TypeScript", 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 38, 154
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less", "Less", 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 3, 13, 80
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx", "TypeScript JSX", 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 4, 19, 133
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx", "TypeScript JSX", 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 46, 99, 605
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts", "TypeScript", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 36, 118
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/style.less", "Less", 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 33, 256
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx", "TypeScript JSX", 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 203
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx", "TypeScript JSX", 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 12, 50, 360
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts", "TypeScript", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 31, 100
+"/Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/index.tsx", "TypeScript JSX", 0, 638, 0, 0, 0, 0, 0, 0, 0, 0, 73, 135, 846
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/service.ts", "TypeScript", 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 41, 140
+"/Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/style.less", "Less", 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 26, 200
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/index.tsx", "TypeScript JSX", 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 239, 167, 1056
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/service.ts", "TypeScript", 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27, 58
+"/Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/style.less", "Less", 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 26, 200
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx", "TypeScript JSX", 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 11, 40, 361
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/service.ts", "TypeScript", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 24
+"/Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/style.less", "Less", 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 31, 214
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx", "TypeScript JSX", 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 14, 58, 418
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/style.less", "Less", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 27, 180
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx", "TypeScript JSX", 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 13, 22, 212
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/service.ts", "TypeScript", 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 33, 118
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/style.less", "Less", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 4, 53
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/tableSelector.tsx", "TypeScript JSX", 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 2, 38, 193
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx", "TypeScript JSX", 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 15, 26, 245
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/service.js", "JavaScript", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 13, 27, 79
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/style.less", "Less", 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 17, 101
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx", "TypeScript JSX", 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 35, 56, 482
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js", "JavaScript", 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 16, 29, 107
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less", "Less", 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 16, 90
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html", "HTML", 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 21
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx", "TypeScript JSX", 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 16, 31, 335
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js", "JavaScript", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 14, 28, 87
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less", "Less", 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 1, 17, 109
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx", "TypeScript JSX", 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 9, 32, 353
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/service.js", "JavaScript", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 13, 27, 79
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/style.less", "Less", 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 1, 16, 101
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx", "TypeScript JSX", 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 29, 41, 330
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts", "TypeScript", 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 29, 84
+"/Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less", "Less", 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 27, 189
+"/Users/dema/work/CostAccountingSys/src/pages/noAccess/index.tsx", "TypeScript JSX", 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 31
+"/Users/dema/work/CostAccountingSys/src/pages/noAccess/style.less", "Less", 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 4, 49
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx", "TypeScript JSX", 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 60
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx", "TypeScript JSX", 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 51, 122, 511
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/service.ts", "TypeScript", 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 19, 49
+"/Users/dema/work/CostAccountingSys/src/pages/reportExport/report/style.less", "Less", 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 9, 89
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/index.tsx", "TypeScript JSX", 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 13, 47, 364
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/service.ts", "TypeScript", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 23, 82
+"/Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/index.tsx", "TypeScript JSX", 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 341
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/service.ts", "TypeScript", 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 100
+"/Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/style.less", "Less", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx", "TypeScript JSX", 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 9, 37, 251
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/service.ts", "TypeScript", 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, 71
+"/Users/dema/work/CostAccountingSys/src/pages/specialDataImport/style.less", "Less", 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 7, 57
+"/Users/dema/work/CostAccountingSys/src/pages/static/index.tsx", "TypeScript JSX", 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, 97
+"/Users/dema/work/CostAccountingSys/src/pages/static/service.js", "JavaScript", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 14, 28, 87
+"/Users/dema/work/CostAccountingSys/src/pages/static/style.less", "Less", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 16, 97
+"/Users/dema/work/CostAccountingSys/src/services/auth.ts", "TypeScript", 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 12, 56
+"/Users/dema/work/CostAccountingSys/src/services/demo/UserController.ts", "TypeScript", 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 97
+"/Users/dema/work/CostAccountingSys/src/services/demo/index.ts", "TypeScript", 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 8
+"/Users/dema/work/CostAccountingSys/src/services/demo/typings.d.ts", "TypeScript", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 69
+"/Users/dema/work/CostAccountingSys/src/services/getDic.ts", "TypeScript", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, 76
+"/Users/dema/work/CostAccountingSys/src/typings.d.ts", "TypeScript", 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 34
+"/Users/dema/work/CostAccountingSys/src/utils/devicePixelRatio.js", "JavaScript", 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 27, 2, 67
+"/Users/dema/work/CostAccountingSys/src/utils/format.ts", "TypeScript", 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 37
+"/Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts", "TypeScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 25, 103
+"/Users/dema/work/CostAccountingSys/src/utils/tableToMultiHeaderExcel.ts", "TypeScript", 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 51, 282
+"/Users/dema/work/CostAccountingSys/src/utils/tooljs.ts", "TypeScript", 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 97, 356
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiA.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiB.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/src/utils/zhongtaiC.js", "JavaScript", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 0, 9
+"/Users/dema/work/CostAccountingSys/tsconfig.json", "JSON with Comments", 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 4
+"/Users/dema/work/CostAccountingSys/typings.d.ts", "TypeScript", 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 18
+"/Users/dema/work/CostAccountingSys/yarn-error.log", "Log", 0, 0, 0, 0, 0, 0, 0, 0, 0, 8469, 0, 1293, 9762
+"Total", "-", 4858, 24446, 6184, 340, 20, 3, 55, 2, 3, 8469, 2971, 8813, 56164

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
.VSCodeCounter/2024-11-05_10-42-46/results.json


+ 128 - 0
.VSCodeCounter/2024-11-05_10-42-46/results.md

@@ -0,0 +1,128 @@
+# Summary
+
+Date : 2024-11-05 10:42:46
+
+Directory /Users/dema/work/CostAccountingSys
+
+Total : 250 files,  44380 codes, 2971 comments, 8813 blanks, all 56164 lines
+
+Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
+
+## Languages
+| language | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| TypeScript JSX | 94 | 24,446 | 1,785 | 4,368 | 30,599 |
+| Log | 1 | 8,469 | 0 | 1,293 | 9,762 |
+| Less | 65 | 6,184 | 104 | 1,062 | 7,350 |
+| TypeScript | 71 | 4,858 | 924 | 1,907 | 7,689 |
+| JavaScript | 13 | 340 | 158 | 176 | 674 |
+| JSON | 2 | 55 | 0 | 2 | 57 |
+| HTML | 1 | 20 | 0 | 1 | 21 |
+| JSON with Comments | 1 | 3 | 0 | 1 | 4 |
+| Ignore | 1 | 3 | 0 | 1 | 4 |
+| Markdown | 1 | 2 | 0 | 2 | 4 |
+
+## Directories
+| path | files | code | comment | blank | total |
+| :--- | ---: | ---: | ---: | ---: | ---: |
+| . | 250 | 44,380 | 2,971 | 8,813 | 56,164 |
+| . (Files) | 10 | 8,935 | 22 | 1,318 | 10,275 |
+| config | 1 | 0 | 8 | 4 | 12 |
+| mock | 5 | 412 | 32 | 138 | 582 |
+| src | 234 | 35,033 | 2,909 | 7,353 | 45,295 |
+| src (Files) | 7 | 1,184 | 182 | 322 | 1,688 |
+| src/components | 22 | 1,333 | 175 | 318 | 1,826 |
+| src/components/Guide | 3 | 25 | 1 | 6 | 32 |
+| src/components/KCIMDrawerForm | 2 | 23 | 9 | 11 | 43 |
+| src/components/KCIMLeftList | 2 | 278 | 69 | 71 | 418 |
+| src/components/KCIMModalForm | 1 | 23 | 8 | 11 | 42 |
+| src/components/KCIMPageContainer | 2 | 194 | 8 | 37 | 239 |
+| src/components/KCIMTable | 2 | 219 | 19 | 65 | 303 |
+| src/components/KCIMTableSelector | 2 | 173 | 10 | 44 | 227 |
+| src/components/KCIMUpload | 2 | 82 | 9 | 19 | 110 |
+| src/components/ProgressModal | 2 | 91 | 16 | 20 | 127 |
+| src/components/ResizableContainer | 2 | 72 | 8 | 17 | 97 |
+| src/components/SQLEditor | 2 | 153 | 18 | 17 | 188 |
+| src/constants | 1 | 1 | 0 | 1 | 2 |
+| src/models | 1 | 10 | 1 | 3 | 14 |
+| src/pages | 190 | 31,750 | 2,365 | 6,472 | 40,587 |
+| src/pages (Files) | 1 | 15 | 8 | 3 | 26 |
+| src/pages/Home | 3 | 122 | 28 | 38 | 188 |
+| src/pages/baseInfoMana | 13 | 1,536 | 116 | 375 | 2,027 |
+| src/pages/baseInfoMana/checkGroupMana | 4 | 389 | 32 | 102 | 523 |
+| src/pages/baseInfoMana/empMana | 5 | 692 | 53 | 148 | 893 |
+| src/pages/baseInfoMana/unitMana | 4 | 455 | 31 | 125 | 611 |
+| src/pages/baseSetting | 62 | 9,293 | 705 | 2,057 | 12,055 |
+| src/pages/baseSetting/accountingAccountSet | 13 | 1,888 | 115 | 435 | 2,438 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana | 3 | 485 | 28 | 95 | 608 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap | 3 | 306 | 27 | 76 | 409 |
+| src/pages/baseSetting/accountingAccountSet/chargeItemMap | 4 | 774 | 35 | 181 | 990 |
+| src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana | 3 | 323 | 25 | 83 | 431 |
+| src/pages/baseSetting/costAllocationSet | 22 | 3,105 | 249 | 701 | 4,055 |
+| src/pages/baseSetting/costAllocationSet/allocationLevelSet | 3 | 327 | 23 | 80 | 430 |
+| src/pages/baseSetting/costAllocationSet/allocationParamsMap | 5 | 802 | 62 | 196 | 1,060 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal | 3 | 483 | 24 | 93 | 600 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet | 4 | 581 | 32 | 131 | 744 |
+| src/pages/baseSetting/costAllocationSet/idleCostSetting | 3 | 391 | 81 | 93 | 565 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet | 4 | 521 | 27 | 108 | 656 |
+| src/pages/baseSetting/otherItemSet | 20 | 3,343 | 284 | 736 | 4,363 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc | 4 | 1,086 | 91 | 245 | 1,422 |
+| src/pages/baseSetting/otherItemSet/diySqlMana | 3 | 462 | 61 | 114 | 637 |
+| src/pages/baseSetting/otherItemSet/reportItemSet | 4 | 865 | 63 | 157 | 1,085 |
+| src/pages/baseSetting/otherItemSet/reportProjectSetting | 3 | 384 | 23 | 73 | 480 |
+| src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting | 3 | 317 | 25 | 80 | 422 |
+| src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet | 3 | 229 | 21 | 67 | 317 |
+| src/pages/baseSetting/responsibilityCenterSet | 7 | 957 | 57 | 185 | 1,199 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter | 3 | 581 | 35 | 106 | 722 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect | 4 | 376 | 22 | 79 | 477 |
+| src/pages/costAccounting | 5 | 2,549 | 126 | 241 | 2,916 |
+| src/pages/costAccounting/calcPageTemplate | 5 | 2,549 | 126 | 241 | 2,916 |
+| src/pages/costLibraryManagement | 57 | 11,062 | 633 | 2,191 | 13,886 |
+| src/pages/costLibraryManagement/basicCostManagement | 16 | 2,630 | 175 | 547 | 3,352 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement | 3 | 419 | 31 | 87 | 537 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement | 3 | 411 | 30 | 85 | 526 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement | 3 | 442 | 34 | 87 | 563 |
+| src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana | 4 | 923 | 50 | 204 | 1,177 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement | 3 | 435 | 30 | 84 | 549 |
+| src/pages/costLibraryManagement/diseaseCostManagement | 6 | 722 | 52 | 168 | 942 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison | 3 | 392 | 23 | 85 | 500 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana | 3 | 330 | 29 | 83 | 442 |
+| src/pages/costLibraryManagement/medicalOrderProject | 4 | 939 | 37 | 194 | 1,170 |
+| src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana | 4 | 939 | 37 | 194 | 1,170 |
+| src/pages/costLibraryManagement/projectCostManagement | 19 | 4,648 | 230 | 819 | 5,697 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana | 7 | 2,427 | 112 | 371 | 2,910 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana (Files) | 3 | 843 | 69 | 149 | 1,061 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components | 4 | 1,584 | 43 | 222 | 1,849 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet | 5 | 791 | 43 | 191 | 1,025 |
+| src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet | 3 | 350 | 25 | 85 | 460 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana | 4 | 1,080 | 50 | 172 | 1,302 |
+| src/pages/costLibraryManagement/reportMana | 12 | 2,123 | 139 | 463 | 2,725 |
+| src/pages/costLibraryManagement/reportMana/reportColumnMana | 5 | 830 | 45 | 164 | 1,039 |
+| src/pages/costLibraryManagement/reportMana/reportListMana | 4 | 901 | 70 | 211 | 1,182 |
+| src/pages/costLibraryManagement/reportMana/reportNavSet | 3 | 392 | 24 | 88 | 504 |
+| src/pages/departmentCostCheck | 3 | 892 | 92 | 202 | 1,186 |
+| src/pages/departmentMenzhuCostCalc | 3 | 844 | 250 | 220 | 1,314 |
+| src/pages/incomeCollectionAction | 3 | 506 | 13 | 80 | 599 |
+| src/pages/monthlyInfoCollection | 6 | 944 | 48 | 182 | 1,174 |
+| src/pages/monthlyInfoCollection (Files) | 4 | 445 | 34 | 97 | 576 |
+| src/pages/monthlyInfoCollection/components | 2 | 499 | 14 | 85 | 598 |
+| src/pages/monthlyInfoSearch | 16 | 2,198 | 174 | 420 | 2,792 |
+| src/pages/monthlyInfoSearch/empCostDataImport | 3 | 327 | 28 | 70 | 425 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport | 4 | 547 | 51 | 102 | 700 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport | 3 | 424 | 31 | 76 | 531 |
+| src/pages/monthlyInfoSearch/patientInfoImport | 3 | 435 | 23 | 75 | 533 |
+| src/pages/monthlyInfoSearch/wholeHospIncomeAndCost | 3 | 465 | 41 | 97 | 603 |
+| src/pages/noAccess | 2 | 63 | 9 | 8 | 80 |
+| src/pages/reportExport | 4 | 480 | 68 | 161 | 709 |
+| src/pages/reportExport/report | 4 | 480 | 68 | 161 | 709 |
+| src/pages/setting | 6 | 773 | 48 | 154 | 975 |
+| src/pages/setting/fenyeTemplate | 3 | 388 | 25 | 77 | 490 |
+| src/pages/setting/qualitativeOptionsMana | 3 | 385 | 23 | 77 | 485 |
+| src/pages/specialDataImport | 3 | 288 | 21 | 70 | 379 |
+| src/pages/static | 3 | 185 | 26 | 70 | 281 |
+| src/services | 5 | 195 | 54 | 57 | 306 |
+| src/services (Files) | 2 | 69 | 25 | 38 | 132 |
+| src/services/demo | 3 | 126 | 29 | 19 | 174 |
+| src/utils | 8 | 560 | 132 | 180 | 872 |
+
+Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

+ 381 - 0
.VSCodeCounter/2024-11-05_10-42-46/results.txt

@@ -0,0 +1,381 @@
+Date : 2024-11-05 10:42:46
+Directory : /Users/dema/work/CostAccountingSys
+Total : 250 files,  44380 codes, 2971 comments, 8813 blanks, all 56164 lines
+
+Languages
++--------------------+------------+------------+------------+------------+------------+
+| language           | files      | code       | comment    | blank      | total      |
++--------------------+------------+------------+------------+------------+------------+
+| TypeScript JSX     |         94 |     24,446 |      1,785 |      4,368 |     30,599 |
+| Log                |          1 |      8,469 |          0 |      1,293 |      9,762 |
+| Less               |         65 |      6,184 |        104 |      1,062 |      7,350 |
+| TypeScript         |         71 |      4,858 |        924 |      1,907 |      7,689 |
+| JavaScript         |         13 |        340 |        158 |        176 |        674 |
+| JSON               |          2 |         55 |          0 |          2 |         57 |
+| HTML               |          1 |         20 |          0 |          1 |         21 |
+| JSON with Comments |          1 |          3 |          0 |          1 |          4 |
+| Ignore             |          1 |          3 |          0 |          1 |          4 |
+| Markdown           |          1 |          2 |          0 |          2 |          4 |
++--------------------+------------+------------+------------+------------+------------+
+
+Directories
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| path                                                                                                                                  | files      | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+| .                                                                                                                                     |        250 |     44,380 |      2,971 |      8,813 |     56,164 |
+| . (Files)                                                                                                                             |         10 |      8,935 |         22 |      1,318 |     10,275 |
+| config                                                                                                                                |          1 |          0 |          8 |          4 |         12 |
+| mock                                                                                                                                  |          5 |        412 |         32 |        138 |        582 |
+| src                                                                                                                                   |        234 |     35,033 |      2,909 |      7,353 |     45,295 |
+| src (Files)                                                                                                                           |          7 |      1,184 |        182 |        322 |      1,688 |
+| src/components                                                                                                                        |         22 |      1,333 |        175 |        318 |      1,826 |
+| src/components/Guide                                                                                                                  |          3 |         25 |          1 |          6 |         32 |
+| src/components/KCIMDrawerForm                                                                                                         |          2 |         23 |          9 |         11 |         43 |
+| src/components/KCIMLeftList                                                                                                           |          2 |        278 |         69 |         71 |        418 |
+| src/components/KCIMModalForm                                                                                                          |          1 |         23 |          8 |         11 |         42 |
+| src/components/KCIMPageContainer                                                                                                      |          2 |        194 |          8 |         37 |        239 |
+| src/components/KCIMTable                                                                                                              |          2 |        219 |         19 |         65 |        303 |
+| src/components/KCIMTableSelector                                                                                                      |          2 |        173 |         10 |         44 |        227 |
+| src/components/KCIMUpload                                                                                                             |          2 |         82 |          9 |         19 |        110 |
+| src/components/ProgressModal                                                                                                          |          2 |         91 |         16 |         20 |        127 |
+| src/components/ResizableContainer                                                                                                     |          2 |         72 |          8 |         17 |         97 |
+| src/components/SQLEditor                                                                                                              |          2 |        153 |         18 |         17 |        188 |
+| src/constants                                                                                                                         |          1 |          1 |          0 |          1 |          2 |
+| src/models                                                                                                                            |          1 |         10 |          1 |          3 |         14 |
+| src/pages                                                                                                                             |        190 |     31,750 |      2,365 |      6,472 |     40,587 |
+| src/pages (Files)                                                                                                                     |          1 |         15 |          8 |          3 |         26 |
+| src/pages/Home                                                                                                                        |          3 |        122 |         28 |         38 |        188 |
+| src/pages/baseInfoMana                                                                                                                |         13 |      1,536 |        116 |        375 |      2,027 |
+| src/pages/baseInfoMana/checkGroupMana                                                                                                 |          4 |        389 |         32 |        102 |        523 |
+| src/pages/baseInfoMana/empMana                                                                                                        |          5 |        692 |         53 |        148 |        893 |
+| src/pages/baseInfoMana/unitMana                                                                                                       |          4 |        455 |         31 |        125 |        611 |
+| src/pages/baseSetting                                                                                                                 |         62 |      9,293 |        705 |      2,057 |     12,055 |
+| src/pages/baseSetting/accountingAccountSet                                                                                            |         13 |      1,888 |        115 |        435 |      2,438 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMana                                                                          |          3 |        485 |         28 |         95 |        608 |
+| src/pages/baseSetting/accountingAccountSet/accountingSubMap                                                                           |          3 |        306 |         27 |         76 |        409 |
+| src/pages/baseSetting/accountingAccountSet/chargeItemMap                                                                              |          4 |        774 |         35 |        181 |        990 |
+| src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana                                                                      |          3 |        323 |         25 |         83 |        431 |
+| src/pages/baseSetting/costAllocationSet                                                                                               |         22 |      3,105 |        249 |        701 |      4,055 |
+| src/pages/baseSetting/costAllocationSet/allocationLevelSet                                                                            |          3 |        327 |         23 |         80 |        430 |
+| src/pages/baseSetting/costAllocationSet/allocationParamsMap                                                                           |          5 |        802 |         62 |        196 |      1,060 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal                                                                      |          3 |        483 |         24 |         93 |        600 |
+| src/pages/baseSetting/costAllocationSet/costAllocationParamsSet                                                                       |          4 |        581 |         32 |        131 |        744 |
+| src/pages/baseSetting/costAllocationSet/idleCostSetting                                                                               |          3 |        391 |         81 |         93 |        565 |
+| src/pages/baseSetting/costAllocationSet/revenueImputationSet                                                                          |          4 |        521 |         27 |        108 |        656 |
+| src/pages/baseSetting/otherItemSet                                                                                                    |         20 |      3,343 |        284 |        736 |      4,363 |
+| src/pages/baseSetting/otherItemSet/departmentCostCalc                                                                                 |          4 |      1,086 |         91 |        245 |      1,422 |
+| src/pages/baseSetting/otherItemSet/diySqlMana                                                                                         |          3 |        462 |         61 |        114 |        637 |
+| src/pages/baseSetting/otherItemSet/reportItemSet                                                                                      |          4 |        865 |         63 |        157 |      1,085 |
+| src/pages/baseSetting/otherItemSet/reportProjectSetting                                                                               |          3 |        384 |         23 |         73 |        480 |
+| src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting                                                                         |          3 |        317 |         25 |         80 |        422 |
+| src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet                                                                          |          3 |        229 |         21 |         67 |        317 |
+| src/pages/baseSetting/responsibilityCenterSet                                                                                         |          7 |        957 |         57 |        185 |      1,199 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter                                                                    |          3 |        581 |         35 |        106 |        722 |
+| src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect                                                             |          4 |        376 |         22 |         79 |        477 |
+| src/pages/costAccounting                                                                                                              |          5 |      2,549 |        126 |        241 |      2,916 |
+| src/pages/costAccounting/calcPageTemplate                                                                                             |          5 |      2,549 |        126 |        241 |      2,916 |
+| src/pages/costLibraryManagement                                                                                                       |         57 |     11,062 |        633 |      2,191 |     13,886 |
+| src/pages/costLibraryManagement/basicCostManagement                                                                                   |         16 |      2,630 |        175 |        547 |      3,352 |
+| src/pages/costLibraryManagement/basicCostManagement/drugCostManagement                                                                |          3 |        419 |         31 |         87 |        537 |
+| src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement                                                           |          3 |        411 |         30 |         85 |        526 |
+| src/pages/costLibraryManagement/basicCostManagement/materialCostManagement                                                            |          3 |        442 |         34 |         87 |        563 |
+| src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana                                                       |          4 |        923 |         50 |        204 |      1,177 |
+| src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement                                                               |          3 |        435 |         30 |         84 |        549 |
+| src/pages/costLibraryManagement/diseaseCostManagement                                                                                 |          6 |        722 |         52 |        168 |        942 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison                                                      |          3 |        392 |         23 |         85 |        500 |
+| src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana                                                                     |          3 |        330 |         29 |         83 |        442 |
+| src/pages/costLibraryManagement/medicalOrderProject                                                                                   |          4 |        939 |         37 |        194 |      1,170 |
+| src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana                                                           |          4 |        939 |         37 |        194 |      1,170 |
+| src/pages/costLibraryManagement/projectCostManagement                                                                                 |         19 |      4,648 |        230 |        819 |      5,697 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana                                                                 |          7 |      2,427 |        112 |        371 |      2,910 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana (Files)                                                         |          3 |        843 |         69 |        149 |      1,061 |
+| src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components                                                      |          4 |      1,584 |         43 |        222 |      1,849 |
+| src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet                                                             |          5 |        791 |         43 |        191 |      1,025 |
+| src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet                                                           |          3 |        350 |         25 |         85 |        460 |
+| src/pages/costLibraryManagement/projectCostManagement/standardProjectMana                                                             |          4 |      1,080 |         50 |        172 |      1,302 |
+| src/pages/costLibraryManagement/reportMana                                                                                            |         12 |      2,123 |        139 |        463 |      2,725 |
+| src/pages/costLibraryManagement/reportMana/reportColumnMana                                                                           |          5 |        830 |         45 |        164 |      1,039 |
+| src/pages/costLibraryManagement/reportMana/reportListMana                                                                             |          4 |        901 |         70 |        211 |      1,182 |
+| src/pages/costLibraryManagement/reportMana/reportNavSet                                                                               |          3 |        392 |         24 |         88 |        504 |
+| src/pages/departmentCostCheck                                                                                                         |          3 |        892 |         92 |        202 |      1,186 |
+| src/pages/departmentMenzhuCostCalc                                                                                                    |          3 |        844 |        250 |        220 |      1,314 |
+| src/pages/incomeCollectionAction                                                                                                      |          3 |        506 |         13 |         80 |        599 |
+| src/pages/monthlyInfoCollection                                                                                                       |          6 |        944 |         48 |        182 |      1,174 |
+| src/pages/monthlyInfoCollection (Files)                                                                                               |          4 |        445 |         34 |         97 |        576 |
+| src/pages/monthlyInfoCollection/components                                                                                            |          2 |        499 |         14 |         85 |        598 |
+| src/pages/monthlyInfoSearch                                                                                                           |         16 |      2,198 |        174 |        420 |      2,792 |
+| src/pages/monthlyInfoSearch/empCostDataImport                                                                                         |          3 |        327 |         28 |         70 |        425 |
+| src/pages/monthlyInfoSearch/incomeCostDataImport                                                                                      |          4 |        547 |         51 |        102 |        700 |
+| src/pages/monthlyInfoSearch/patientChargeItemsImport                                                                                  |          3 |        424 |         31 |         76 |        531 |
+| src/pages/monthlyInfoSearch/patientInfoImport                                                                                         |          3 |        435 |         23 |         75 |        533 |
+| src/pages/monthlyInfoSearch/wholeHospIncomeAndCost                                                                                    |          3 |        465 |         41 |         97 |        603 |
+| src/pages/noAccess                                                                                                                    |          2 |         63 |          9 |          8 |         80 |
+| src/pages/reportExport                                                                                                                |          4 |        480 |         68 |        161 |        709 |
+| src/pages/reportExport/report                                                                                                         |          4 |        480 |         68 |        161 |        709 |
+| src/pages/setting                                                                                                                     |          6 |        773 |         48 |        154 |        975 |
+| src/pages/setting/fenyeTemplate                                                                                                       |          3 |        388 |         25 |         77 |        490 |
+| src/pages/setting/qualitativeOptionsMana                                                                                              |          3 |        385 |         23 |         77 |        485 |
+| src/pages/specialDataImport                                                                                                           |          3 |        288 |         21 |         70 |        379 |
+| src/pages/static                                                                                                                      |          3 |        185 |         26 |         70 |        281 |
+| src/services                                                                                                                          |          5 |        195 |         54 |         57 |        306 |
+| src/services (Files)                                                                                                                  |          2 |         69 |         25 |         38 |        132 |
+| src/services/demo                                                                                                                     |          3 |        126 |         29 |         19 |        174 |
+| src/utils                                                                                                                             |          8 |        560 |        132 |        180 |        872 |
++---------------------------------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
+
+Files
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
+| filename                                                                                                                              | language           | code       | comment    | blank      | total      |
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
+| /Users/dema/work/CostAccountingSys/.eslintrc.js                                                                                       | JavaScript         |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.prettierignore                                                                                    | Ignore             |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.prettierrc                                                                                        | JSON               |          8 |          0 |          1 |          9 |
+| /Users/dema/work/CostAccountingSys/.stylelintrc.js                                                                                    | JavaScript         |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/.umirc.ts                                                                                          | TypeScript         |        389 |         14 |         15 |        418 |
+| /Users/dema/work/CostAccountingSys/README.md                                                                                          | Markdown           |          2 |          0 |          2 |          4 |
+| /Users/dema/work/CostAccountingSys/config/proxy.ts                                                                                    | TypeScript         |          0 |          8 |          4 |         12 |
+| /Users/dema/work/CostAccountingSys/mock/home.ts                                                                                       | TypeScript         |         47 |          8 |          5 |         60 |
+| /Users/dema/work/CostAccountingSys/mock/monthlyData.ts                                                                                | TypeScript         |        156 |          8 |         78 |        242 |
+| /Users/dema/work/CostAccountingSys/mock/monthlyInfo.ts                                                                                | TypeScript         |        147 |          8 |         50 |        205 |
+| /Users/dema/work/CostAccountingSys/mock/monthlySet.ts                                                                                 | TypeScript         |         43 |          8 |          3 |         54 |
+| /Users/dema/work/CostAccountingSys/mock/userAPI.ts                                                                                    | TypeScript         |         19 |          0 |          2 |         21 |
+| /Users/dema/work/CostAccountingSys/package.json                                                                                       | JSON               |         47 |          0 |          1 |         48 |
+| /Users/dema/work/CostAccountingSys/src/access.ts                                                                                      | TypeScript         |         45 |         12 |         22 |         79 |
+| /Users/dema/work/CostAccountingSys/src/app.tsx                                                                                        | TypeScript JSX     |        419 |         64 |        119 |        602 |
+| /Users/dema/work/CostAccountingSys/src/authWrapper.tsx                                                                                | TypeScript JSX     |         46 |         12 |          7 |         65 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/Guide.less                                                                    | Less               |          4 |          0 |          1 |          5 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/Guide.tsx                                                                     | TypeScript JSX     |         19 |          1 |          4 |         24 |
+| /Users/dema/work/CostAccountingSys/src/components/Guide/index.ts                                                                      | TypeScript         |          2 |          0 |          1 |          3 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/index.tsx                                                            | TypeScript JSX     |          6 |          9 |          8 |         23 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMDrawerForm/style.less                                                           | Less               |         17 |          0 |          3 |         20 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/index.tsx                                                              | TypeScript JSX     |        168 |         61 |         51 |        280 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMLeftList/style.less                                                             | Less               |        110 |          8 |         20 |        138 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMModalForm/index.tsx                                                             | TypeScript JSX     |         23 |          8 |         11 |         42 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/index.tsx                                                         | TypeScript JSX     |         75 |          8 |         18 |        101 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMPageContainer/style.less                                                        | Less               |        119 |          0 |         19 |        138 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTable/index.tsx                                                                 | TypeScript JSX     |         40 |         11 |         15 |         66 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTable/style.less                                                                | Less               |        179 |          8 |         50 |        237 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/index.tsx                                                         | TypeScript JSX     |        144 |         10 |         40 |        194 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMTableSelector/style.less                                                        | Less               |         29 |          0 |          4 |         33 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMUpload/index.tsx                                                                | TypeScript JSX     |         56 |          9 |         14 |         79 |
+| /Users/dema/work/CostAccountingSys/src/components/KCIMUpload/style.less                                                               | Less               |         26 |          0 |          5 |         31 |
+| /Users/dema/work/CostAccountingSys/src/components/ProgressModal/index.tsx                                                             | TypeScript JSX     |         74 |          8 |         11 |         93 |
+| /Users/dema/work/CostAccountingSys/src/components/ProgressModal/service.ts                                                            | TypeScript         |         17 |          8 |          9 |         34 |
+| /Users/dema/work/CostAccountingSys/src/components/ResizableContainer/index.tsx                                                        | TypeScript JSX     |         54 |          8 |         10 |         72 |
+| /Users/dema/work/CostAccountingSys/src/components/ResizableContainer/style.less                                                       | Less               |         18 |          0 |          7 |         25 |
+| /Users/dema/work/CostAccountingSys/src/components/SQLEditor/index.tsx                                                                 | TypeScript JSX     |        108 |         10 |         15 |        133 |
+| /Users/dema/work/CostAccountingSys/src/components/SQLEditor/style.less                                                                | Less               |         45 |          8 |          2 |         55 |
+| /Users/dema/work/CostAccountingSys/src/constant.ts                                                                                    | TypeScript         |         10 |          8 |          2 |         20 |
+| /Users/dema/work/CostAccountingSys/src/constants/index.ts                                                                             | TypeScript         |          1 |          0 |          1 |          2 |
+| /Users/dema/work/CostAccountingSys/src/global.less                                                                                    | Less               |        610 |         52 |        163 |        825 |
+| /Users/dema/work/CostAccountingSys/src/menuIcons.js                                                                                   | JavaScript         |         33 |         24 |          6 |         63 |
+| /Users/dema/work/CostAccountingSys/src/models/global.ts                                                                               | TypeScript         |         10 |          1 |          3 |         14 |
+| /Users/dema/work/CostAccountingSys/src/pages/404.tsx                                                                                  | TypeScript JSX     |         15 |          8 |          3 |         26 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/index.tsx                                                                           | TypeScript JSX     |         17 |          9 |          7 |         33 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/service.ts                                                                          | TypeScript         |         28 |         11 |         22 |         61 |
+| /Users/dema/work/CostAccountingSys/src/pages/Home/style.less                                                                          | Less               |         77 |          8 |          9 |         94 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/index.tsx                                                    | TypeScript JSX     |        207 |         13 |         42 |        262 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/service.ts                                                   | TypeScript         |         60 |         13 |         24 |         97 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/style.less                                                   | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx                                            | TypeScript JSX     |         85 |          6 |         29 |        120 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/index.tsx                                                           | TypeScript JSX     |        257 |         15 |         48 |        320 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/service.ts                                                          | TypeScript         |         69 |         14 |         24 |        107 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/style.less                                                          | Less               |         66 |          0 |         15 |         81 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/tableSelector.tsx                                                   | TypeScript JSX     |        203 |          5 |         42 |        250 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/empMana/transform.tsx                                                       | TypeScript JSX     |         97 |         19 |         19 |        135 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/index.tsx                                                          | TypeScript JSX     |        207 |         13 |         51 |        271 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/service.ts                                                         | TypeScript         |         30 |         12 |         21 |         63 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/style.less                                                         | Less               |         66 |          0 |         13 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseInfoMana/unitMana/tableSelector.tsx                                                  | TypeScript JSX     |        152 |          6 |         40 |        198 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx                             | TypeScript JSX     |        413 |         11 |         58 |        482 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts                            | TypeScript         |         39 |         13 |         31 |         83 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less                            | Less               |         33 |          4 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx                              | TypeScript JSX     |        250 |         16 |         45 |        311 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts                             | TypeScript         |         19 |         11 |         25 |         55 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less                             | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx                                 | TypeScript JSX     |        359 |         14 |         79 |        452 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts                                | TypeScript         |         39 |         14 |         24 |         77 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less                                | Less               |        224 |          1 |         35 |        260 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx                         | TypeScript JSX     |        152 |          6 |         43 |        201 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx                         | TypeScript JSX     |        236 |         12 |         45 |        293 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/service.ts                        | TypeScript         |         38 |         13 |         30 |         81 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/style.less                        | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/index.tsx                               | TypeScript JSX     |        255 |         11 |         45 |        311 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/service.ts                              | TypeScript         |         35 |         12 |         29 |         76 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationLevelSet/style.less                              | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/editTableModal.tsx                     | TypeScript JSX     |        161 |          5 |         34 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/index.tsx                              | TypeScript JSX     |        359 |         31 |         57 |        447 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/service.ts                             | TypeScript         |         70 |         19 |         47 |        136 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/style.less                             | Less               |         78 |          0 |         13 |         91 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/allocationParamsMap/tableSelector.tsx                      | TypeScript JSX     |        134 |          7 |         45 |        186 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/index.tsx                         | TypeScript JSX     |        380 |          9 |         53 |        442 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/service.ts                        | TypeScript         |         47 |         14 |         32 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsDeal/style.less                        | Less               |         56 |          1 |          8 |         65 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/index.tsx                          | TypeScript JSX     |        273 |         10 |         48 |        331 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/service.ts                         | TypeScript         |         44 |         13 |         31 |         88 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/style.less                         | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/costAllocationParamsSet/transform.tsx                      | TypeScript JSX     |        227 |          9 |         46 |        282 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/index.tsx                                  | TypeScript JSX     |        297 |         66 |         54 |        417 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/service.ts                                 | TypeScript         |         57 |         15 |         33 |        105 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/idleCostSetting/style.less                                 | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/index.tsx                             | TypeScript JSX     |        318 |          9 |         45 |        372 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/service.ts                            | TypeScript         |         47 |         14 |         32 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/style.less                            | Less               |         31 |          0 |          4 |         35 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/costAllocationSet/revenueImputationSet/transform.tsx                         | TypeScript JSX     |        125 |          4 |         27 |        156 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/index.tsx                                    | TypeScript JSX     |        627 |         58 |        136 |        821 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/service.ts                                   | TypeScript         |         74 |         18 |         39 |        131 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/style.less                                   | Less               |        151 |          0 |         17 |        168 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/departmentCostCalc/transform.tsx                                | TypeScript JSX     |        234 |         15 |         53 |        302 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/index.tsx                                            | TypeScript JSX     |        317 |         47 |         67 |        431 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/service.ts                                           | TypeScript         |         64 |         13 |         33 |        110 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/diySqlMana/style.less                                           | Less               |         81 |          1 |         14 |         96 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/index.tsx                                         | TypeScript JSX     |        517 |         31 |         62 |        610 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/service.ts                                        | TypeScript         |         56 |         15 |         33 |        104 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/style.less                                        | Less               |         58 |          0 |         10 |         68 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportItemSet/transform.tsx                                     | TypeScript JSX     |        234 |         17 |         52 |        303 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/index.tsx                                  | TypeScript JSX     |        277 |         10 |         30 |        317 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/service.js                                 | JavaScript         |         30 |         13 |         27 |         70 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/reportProjectSetting/style.less                                 | Less               |         77 |          0 |         16 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/index.tsx                            | TypeScript JSX     |        244 |         13 |         45 |        302 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/service.ts                           | TypeScript         |         36 |         12 |         29 |         77 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/visitsAndBedDayCostSetting/style.less                           | Less               |         37 |          0 |          6 |         43 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index.tsx                             | TypeScript JSX     |        166 |          9 |         34 |        209 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/service.ts                            | TypeScript         |         33 |         12 |         29 |         74 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/otherItemSet/wholeHospCostAndIncomeSet/style.less                            | Less               |         30 |          0 |          4 |         34 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/index.tsx                       | TypeScript JSX     |        484 |         20 |         63 |        567 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/service.ts                      | TypeScript         |         48 |         15 |         35 |         98 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenter/style.less                      | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index.tsx                | TypeScript JSX     |        187 |          8 |         41 |        236 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/service.ts               | TypeScript         |         19 |         11 |          9 |         39 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/style.less               | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/baseSetting/responsibilityCenterSet/responsibilityCenterConnect/transform.tsx            | TypeScript JSX     |        121 |          3 |         21 |        145 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/columns.tsx                                              | TypeScript JSX     |        963 |         68 |         38 |      1,069 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/config.ts                                                | TypeScript         |        375 |          8 |         26 |        409 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/index.tsx                                                | TypeScript JSX     |        790 |         28 |        125 |        943 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/service.ts                                               | TypeScript         |        340 |         22 |         40 |        402 |
+| /Users/dema/work/CostAccountingSys/src/pages/costAccounting/calcPageTemplate/style.less                                               | Less               |         81 |          0 |         12 |         93 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/index.tsx                   | TypeScript JSX     |        305 |         17 |         48 |        370 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/service.ts                  | TypeScript         |         65 |         14 |         32 |        111 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/drugCostManagement/style.less                  | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/index.tsx              | TypeScript JSX     |        302 |         17 |         48 |        367 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/service.ts             | TypeScript         |         60 |         13 |         30 |        103 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/equipmentCostManagement/style.less             | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/index.tsx               | TypeScript JSX     |        333 |         21 |         50 |        404 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/service.ts              | TypeScript         |         60 |         13 |         30 |        103 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/materialCostManagement/style.less              | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/index.tsx          | TypeScript JSX     |        481 |         22 |         88 |        591 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/service.ts         | TypeScript         |         85 |         22 |         42 |        149 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/style.less         | Less               |        223 |          0 |         31 |        254 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/personnelClassificationMana/tableSelector.tsx  | TypeScript JSX     |        134 |          6 |         43 |        183 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/index.tsx                  | TypeScript JSX     |        332 |         17 |         47 |        396 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/service.ts                 | TypeScript         |         54 |         13 |         30 |         97 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/basicCostManagement/spaceCostManagement/style.less                 | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index.tsx         | TypeScript JSX     |        287 |          9 |         46 |        342 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/service.ts        | TypeScript         |         56 |         14 |         31 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/style.less        | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/index.tsx                        | TypeScript JSX     |        225 |         16 |         45 |        286 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/service.ts                       | TypeScript         |         56 |         13 |         30 |         99 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/diseaseCostManagement/diseaseMana/style.less                       | Less               |         49 |          0 |          8 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index.tsx              | TypeScript JSX     |        495 |         11 |         81 |        587 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/service.ts             | TypeScript         |         83 |         20 |         40 |        143 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/style.less             | Less               |        209 |          0 |         30 |        239 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/tableSelector.tsx      | TypeScript JSX     |        152 |          6 |         43 |        201 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/match.tsx         | TypeScript JSX     |        455 |         14 |         56 |        525 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/setting.tsx       | TypeScript JSX     |        535 |         15 |         56 |        606 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/style.less        | Less               |        449 |          7 |         66 |        522 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/components/tableSelector.tsx | TypeScript JSX     |        145 |          7 |         44 |        196 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/index.tsx                    | TypeScript JSX     |        492 |         28 |         62 |        582 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/service.ts                   | TypeScript         |        198 |         41 |         62 |        301 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/chargeItemsMana/style.less                   | Less               |        153 |          0 |         25 |        178 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/editTableModal.tsx       | TypeScript JSX     |        138 |          5 |         32 |        175 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/index.tsx                | TypeScript JSX     |        367 |         11 |         50 |        428 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/service.ts               | TypeScript         |         75 |         20 |         51 |        146 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/style.less               | Less               |         78 |          0 |         13 |         91 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectCostShareSet/tableSelector.tsx        | TypeScript JSX     |        133 |          7 |         45 |        185 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/index.tsx              | TypeScript JSX     |        250 |         11 |         47 |        308 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/service.ts             | TypeScript         |         51 |         14 |         31 |         96 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/projectShareParamsSet/style.less             | Less               |         49 |          0 |          7 |         56 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/drawer.tsx               | TypeScript JSX     |        391 |         12 |         49 |        452 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/index.tsx                | TypeScript JSX     |        364 |         16 |         49 |        429 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/service.ts               | TypeScript         |        113 |         21 |         49 |        183 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/projectCostManagement/standardProjectMana/style.less               | Less               |        212 |          1 |         25 |        238 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/UpDateActBtn.tsx                       | TypeScript JSX     |        329 |          9 |         45 |        383 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/index.tsx                              | TypeScript JSX     |        227 |         13 |         49 |        289 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/service.ts                             | TypeScript         |        100 |         16 |         38 |        154 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/style.less                             | Less               |         64 |          3 |         13 |         80 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportColumnMana/transform.tsx                          | TypeScript JSX     |        110 |          4 |         19 |        133 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/index.tsx                                | TypeScript JSX     |        460 |         46 |         99 |        605 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/service.ts                               | TypeScript         |         64 |         18 |         36 |        118 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/style.less                               | Less               |        223 |          0 |         33 |        256 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportListMana/tableSelector.tsx                        | TypeScript JSX     |        154 |          6 |         43 |        203 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/index.tsx                                  | TypeScript JSX     |        298 |         12 |         50 |        360 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/service.ts                                 | TypeScript         |         57 |         12 |         31 |        100 |
+| /Users/dema/work/CostAccountingSys/src/pages/costLibraryManagement/reportMana/reportNavSet/style.less                                 | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/index.tsx                                                            | TypeScript JSX     |        638 |         73 |        135 |        846 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/service.ts                                                           | TypeScript         |         80 |         19 |         41 |        140 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentCostCheck/style.less                                                           | Less               |        174 |          0 |         26 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/index.tsx                                                       | TypeScript JSX     |        650 |        239 |        167 |      1,056 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/service.ts                                                      | TypeScript         |         20 |         11 |         27 |         58 |
+| /Users/dema/work/CostAccountingSys/src/pages/departmentMenzhuCostCalc/style.less                                                      | Less               |        174 |          0 |         26 |        200 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/index.tsx                                                         | TypeScript JSX     |        310 |         11 |         40 |        361 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/service.ts                                                        | TypeScript         |         13 |          2 |          9 |         24 |
+| /Users/dema/work/CostAccountingSys/src/pages/incomeCollectionAction/style.less                                                        | Less               |        183 |          0 |         31 |        214 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/leftAndRighrStructure.tsx                               | TypeScript JSX     |        346 |         14 |         58 |        418 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/components/style.less                                              | Less               |        153 |          0 |         27 |        180 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/index.tsx                                                          | TypeScript JSX     |        177 |         13 |         22 |        212 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/service.ts                                                         | TypeScript         |         66 |         19 |         33 |        118 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/style.less                                                         | Less               |         49 |          0 |          4 |         53 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoCollection/tableSelector.tsx                                                  | TypeScript JSX     |        153 |          2 |         38 |        193 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/index.tsx                                            | TypeScript JSX     |        204 |         15 |         26 |        245 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/service.js                                           | JavaScript         |         39 |         13 |         27 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/empCostDataImport/style.less                                           | Less               |         84 |          0 |         17 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/index.tsx                                         | TypeScript JSX     |        391 |         35 |         56 |        482 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/service.js                                        | JavaScript         |         62 |         16 |         29 |        107 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/style.less                                        | Less               |         74 |          0 |         16 |         90 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/incomeCostDataImport/test.html                                         | HTML               |         20 |          0 |          1 |         21 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/index.tsx                                     | TypeScript JSX     |        288 |         16 |         31 |        335 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/service.js                                    | JavaScript         |         45 |         14 |         28 |         87 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientChargeItemsImport/style.less                                    | Less               |         91 |          1 |         17 |        109 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/index.tsx                                            | TypeScript JSX     |        312 |          9 |         32 |        353 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/service.js                                           | JavaScript         |         39 |         13 |         27 |         79 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/patientInfoImport/style.less                                           | Less               |         84 |          1 |         16 |        101 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/index.tsx                                       | TypeScript JSX     |        260 |         29 |         41 |        330 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/service.ts                                      | TypeScript         |         43 |         12 |         29 |         84 |
+| /Users/dema/work/CostAccountingSys/src/pages/monthlyInfoSearch/wholeHospIncomeAndCost/style.less                                      | Less               |        162 |          0 |         27 |        189 |
+| /Users/dema/work/CostAccountingSys/src/pages/noAccess/index.tsx                                                                       | TypeScript JSX     |         18 |          9 |          4 |         31 |
+| /Users/dema/work/CostAccountingSys/src/pages/noAccess/style.less                                                                      | Less               |         45 |          0 |          4 |         49 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/ExportProgressModal.tsx                                              | TypeScript JSX     |         41 |          8 |         11 |         60 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/index.tsx                                                            | TypeScript JSX     |        338 |         51 |        122 |        511 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/service.ts                                                           | TypeScript         |         21 |          9 |         19 |         49 |
+| /Users/dema/work/CostAccountingSys/src/pages/reportExport/report/style.less                                                           | Less               |         80 |          0 |          9 |         89 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/index.tsx                                                          | TypeScript JSX     |        304 |         13 |         47 |        364 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/service.ts                                                         | TypeScript         |         47 |         12 |         23 |         82 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/fenyeTemplate/style.less                                                         | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/index.tsx                                                 | TypeScript JSX     |        286 |          9 |         46 |        341 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/service.ts                                                | TypeScript         |         62 |         14 |         24 |        100 |
+| /Users/dema/work/CostAccountingSys/src/pages/setting/qualitativeOptionsMana/style.less                                                | Less               |         37 |          0 |          7 |         44 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/index.tsx                                                              | TypeScript JSX     |        205 |          9 |         37 |        251 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/service.ts                                                             | TypeScript         |         33 |         12 |         26 |         71 |
+| /Users/dema/work/CostAccountingSys/src/pages/specialDataImport/style.less                                                             | Less               |         50 |          0 |          7 |         57 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/index.tsx                                                                         | TypeScript JSX     |         59 |         12 |         26 |         97 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/service.js                                                                        | JavaScript         |         45 |         14 |         28 |         87 |
+| /Users/dema/work/CostAccountingSys/src/pages/static/style.less                                                                        | Less               |         81 |          0 |         16 |         97 |
+| /Users/dema/work/CostAccountingSys/src/services/auth.ts                                                                               | TypeScript         |         31 |         13 |         12 |         56 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/UserController.ts                                                                | TypeScript         |         74 |         17 |          6 |         97 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/index.ts                                                                         | TypeScript         |          4 |          2 |          2 |          8 |
+| /Users/dema/work/CostAccountingSys/src/services/demo/typings.d.ts                                                                     | TypeScript         |         48 |         10 |         11 |         69 |
+| /Users/dema/work/CostAccountingSys/src/services/getDic.ts                                                                             | TypeScript         |         38 |         12 |         26 |         76 |
+| /Users/dema/work/CostAccountingSys/src/typings.d.ts                                                                                   | TypeScript         |         21 |         10 |          3 |         34 |
+| /Users/dema/work/CostAccountingSys/src/utils/devicePixelRatio.js                                                                      | JavaScript         |         38 |         27 |          2 |         67 |
+| /Users/dema/work/CostAccountingSys/src/utils/format.ts                                                                                | TypeScript         |         22 |         10 |          5 |         37 |
+| /Users/dema/work/CostAccountingSys/src/utils/tableToExcel.ts                                                                          | TypeScript         |         56 |         22 |         25 |        103 |
+| /Users/dema/work/CostAccountingSys/src/utils/tableToMultiHeaderExcel.ts                                                               | TypeScript         |        221 |         10 |         51 |        282 |
+| /Users/dema/work/CostAccountingSys/src/utils/tooljs.ts                                                                                | TypeScript         |        220 |         39 |         97 |        356 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiA.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiB.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/src/utils/zhongtaiC.js                                                                             | JavaScript         |          1 |          8 |          0 |          9 |
+| /Users/dema/work/CostAccountingSys/tsconfig.json                                                                                      | JSON with Comments |          3 |          0 |          1 |          4 |
+| /Users/dema/work/CostAccountingSys/typings.d.ts                                                                                       | TypeScript         |          8 |          8 |          2 |         18 |
+| /Users/dema/work/CostAccountingSys/yarn-error.log                                                                                     | Log                |      8,469 |          0 |      1,293 |      9,762 |
+| Total                                                                                                                                 |                    |     44,380 |      2,971 |      8,813 |     56,164 |
++---------------------------------------------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+

+ 3 - 0
.eslintrc.js

@@ -0,0 +1,3 @@
+module.exports = {
+  extends: require.resolve('@umijs/max/eslint'),
+};

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+/node_modules
+/.env.local
+/.umirc.local.ts
+/config/config.local.ts
+/src/.umi
+/src/.umi-production
+/src/.umi-test
+/.umi
+/.umi-production
+/.umi-test
+/dist
+/.mfsu

+ 4 - 0
.husky/commit-msg

@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npx --no-install max verify-commit $1

+ 4 - 0
.husky/pre-commit

@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npx --no-install lint-staged --quiet

+ 17 - 0
.lintstagedrc

@@ -0,0 +1,17 @@
+{
+  "*.{md,json}": [
+    "prettier --cache --write"
+  ],
+  "*.{js,jsx}": [
+    "max lint --fix --eslint-only",
+    "prettier --cache --write"
+  ],
+  "*.{css,less}": [
+    "max lint --fix --stylelint-only",
+    "prettier --cache --write"
+  ],
+  "*.ts?(x)": [
+    "max lint --fix --eslint-only",
+    "prettier --cache --parser=typescript --write"
+  ]
+}

+ 2 - 0
.npmrc

@@ -0,0 +1,2 @@
+registry=https://registry.npmjs.org/
+

+ 3 - 0
.prettierignore

@@ -0,0 +1,3 @@
+node_modules
+.umi
+.umi-production

+ 8 - 0
.prettierrc

@@ -0,0 +1,8 @@
+{
+  "printWidth": 80,
+  "singleQuote": true,
+  "trailingComma": "all",
+  "proseWrap": "never",
+  "overrides": [{ "files": ".prettierrc", "options": { "parser": "json" } }],
+  "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-packagejson"]
+}

+ 3 - 0
.stylelintrc.js

@@ -0,0 +1,3 @@
+module.exports = {
+  extends: require.resolve('@umijs/max/stylelint'),
+};

+ 97 - 0
.umirc.ts

@@ -0,0 +1,97 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-08-02 11:28:57
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:40:00
+ * @FilePath: /MediResourceManaSys/.umirc.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import { defineConfig } from '@umijs/max';
+
+import MonacoWebpackPlugin from 'monaco-editor-webpack-plugin';
+
+
+const { REACT_APP_ENV } = process.env;
+const path = require('path');
+
+
+
+export default defineConfig({
+  antd: {
+    configProvider: {
+      prefixCls: 'mrms-ant',
+    },
+  },
+  // alias:{
+  //   'ace-builds': path.resolve(__dirname, './node_modules/ace-builds/src-noconflict'),
+  // },
+  qiankun: {
+    slave: {},
+  },
+  mfsu: false,
+  lessLoader: {
+    modifyVars: {
+      '@ant-prefix': 'mrms-ant',
+      '@primary-color': '#3377FF',
+      '@border-color-base': '#dae2f2'
+    },
+    javascriptEnabled: true,
+  }, //对应修改生成的 antd 样式类名
+
+  chainWebpack(config, { webpack }) {
+    config.plugin('monaco-editor').use(MonacoWebpackPlugin, [
+        {
+            // 指定需要加载的语言和特性
+            languages: ['sql', 'javascript', 'typescript']
+        }
+    ]);
+  },
+
+  access: {},
+  model: {},
+
+  initialState: {},
+  request: {},
+  layout: {
+    title: '医资管理系统',
+    layout: 'side',
+    menuProps: {
+      theme: 'light',
+    }
+  },
+  manifest: {
+    basePath: '/',
+  },
+  publicPath: REACT_APP_ENV == 'dev' ? '/' : '/qualification/',
+  proxy: {
+    '/gateway': {
+      target: 'http://120.27.235.181:5000/gateway',//开发
+      //target:'http://47.96.149.190:5000/gateway', //演示
+      changeOrigin: true,
+      // pathRewrite: { '^/gateway': '' },
+
+    }
+  },
+  routes: [
+    {
+      path: '/',
+      redirect: '/home',
+    },
+    { path: '*', component: '@/pages/404' },
+    {
+      path: '/noAccess',
+      component: './noAccess',
+    },
+    {
+      path: '/home',
+      component: './Home/index',
+    },
+ 
+
+   
+
+  ],
+  npmClient: 'yarn',
+});
+

+ 4 - 0
.vscode/settings.json

@@ -0,0 +1,4 @@
+{
+    "vue.features.codeActions.enable": false,
+    "typescript.tsdk": "node_modules/typescript/lib"
+}

+ 3 - 0
README.md

@@ -0,0 +1,3 @@
+# README
+
+`@umijs/max` 模板项目,更多功能参考 [Umi Max 简介](https://next.umijs.org/zh-CN/docs/max/introduce)

+ 11 - 0
config/proxy.ts

@@ -0,0 +1,11 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-01-10 17:40:43
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-01-10 17:53:38
+ * @FilePath: /BudgetManaSystem/config/proxy.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+

+ 60 - 0
mock/home.ts

@@ -0,0 +1,60 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-01-05 11:01:37
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-01-05 16:46:11
+ * @FilePath: /BudgetManaSystem/mock/home.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+export default {
+    'GET /performance/index': (req: any, res: any) => {        
+        res.json(
+            {
+                success: true,
+                data: [
+                    {
+                        id: 1,
+                        computeDate: "2022-09",
+                        code: 1,
+                        name: "月度结转",
+                        preCode: 0,
+                        sort: 1,
+                        status: 2,
+                        audit: "0"
+                    },
+                    {
+                        id: 1,
+                        computeDate: "2022-09",
+                        code: 1,
+                        name: "设置信息",
+                        preCode: 0,
+                        sort: 1,
+                        status: 2,
+                        audit: "0"
+                    },
+                    {
+                        id: 1,
+                        computeDate: "2022-09",
+                        code: 1,
+                        name: "绩效数据",
+                        preCode: 0,
+                        sort: 1,
+                        status: 1,
+                        audit: "0"
+                    }
+                ],
+                errorCode: 0,
+            });
+    },
+    'GET /performance/index/getCurrentComputeDate':(req: any, res: any)=>{
+        res.json({
+              success:true,
+              data:`${Math.random()}`
+        })
+    }
+
+};

+ 242 - 0
mock/monthlyData.ts

@@ -0,0 +1,242 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-01-09 15:27:55
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-01-10 16:55:27
+ * @FilePath: /BudgetManaSystem/mock/monthlyData.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+export default {
+    'GET /performance/kpi/getSalary': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "unitType": 1,
+
+                        "unitCode": 1,
+
+                        "unitName": "四病区护理组",
+
+                        "deptCode": "1",
+
+                        "deptName": "内科1",
+
+                        "empNo": "90083",
+
+                        "empName": "程静静",
+
+                        "salaryType": "1",
+
+                        "salaryTypeName": "学历工资",
+
+                        "salary": 10250
+                    },
+                    {
+                        "unitType": 1,
+
+                        "unitCode": 2,
+
+                        "unitName": "四病区护理组",
+
+                        "deptCode": "2",
+
+                        "deptName": "内科1",
+
+                        "empNo": "90084",
+
+                        "empName": "程静静",
+
+                        "salaryType": "1",
+
+                        "salaryTypeName": "学历工资",
+
+                        "salary": 20250
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+    'GET /performance/kpi/getNonAssessmentList': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "unitType": "1",
+
+                        "unitTypeName": "护理",
+
+                        "unitCode": "1",
+
+                        "unitName": "四病区护理组",
+
+                        "deptCode": 1,
+
+                        "deptName": "内科1",
+
+                        "assessmentCode": "1",
+
+                        "assessmentName": "最看红按头还",
+
+                        "distributionType": 1,
+
+                        "targetValue": "02032",
+
+                        "targetValueName": "程静静",
+
+                        "describe": "测试说明"
+                    },
+                    {
+                        "unitType": "1",
+
+                        "unitTypeName": "护理",
+
+                        "unitCode": "1",
+
+                        "unitName": "四病区护理组",
+
+                        "deptCode": 1,
+
+                        "deptName": "内科1",
+
+                        "assessmentCode": "2",
+
+                        "assessmentName": "最看红按头还",
+
+                        "distributionType": 1,
+
+                        "targetValue": "02032",
+
+                        "targetValueName": "程静静",
+
+                        "describe": "测试说明"
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+    'GET /performance/kpi/getAssessmentList': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: [
+                {
+                    "code": "听现音红当",
+
+                    "name": "物军动前压",
+
+                    "child": [
+                        {
+                            "code": "太必世八目花电速点这动务史主不车每他象身民作或物员做",
+
+                            "name": "文时较清斗最程后作给水",
+
+                            "child": []
+
+                        }
+                    ]
+
+                }
+            ],
+
+        })
+    },
+    'GET /performance/getAssessmentData': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "itemCode": "1",
+
+                        "itemName": "腹腔引流袋",
+
+                        "itemType": "1",
+
+                        "itemTypeName": "收费项目",
+
+                        "pointValue": 50,
+
+                        "value": 10000,
+
+                        "createUser": "低基林算几安",
+
+                        "createTime": "位派济查却精义"
+                    },
+                    {
+                        "itemCode": "1",
+
+                        "itemName": "腹腔引流袋",
+
+                        "itemType": "1",
+
+                        "itemTypeName": "收费项目",
+
+                        "pointValue": 50,
+
+                        "value": 10000,
+
+                        "createUser": "低基林算几安",
+
+                        "createTime": "位派济查却精义"
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+    'GET /performance/manager/list': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "unitCode": "1",
+
+                        "unitName": "护理组",
+
+                        "deptCode": "1",
+
+                        "deptName": "内科",
+
+                        "CMIData": {
+                            "targetValue": 1.1,
+
+                            "value": 1.2,
+
+                            "score": 27.7
+
+                        },
+
+                        "totalScore": 100
+
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+}

+ 205 - 0
mock/monthlyInfo.ts

@@ -0,0 +1,205 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-01-06 14:26:54
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-01-09 13:50:07
+ * @FilePath: /BudgetManaSystem/mock/monthlyInfo.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import mockjs from 'mockjs';
+
+
+
+
+const list = [...new Array(100).keys()].map((item, index) => {
+    return {
+        account: "admin",
+        avatarUrl: "",
+        departmentId: "A00002",
+        departmentName: "",
+        doctorLevel: "2",
+        entryTime: "2022-06-28 12:00:00",
+        gender: 2,
+        hospId: "30",
+        hospName: "武汉市儿童医院",
+        id: `30614${index}`,
+        idCardNum: "",
+        isOnService: 0,
+        jobTitle: "2",
+        major: "2",
+        name: `管理员${index}`,
+        password: "e10adc3949ba59abbe56e057f20f883e",
+        phoneNumber: "",
+        practiceCate: "1",
+        practiceCertificateNo: "",
+        practiceStatus: "1",
+        practiceSubject: "2",
+        qualificationCertificateNo: "",
+        remark: "",
+        title: "2",
+        userCate: "1",
+        userId: "30614",
+    }
+});
+
+
+const users = [
+    { id: 0, name: 'Umi', nickName: 'U', gender: 'MALE' },
+    { id: 1, name: 'Fish', nickName: 'B', gender: 'FEMALE' },
+];
+
+
+export default {
+    'GET /performance/check/getUnitList': (req: any, res: any) => {
+
+        console.log({ req, res });
+
+        res.json(
+            {
+                success: true,
+                data: [
+                    {
+                        code: 8662827685293679,
+
+                        name: "病区护理",
+
+                        child: [
+                            {
+                                code: 3994166660344023,
+
+                                name: "心内科病区",
+
+                                child: [
+                                    {
+                                        code: 8338644021754079,
+
+                                        name: "心内科一病区"
+
+                                    }
+                                ]
+
+                            }
+                        ]
+
+                    }
+                ],
+                errorCode: 0,
+            });
+    },
+    'GET /performance/check/empList': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: [
+                {
+                    "unitCode": 1,
+
+                    "empNo": "1",
+
+                    "empName": "程静静",
+
+                    "jobLevel": "N3",
+
+                    "jobTitle": "护士长",
+
+                    "jobRate": "1.6",
+
+                    "seniority": "17"
+
+                }
+            ],
+
+        })
+    },
+    'GET /centerSys/user/list': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: list,
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+    'GET /performance/check/deptList': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "unitCode": 1,
+
+                        "deptCode": "1",
+
+                        "deptName": "内一科",
+
+                        "deptType": 2,
+
+                        "describe": "临床科室",
+
+                        "deptTypeName": "临床"
+                    },
+                    {
+                        "unitCode": 2,
+
+                        "deptCode": "2",
+
+                        "deptName": "内一科",
+
+                        "deptType": 2,
+
+                        "describe": "临床科室",
+
+                        "deptTypeName": "临床"
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+    'GET /performance/check/itemList': (req: any, res: any) => {
+        res.json({
+            success: true,
+            data: {
+                current: 1,
+                list: [
+                    {
+                        "itemCode": "000000040",
+
+                        "itemName": "I级护理",
+
+                        "itemType": "护理费",
+
+                        "itemPoint": 50,
+
+                        "coreFlag": "1"
+                    },
+                    {
+                        "itemCode": "000000041",
+
+                        "itemName": "I级护理",
+
+                        "itemType": "护理费",
+
+                        "itemPoint": 50,
+
+                        "coreFlag": "1"
+                    }
+                ],
+                pageSize: 10,
+                totalCount: 0,
+                totalPage: 0
+            }
+
+        })
+    },
+
+
+};

+ 54 - 0
mock/monthlySet.ts

@@ -0,0 +1,54 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-01-05 15:17:29
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-01-05 17:29:17
+ * @FilePath: /BudgetManaSystem/mock/monthlySet.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+export default {
+    'GET /performance/carry/list': (req: any, res: any) => {
+        res.json(
+            {
+                success: true,
+                data: {
+                    preCarry: {
+                        "computeDate":`${Math.random()}`, //核算年月
+                        "dateRange": "2022/10/01-2022/10/31", //日期区间
+                        "personalRate": "10%", //人事成本比例
+                        "seniority": 30 //年资
+                    }, //上月度结转数据
+                    currentCarry: {
+                        "computeDate":`${Math.random()}`, //核算年月
+                        "dateRange": "2022/11/01-2022/11/31", //日期区间
+                        "personalRate": "10%", //人事成本比例
+                        "seniority": "30.00" //年资
+                    }, //本月度结转数据
+                    lastCarry: {
+                        "computeDate":`${Math.random()}`, //核算年月
+                        "dateRange": "2022/12/01-2022/12/31", //日期区间
+                        "personalRate": "10%", //人事成本比例
+                        "seniority": "30.00" //年资
+                    } //下月度结转数据
+                },
+                errorCode: 0,
+            });
+    },
+    'POST /performance/carry/over': (req: any, res: any) => {
+        res.json({
+            code: "200",
+            message: "返回成功",
+            data: null
+        })
+    },
+    'POST /performance/carry/back': (req: any, res: any) => {
+        res.json({
+            code: "200",
+            message: "返回成功",
+            data: null
+        })
+    }
+};

+ 20 - 0
mock/userAPI.ts

@@ -0,0 +1,20 @@
+const users = [
+  { id: 0, name: 'Umi', nickName: 'U', gender: 'MALE' },
+  { id: 1, name: 'Fish', nickName: 'B', gender: 'FEMALE' },
+];
+
+export default {
+  'GET /api/v1/queryUserList': (req: any, res: any) => {
+    res.json({
+      success: true,
+      data: { list: users },
+      errorCode: 0,
+    });
+  },
+  'PUT /api/v1/user/': (req: any, res: any) => {
+    res.json({
+      success: true,
+      errorCode: 0,
+    });
+  },
+};

+ 47 - 0
package.json

@@ -0,0 +1,47 @@
+{
+  "name": "MediResourceManaSys",
+  "private": true,
+  "author": "code4eat <awesomedema@gmail.com>",
+  "scripts": {
+    "build": "max build",
+    "dev": "cross-env REACT_APP_ENV=dev MOCK=none max dev",
+    "format": "prettier --cache --write .",
+    "postinstall": "max setup",
+    "mock": "max dev",
+    "prepare": "husky install",
+    "setup": "max setup",
+    "start": "npm run dev"
+  },
+  "dependencies": {
+    "@ant-design/icons": "^4.7.0",
+    "@ant-design/pro-components": "^2.0.1",
+    "@umijs/max": "^4.0.51",
+    "ace-builds": "^1.32.3",
+    "axios": "^1.3.3",
+    "file-saver": "^2.0.5",
+    "json-bigint": "^1.0.0",
+    "lodash": "^4.17.21",
+    "mathjs": "^11.6.0",
+    "monaco-editor": "^0.45.0",
+    "monaco-editor-webpack-plugin": "^7.1.0",
+    "react-ace": "^10.1.0",
+    "react-monaco-editor": "^0.55.0",
+    "react-sortable-hoc": "^2.0.0",
+    "umi-request": "^1.4.0",
+    "xlsx": "^0.18.5"
+  },
+  "devDependencies": {
+    "@types/file-saver": "^2.0.5",
+    "@types/json-bigint": "^1.0.1",
+    "@types/lodash": "^4.14.192",
+    "@types/react": "^18.0.0",
+    "@types/react-dom": "^18.0.0",
+    "cross-env": "^7.0.3",
+    "husky": "^8.0.1",
+    "lint-staged": "^13.0.3",
+    "prettier": "^2.7.1",
+    "prettier-plugin-organize-imports": "^2",
+    "prettier-plugin-packagejson": "^2",
+    "typescript": "^4.1.2"
+  }
+}


+ 78 - 0
src/access.ts

@@ -0,0 +1,78 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2022-12-14 14:14:32
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-01-19 11:26:51
+ * @FilePath: /BudgetManaSystem/src/access.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+
+
+interface MenuItem {
+  function: any;
+  path: string;
+  name: string;
+  children?: MenuItem[];
+}
+
+function findMenuItem(menu: MenuItem[], path: string): MenuItem | undefined {
+  for (let i = 0; i < menu.length; i++) {
+      if (menu[i].path === path) {
+          return menu[i];
+      } else if (menu[i].children) {
+          let found = findMenuItem(menu[i].children as MenuItem[], path);
+          if (found) return found;
+      }
+  }
+}
+
+
+
+
+
+export default (initialState: { name: string;memuData:any[] }) => {
+  // 在这里按照初始化数据定义项目中的权限,统一管理
+  // 参考文档 https://next.umijs.org/docs/max/access
+  
+  //console.log({initialState});
+
+  const {memuData} = initialState;
+  
+  const canSeeAdmin = !!(
+    initialState && initialState.name !== 'dontHaveAccess'
+  );
+
+  const whatCanIDoInThisPage = (pagePath:string)=>{
+       
+        if(memuData){
+          const thisPageData = findMenuItem(memuData,pagePath);
+          if(thisPageData){
+            return thisPageData.function?thisPageData.function:[];
+          }
+          return [];
+        }
+
+  }
+
+  const canIReadThisPage = (pagePath:string)=>{
+    if(memuData){
+      const thisPageData = findMenuItem(memuData,pagePath);
+      // console.log({pagePath,thisPageData});
+      if(thisPageData){
+        return true;
+      }
+      return false;
+    }
+  }
+ 
+
+  return {
+    canSeeAdmin,
+    whatCanIDoInThisPage,
+    canIReadThisPage
+  };
+};

+ 587 - 0
src/app.tsx

@@ -0,0 +1,587 @@
+
+
+import { AxiosResponse, history } from '@umijs/max';
+import { message, notification, Modal, Menu } from 'antd';
+import type { RequestConfig } from 'umi';
+
+import iconEnum from './menuIcons.js';
+
+// import Report from './pages/reports/index';
+import Static from './pages/static/index';
+
+
+import DevicePixelRatio from './utils/devicePixelRatio.js';
+
+import Icon, { createFromIconfontCN, FolderOutlined } from '@ant-design/icons';
+import { getLastComputeDate, getPlatformMenu } from '@/services/auth';
+import { JSXElementConstructor, Key, ReactElement, ReactFragment, ReactPortal, useEffect, useRef, useState } from 'react';
+
+
+import './utils/zhongtaiC'
+import { RuntimeAntdConfig } from '@umijs/max';
+import { useLocation } from '@umijs/max';
+import ResizableContainer from './components/ResizableContainer/index';
+import { IRoute } from '@umijs/max';
+
+
+// 权限检查函数
+function checkAccess(menu: IRoute[], pathname: string): boolean {
+  for (const item of menu) {
+    if (item.path === pathname) {
+      return true;
+    }
+    if (item.children) {
+      const hasAccess = checkAccess(item.children, pathname);
+      if (hasAccess) {
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+function removePrefix(input: string, prefix: string): string {
+  if (input.startsWith(prefix)) {
+    return input.slice(prefix.length);
+  }
+  return input;
+}
+
+
+const IconFont = createFromIconfontCN({
+  scriptUrl: '',
+});
+
+
+// 错误处理方案: 错误类型
+enum ErrorShowType {
+  SILENT = 0,
+  WARN_MESSAGE = 1,
+  ERROR_MESSAGE = 2,
+  NOTIFICATION = 3,
+  REDIRECT = 9,
+}
+// 与后端约定的响应数据格式
+interface ResponseStructure {
+  success?: boolean;
+  code?: string;
+  data: any;
+  errorCode?: number;
+  errorMessage?: string;
+  showType?: ErrorShowType;
+}
+
+interface UserData {
+  name?: string,
+  ruleVersion?: string,
+  token?: string,
+  userId?: number,
+  youshuToken?: string
+}
+
+interface TransformResult {
+  newTree: any[];
+  firstLeafNode: any | null;
+  firstLeafNodePath: any[];
+}
+
+
+function transformTree(tree: any[]): TransformResult {
+  let firstLeafNode: any | null = null;
+  let firstLeafNodePath: any[] = [];
+
+  function traverse(node: any, path: any[]): any {
+    const newNode: any = {
+      ...node,
+      label: node.name,
+    };
+
+    const newPath = [...path, newNode];
+
+    if (node.children && node.children.length > 0) {
+      newNode.children = node.children.map((child: any) => traverse(child, newPath));
+    } else {
+      if (!firstLeafNode) {
+        firstLeafNode = newNode;
+        firstLeafNodePath = newPath;
+      }
+    }
+
+    // Remove children property if it is an empty array
+    if (node.children && node.children.length === 0) {
+      newNode.children = null;
+    }
+
+    return newNode;
+  }
+
+  const newTree = tree.map(node => traverse(node, []));
+
+  return { newTree, firstLeafNode, firstLeafNodePath };
+}
+
+const findItemByKey: any = (tree: any[], key: string, keyName: string) => {
+  for (const node of tree) {
+    if (node[`${keyName}`] === key) {
+      return node;
+    }
+    if (node.children) {
+      const result = findItemByKey(node.children, key, keyName);
+      if (result) {
+        return result;
+      }
+    }
+  }
+  return null;
+}
+
+
+
+export async function getInitialState(): Promise<{
+  isCollapsed: boolean, spacicalPageParamsType?: any[], userData: UserData, memuData: any[], computeDate: string
+}> {
+  new DevicePixelRatio().init();
+
+  // 默认的计算日期
+  let computeDate = `${new Date().getFullYear()}-${(new Date().getMonth() + 1).toString().padStart(2, '0')}`;
+
+  try {
+    // 获取最新计算日期的请求
+    const resp = await getLastComputeDate();
+    if (resp) {
+      computeDate = resp; // 更新计算日期
+    }
+  } catch (error) {
+    console.error('获取计算日期失败:', error); // 捕获和处理错误
+  }
+
+  // 返回状态
+  return {
+    isCollapsed: false,
+    spacicalPageParamsType: [],
+    userData: {},
+    memuData: [],
+    computeDate: computeDate,
+  };
+}
+
+
+
+export const request: RequestConfig = {
+  // 统一的请求设定
+  timeout: 100000000,
+  headers: { 'X-Requested-With': 'XMLHttpRequest' },
+  // transformResponse:[function (data) {
+  //   try {
+  //     // 如果转换成功则返回转换的数据结果
+  //     return JSONbig.parse(data);
+  //   } catch (error) {
+  //     // 如果转换失败,则包装为统一数据格式并返回
+  //     return data
+  //   }
+  // }],
+  // 错误处理: umi@3 的错误处理方案。
+  errorConfig: {
+    // 错误抛出
+    errorThrower: (res: ResponseStructure) => {
+      const { success, data, errorCode, errorMessage, showType } = res;
+      console.log({ success, data, errorCode, errorMessage, showType });
+      if (!success) {
+        const error: any = new Error(errorMessage);
+        error.name = 'BizError';
+        error.info = { errorCode, errorMessage, showType, data };
+        throw error; // 抛出自制的错误
+      }
+    },
+    // 错误接收及处理
+    errorHandler: (error: any, opts: any) => {
+      if (opts?.skipErrorHandler) throw error;
+
+    },
+
+  },
+
+  // 请求拦截器
+  requestInterceptors: [
+    (config: RequestConfig) => {
+      // 拦截请求配置,进行个性化处理。
+      const userData = localStorage.getItem('userData');
+      const { token = '' } = JSON.parse(userData as any);
+      return { ...config, url: `/gateway${config.url}`, headers: { token } }
+      // return { ...config }
+    }
+  ],
+
+  // 响应拦截器
+  responseInterceptors: [
+    (response: AxiosResponse) => {
+      // 拦截响应数据,进行个性化处理
+      const { status, data: { status: code, errorMessage, msg }, config: { method } } = response;
+
+      try {
+
+        if (status == 200) {
+          // 网络请求成功
+          if (errorMessage && errorMessage.indexOf('Token') != -1) {
+            console.log({ response, errorMessage });
+            localStorage.removeItem('tokenExpired');
+
+            return false;
+          }
+
+
+          if (method == 'post') {
+
+            if (code == 200) {
+
+              return response.data.data == null ? {
+                success: true,
+                data: true
+              } : response.data
+
+            } else {
+              notification.error({
+                top: 72,
+                message: '提示',
+                description: errorMessage || msg,
+                placement: 'topRight',
+                icon: <IconFont type="icon-jinggaotishi" />,
+                style: { padding: 16, borderRadius: 8 }
+              })
+              return false
+            }
+          } else {
+            if (status != 200) {
+              message.error('请求失败!');
+              return false
+            } else {
+              if (code == 200) {
+                //console.log({code,'response.data':response.data});
+                return response.data
+              } else {
+           
+                notification.error({
+                  top: 72,
+                  message: '提示',
+                  description: errorMessage || msg,
+                  placement: 'topRight',
+                  icon: <IconFont type="icon-jinggaotishi" />,
+                  style: { padding: 16, borderRadius: 8 }
+                })
+               return false
+              }
+            }
+
+          }
+
+        } else {
+          return false
+        }
+
+      } catch (error) {
+        console.log({ error });
+      }
+    }
+  ]
+};
+
+
+
+export type menuDataItemType = {
+  path: string,
+  name: string,
+  icon: any,
+  component?: string,
+  softUrl?: string, // 帆软url
+  children?: menuDataItemType[]
+}
+
+// 将服务端获取的菜单 icon 字符串映射为对应的 icon Dom
+const mappingIcon = (menuData: menuDataItemType[]) => {
+  if (menuData.length == 0) {
+    return [
+      {
+        path: '',
+        name: '',
+        icon: '',
+        component: './404',
+      }
+    ]
+  }
+  const mappingMenu: menuDataItemType[] = menuData.map(item => ({
+    ...item,
+    icon: item.icon && iconEnum[item.icon],
+    children: item.children ? mappingIcon(item.children) : [],
+  }));
+  return mappingMenu;
+};
+
+
+
+const imgNode = (props: any) => {
+  return <IconFont type='icon-shouye' {...props} />
+};
+const fileIcon = () => {
+  return <IconFont type='icon-jixiaoguanli' />
+};
+
+const setting = () => {
+  return <IconFont type='icon-xitongshezhi' />
+};
+
+const secondaryDistribute = () => {
+  return <IconFont type='icon-ercifenpei' />
+};
+
+const reportCheck = () => {
+  return <IconFont type='icon-baobiaochaxun' />
+};
+
+
+
+
+export function patchClientRoutes({ routes }: { routes: any }) {
+
+  const treeLoop = (treeData: any) => {
+
+    if (treeData.routes) {
+      const paths = [...new Array(10).keys()].map((a, index) => ({
+        path: `${treeData.path == '/' ? '' : treeData.path}/reports/${index}`,
+        exact: true,
+        element: <Static />,
+      }));
+
+      const lanhuPagePaths = [...new Array(5).keys()].map((a, index) => ({
+        path: `${treeData.path == '/' ? '' : treeData.path}/static/${index}`,
+        exact: true,
+        element: <Static />,
+      }));
+
+      paths.forEach((a: any) => {
+        treeData.routes.push(a);
+      });
+
+      lanhuPagePaths.forEach((a: any) => {
+        treeData.routes.push(a);
+      });
+
+    }
+    if (treeData.routes && treeData.routes.length > 0) {
+      treeData.routes.forEach((a: any) => {
+        treeLoop(a);
+      })
+    }
+
+  }
+
+  treeLoop(routes[0]);
+
+  console.log({routes});
+
+}
+
+
+//布局配置
+
+
+export const layout = ({ initialState, setInitialState }: { initialState: any, setInitialState: any }) => {
+
+  const { isCollapsed } = initialState;
+
+  const location = useLocation();
+  const currentPath = location.pathname;
+  const isMenuClickRef = useRef(false);
+
+  const onCollapse = (isCollapsed: boolean): void => {
+    setInitialState({ ...initialState, isCollapsed }).then();
+  };
+
+  const checkPermission = (path: string) => {
+    const { memuData = [] } = initialState || {};  
+    // 检查是否为无访问权限页面
+    if (path === '/noAccess') {
+      return true;
+    }
+  
+    // 检查访问权限
+    const hasAccess = checkAccess([...memuData], path);
+  
+    return hasAccess;
+  };
+  
+  
+
+
+  // useEffect(() => {
+  //   return history.listen((location: any) => {
+  //     if (!isMenuClickRef.current) {
+  //       const path = removePrefix(location.location.pathname, '/CostAccountingSys');
+  //       const hasPermission = checkPermission(path);
+  //       console.log({ hasPermission, path });
+  
+  //       // 如果hasPermission为true,确保不会跳转到/noAccess
+  //       if (!hasPermission && path !== '/noAccess') {
+  //         history.push('/noAccess');
+  //       }
+  //     }
+  //     isMenuClickRef.current = false; // 重置状态
+  //   });
+  // }, [initialState]);
+  
+  
+
+
+  return {
+    
+    menuHeaderRender: false,
+    disableMobile: true,
+    onPageChange: () => { },
+    collapsedButtonRender: () => {
+      return (
+        <div style={{
+          position: 'absolute', zIndex: 10, right: 17, bottom: 12,
+          display: 'flex', justifyContent: 'center', alignItems: 'center',
+          cursor: 'pointer', width: 24, height: 24
+        }} onClick={
+          () => {
+            onCollapse(isCollapsed ? false : true);
+          }
+        }><IconFont className='menuCollapseIcon' type={isCollapsed ? 'icon-celanzhankai' : 'icon-celanshouqi'} /></div>
+      )
+    },
+    collapsed: isCollapsed,
+    // fixSiderbar:false,
+    menuItemRender:(item: { path: any; }, dom: string | number | boolean | ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal | null | undefined) => {
+      return (
+        <a
+          onClick={() => {
+            isMenuClickRef.current = true; // 标记为菜单点击
+            history.push(`${item.path}`);
+          }}
+        >
+          {dom}
+        </a>
+      );
+    },
+    menu:{
+      request:async ()=>{
+        const userData = localStorage.getItem('userData');
+        const currentSelectedTab = localStorage.getItem('currentSelectedTab');
+        if (currentSelectedTab) {
+          const { menuId } = JSON.parse(currentSelectedTab);
+          const systemId = menuId;
+          const data: any[] = await getPlatformMenu(systemId);
+          if (data) {
+            function processMenuItem(item: any) {
+              if (!item) return null;
+
+              let newItem = { ...item };  // 深拷贝当前节点
+
+              // 如果是叶子节点
+              if (!item.children || item.children.length === 0) {
+                let queryParams = [];
+
+                if (newItem.softUrl) {
+                  queryParams.push(`softUrl=${newItem.softUrl}`);
+                }
+
+                if (newItem.youshuUrl) {
+                  queryParams.push(`youshuUrl=${newItem.youshuUrl}`);
+                }
+
+                if (queryParams.length > 0) {
+                  newItem.path = `${newItem.path}?${queryParams.join('&')}`;
+                }
+
+                return newItem; // 返回新的叶子节点
+              }
+
+              // 否则,递归处理子节点
+              newItem.children = newItem.children.map(processMenuItem);
+              return newItem;
+            }
+
+            function processMenu(menuArray: any[]) {
+              if (!menuArray) return [];
+              return menuArray.map(processMenuItem);
+            }
+
+            const _menu = processMenu(data);
+
+            setInitialState((t: any) => ({ ...t, spacicalPageParamsType: _menu, memuData: data, userData: JSON.parse(userData as string) }));
+
+
+            function addIconToPath(node: any, paths: string[]) {
+              if (paths.includes(node.path)) {
+                if (node.path == '/home') {
+                  node.icon = <Icon component={imgNode} />;
+                }
+                if (node.path == '/baseSetting') {
+
+                  node.icon = <Icon component={setting} />;
+                }
+                if (node.path == '/monthlyInfoSearch') {
+                  node.icon = <Icon component={() => <IconFont type='icon-yueduxinxicaiji' />} />;
+                }
+                if (node.path == '/costAccounting') {
+                  node.icon = <Icon component={() => <IconFont type='icon-jixiaoguanli' />} />;
+                }
+                if (node.path == '/reportExport') {
+                  node.icon = <Icon component={() => <IconFont type='icon-jixiaoguanli' />} />;
+                }
+                if (node.path == '/costLibraryManagement') {
+                  node.icon = <Icon component={() => <IconFont type='icon-chengbenkuguanli' />} />;
+                }
+                if (node.path == '/static') {
+                  node.icon = <Icon component={() => <IconFont type='icon-baobiaochaxun' />} />;
+                }
+              }
+              if (node.children) {
+                node.children.forEach((child: any) => addIconToPath(child, paths));
+              }
+            }
+
+            _menu.forEach((item: any) => {
+              addIconToPath(item, ['/home', '/baseInfoMana', '/costAccounting', '/monthlyInfoSearch', '/static', '/reportExport', '/costLibraryManagement', '/baseSetting']);
+            });
+
+            const { newTree, firstLeafNode, firstLeafNodePath } = transformTree(_menu);
+            return newTree
+
+          }
+        }
+      }
+    },
+    menuRender: (props: any, defaultDom: any) => {
+
+      return (
+        <ResizableContainer width={isCollapsed ? 64 : 200} minWidth={0} maxWidth={600} height={'calc(100vh - 47px)'}>
+          <div style={{ height: '100%', background: '#fff', position: 'relative' }}>
+            <div className='menuWrapper' style={{ height: 'calc(100% - 40px)', overflowY: 'scroll', overflowX: 'hidden' }}>
+              {defaultDom}
+            </div>
+
+            <div style={{
+              position: 'absolute', zIndex: 10, right: 17, bottom: 9,
+              display: 'flex', justifyContent: 'center', alignItems: 'center',
+              cursor: 'pointer', width: 24, height: 24
+            }} onClick={
+              () => {
+                onCollapse(isCollapsed ? false : true);
+              }
+            }><IconFont className='menuCollapseIcon' type={isCollapsed ? 'icon-celanzhankai' : 'icon-celanshouqi'} /></div>
+          </div>
+        </ResizableContainer>
+      );
+    },
+    contentStyle: {
+      // border: '16px solid #F7F9FC',
+      //height: '94.5vh',  //以去除顶部导航高度
+      borderRadius: '22px',
+      background: '#F7F9FC',
+      height: 'calc(100vh - 48px)'
+      // overflow:'scroll',
+      // margin:'20px 20px'
+    },
+  };
+};

+ 0 - 0
src/assets/.gitkeep


+ 57 - 0
src/authWrapper.tsx

@@ -0,0 +1,57 @@
+
+// src/components/AuthWrapper.tsx
+import React, { useEffect, useState } from 'react';
+import { history, useModel } from 'umi';
+import type { IRoute } from 'umi';
+import { Outlet } from '@umijs/max';
+
+// 权限检查函数
+function checkAccess(menu: IRoute[], pathname: string): boolean {
+  for (const item of menu) {
+    if (item.path === pathname) {
+      return true;
+    }
+    if (item.children) {
+      const hasAccess = checkAccess(item.children, pathname);
+      if (hasAccess) {
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+function removePrefix(input: string, prefix: string): string {
+  if (input.startsWith(prefix)) {
+    return input.slice(prefix.length);
+  }
+  return input;
+}
+
+// 权限包装组件
+const AuthWrapper: React.FC = (props) => {
+  const { initialState } = useModel('@@initialState');
+  const [loading, setLoading] = useState(true);
+  const [dataLoaded, setDataLoaded] = useState(false);
+
+  useEffect(() => {
+    if (!dataLoaded) {
+      const menu = initialState?.memuData ?? [];
+      if (menu.length > 0) {
+        setDataLoaded(true);
+        const { pathname } = history.location;
+        const hasAccess = checkAccess(menu, removePrefix(pathname, '/CostAccountingSys'));
+        // console.log({ hasAccess, menu, pathname });
+        if (!hasAccess) {
+          history.push('/noAccess');
+        }
+        setLoading(false);
+      }
+    }
+  }, [initialState, dataLoaded]);
+
+  return loading ? <>loading...</> : <Outlet />;
+};
+
+export default AuthWrapper;
+export { checkAccess };

+ 4 - 0
src/components/Guide/Guide.less

@@ -0,0 +1,4 @@
+.title {
+  margin: 0 auto;
+  font-weight: 200;
+}

+ 23 - 0
src/components/Guide/Guide.tsx

@@ -0,0 +1,23 @@
+import { Layout, Row, Typography } from 'antd';
+import React from 'react';
+import styles from './Guide.less';
+
+interface Props {
+  name: string;
+}
+
+// 脚手架示例组件
+const Guide: React.FC<Props> = (props) => {
+  const { name } = props;
+  return (
+    <Layout>
+      <Row>
+        <Typography.Title level={3} className={styles.title}>
+          欢迎使用 <strong>{name}</strong> !
+        </Typography.Title>
+      </Row>
+    </Layout>
+  );
+};
+
+export default Guide;

+ 2 - 0
src/components/Guide/index.ts

@@ -0,0 +1,2 @@
+import Guide from './Guide';
+export default Guide;

+ 23 - 0
src/components/KCIMDrawerForm/index.tsx

@@ -0,0 +1,23 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-10-07 10:34:43
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:38:23
+ * @FilePath: /MediResourceManaSys/src/components/KCIMDrawerForm/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import { DrawerForm, DrawerFormProps } from "@ant-design/pro-components";
+
+import './style.less';
+
+
+const KCIMDrawerForm: React.FC<DrawerFormProps> = (props) => {
+    // 在这里可以添加任何自定义逻辑或样式
+
+    return <DrawerForm {...props} />;
+};
+
+
+export default KCIMDrawerForm;
+

+ 20 - 0
src/components/KCIMDrawerForm/style.less

@@ -0,0 +1,20 @@
+
+
+
+.mrms-ant-drawer {
+      .mrms-ant-drawer-content-wrapper {
+           .mrms-ant-drawer-content {
+                .mrms-ant-drawer-wrapper-body {
+                       .mrms-ant-drawer-footer {
+                             .mrms-ant-space-item {
+                                  .mrms-ant-btn {
+                                       height: 24px !important;
+                                       padding: 0 11px;
+                                       border-radius: 4px !important;
+                                  }
+                             }
+                       }
+                }
+           }
+      }
+}

+ 272 - 0
src/components/KCIMLeftList/index.tsx

@@ -0,0 +1,272 @@
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+import Dropdown from '@ant-design/pro-table/es/components/Dropdown';
+import { Input, Tooltip, TreeProps, Empty } from 'antd'
+import { Key, useEffect, useState } from 'react';
+import DirectoryTree from 'antd/es/tree/DirectoryTree';
+import { DataNode } from 'antd/es/tree';
+
+import './style.less';
+
+
+import expandedIcon from '../../../static/treenode_open.png';
+import closeIcon from '../../../static/treenode_collapse.png';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+interface ListItem {
+    name: string,
+    subText: string,
+    [key: string]: any
+}
+
+interface TreeNodeItem {
+    [key: string]: any
+}
+
+export interface KCIMLeftListProps {
+    dataSource?: any[],
+    searchKey: string,
+    placeholder?: string,
+    listType?: 'list' | 'tree',
+    icon?: string,
+    contentH?: number|string,
+    rowKey?: string,
+    fieldNames?: { title?: string, key?: string, children?: string },
+    onChange?: (selectedItem: ListItem) => void
+}
+
+
+function searchTreeAndKeepHierarchy(tree: any[], keyword: string, searchKey: string, children: string) {
+    function search(node: any) {
+        // 深度复制节点,避免修改原始树
+        let newNode = { ...node };
+        if (node[`${searchKey}`].includes(keyword)) {
+            // 如果节点名称包含关键字,返回整个节点及其子节点
+            return newNode;
+        } else if (node[`${children}`] && node[`${children}`].length > 0) {
+            // 如果当前节点不匹配但有子节点,递归搜索子节点
+            let filteredChildren = node[`${children}`].map(search).filter((child: any) => child !== null); // 递归并过滤掉null
+            if (filteredChildren.length > 0) {
+                // 如果有子节点匹配,只返回匹配的子节点
+                newNode[`${children}`] = filteredChildren;
+                return newNode;
+            }
+        }
+        // 如果节点和其子节点都不匹配,返回null
+        return null;
+    }
+
+    // 对树的每个根节点进行搜索,并过滤掉不匹配的节点
+    return tree.map(search).filter(node => node !== null);
+}
+
+
+
+const findFirstLeafNodeWithParents: any = (node: any, children: string) => {
+    // 定义一个内部递归函数来处理节点和跟踪父节点
+    const findNode: any = (currentNode: any, parents: any[]) => {
+        // 打印当前节点信息,用于调试
+        // console.log({ currentNode });
+
+        // 检查当前节点是否为叶子节点(无子节点或子节点为空数组)
+        if (!currentNode[children] || currentNode[children].length === 0) {
+            return { leafNode: currentNode, parents };
+        }
+
+        // 添加当前节点到父节点列表
+        parents.push(currentNode);
+
+        // 递归查找第一个子节点的第一个叶子节点
+        return findNode(currentNode[children][0], parents);
+    };
+
+    // 调用内部函数,初始父节点列表为空
+    return findNode(node, []);
+}
+
+
+
+
+
+export const KCIMLeftList = (props: KCIMLeftListProps) => {
+
+    const { searchKey, placeholder = '请输入', onChange, listType = 'list', dataSource: data = [], icon, contentH = 500, rowKey = 'id', fieldNames = { title: 'title', key: 'key', children: 'children' } } = props;
+    
+    const [dataSource, set_dataSource] = useState<ListItem[] | TreeNodeItem[]>([]);
+    const [showList, set_showList] = useState<ListItem[] | TreeNodeItem[]>([]);
+    const [currentSelected, set_currentSelected] = useState<undefined | any>(undefined);
+    const [expandedKeys, setExpandedKeys] = useState<React.Key[]>([]);
+    const [autoExpandParent, setAutoExpandParent] = useState(true);
+    const [defaultSelectedKeys, set_defaultSelectedKeys] = useState<Key[]>([]);
+
+
+
+
+    const onSelect: TreeProps['onSelect'] = (selectedKeys, info) => {
+        // console.log('selected', selectedKeys, info);
+        const { node } = info;
+        if (!node[fieldNames.children as keyof typeof node] || (node[fieldNames.children as keyof typeof node] as any[]).length === 0) {
+            set_currentSelected(node);
+        }
+        
+    };
+
+    const onExpand = (newExpandedKeys: React.Key[]) => {
+        setExpandedKeys(newExpandedKeys);
+        setAutoExpandParent(false);
+    };
+
+
+    useEffect(() => {
+        onChange && onChange(currentSelected);
+    }, [currentSelected])
+
+    useEffect(() => {
+        if (showList.length > 0) {
+            if (listType == 'list') {
+                set_currentSelected(showList[0]);
+            }
+            if (listType == 'tree') {
+                const result = findFirstLeafNodeWithParents(showList[0], fieldNames.children ? fieldNames.children : 'children');
+                // console.log({ result });
+        
+                setExpandedKeys([...(result.parents.map((parent:any) => parent[fieldNames.key as string]))]);
+                set_currentSelected(result.leafNode);
+                set_defaultSelectedKeys([result.leafNode[`${fieldNames.key}`]]);
+            }
+
+        } else {
+            set_currentSelected(undefined);
+        }
+    }, [showList]);
+
+
+    useEffect(() => {
+        set_dataSource([...data]);
+        set_showList([...data]);
+    }, [data]);
+
+
+    return (
+        <div className="KCIMLeftList">
+            <div className='toolbar'>
+                <Input placeholder={placeholder} allowClear autoComplete='off'
+                    suffix={
+                        <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />
+                    }
+                    // style={{ width: 156 }}
+                    onChange={(e) => {
+                        if (listType == 'list') {
+                            const result = dataSource.filter(item => item[`${searchKey}`].indexOf(e.target.value) != -1);
+                            set_showList(result);
+                        }
+                        if (listType == 'tree') {
+                            const result = searchTreeAndKeepHierarchy(dataSource, e.target.value, searchKey, fieldNames.children as string);
+                            set_showList(result);
+                        }
+
+                    }}
+
+                />
+                {/* <UpDataActBtn key={'act'} record={undefined} type='ADD_LEFTDATA' /> */}
+
+            </div>
+            <div className='wrap' style={{ height: contentH, overflowY: 'scroll' }}>
+                {
+                    listType == 'list' && showList.map((item, index) => {
+                        return (
+                            <div className={currentSelected ? currentSelected[`${rowKey}`] == item[`${rowKey}`] ? 'list on' : 'list' : 'list'}
+                                key={index}
+                                onClick={() => {
+                                    set_currentSelected(item);
+
+                                    // _currentSelectedType = item;
+                                }}
+                            >
+                                <img className='icon' src={icon ? icon : require('../../../static/departmentIcon.png')} alt="" />
+                                <div className='content'>
+                                    <Tooltip title={item.subText} >
+                                        <div className='name'>{item.name}</div>
+                                        <div className='sub'>{item.subText}</div>
+                                    </Tooltip>
+                                </div>
+
+                                {/* <Dropdown menu={{ items: moreItems }} placement="bottom" onOpenChange={(bool) => { bool && set_currentEditLeftData(item) }}>
+                                        <div className='more'>
+                                            <img src={require('../../../../../static/more_point_gray.png')} alt="" />
+                                        </div>
+                                    </Dropdown> */}
+                            </div>
+                        )
+                    })
+                }
+
+                {
+                    (!showList || showList.length == 0) && (
+                        <div><Empty image={Empty.PRESENTED_IMAGE_SIMPLE} /></div>
+                    )
+                }
+
+                {
+                    listType == 'tree' && dataSource.length > 0 && currentSelected && defaultSelectedKeys.length > 0 && (
+                        <DirectoryTree
+                            className='KC-DirectoryTree'
+                            fieldNames={fieldNames}
+                            rootStyle={{ height: '100%', paddingBottom: 50, overflowY: 'scroll', overflowX: 'hidden' }}
+                            onSelect={onSelect}
+                            onExpand={onExpand}
+                            expandedKeys={expandedKeys}
+                            autoExpandParent={autoExpandParent}
+                            selectedKeys={[currentSelected[`${fieldNames.key}`]]}
+                            blockNode={true}
+                            icon={() => null}
+                            // titleRender={
+                            //     (nodeData: any) => {
+                            //         const strTitle = nodeData.name as string;
+                            //         const index = strTitle.indexOf(searchValue);
+                            //         const beforeStr = strTitle.substring(0, index);
+                            //         const afterStr = strTitle.slice(index + searchValue.length);
+                            //         const title =
+                            //             index > -1 ? (
+                            //                 <span>
+                            //                     {beforeStr}
+                            //                     <span className="site-tree-search-value" style={{ color: 'red', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>{searchValue}</span>
+                            //                     {afterStr}
+                            //                 </span>
+                            //             ) : (
+                            //                 <span className='strTitle'>{strTitle}</span>
+                            //             );
+                            //         return <div style={{
+                            //             display: 'flex', flexDirection: 'row',
+                            //             width: '100%',
+                            //             justifyContent: 'flex-start', alignItems: 'center', height: 32,
+                            //             borderRadius: '4px',
+                            //             overflow: 'hidden',
+                            //             color: '#17181A',
+                            //             textOverflow: 'ellipsis',
+                            //             whiteSpace: 'nowrap'
+
+                            //         }}>{title}</div>
+                            //     }
+                            // }
+                            // defaultSelectedKeys={['B0100']}
+                            treeData={showList as unknown as DataNode[]}
+                            // treeData={treeDataNew}
+                            switcherIcon={(props: any) => {
+                                const { expanded } = props;
+                                return <IconFont style={{fontSize:16,position:'relative',top:2}} type={expanded?'icon-shouqi1':'icon-zhankai1'} />
+                            }}
+                        />
+                    )
+                }
+            </div>
+
+        </div>
+    )
+}

+ 138 - 0
src/components/KCIMLeftList/style.less

@@ -0,0 +1,138 @@
+
+
+
+.KCIMLeftList {
+    border-radius: 4px;
+    padding:8px 0;
+    width: 100%;
+    height:100%;
+    overflow-y: hidden;
+    // padding-top: 16px;
+    // border: 1px solid #DAE2F2;
+    .toolbar {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-between;
+        align-items: center;
+        padding: 0 16px;
+  
+        .add {
+          cursor: pointer;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          width: 24px;
+          height: 24px;
+          background: #FAFCFF;
+          border-radius: 4px;
+          border: 1px solid #DAE2F2;
+  
+          &>img {
+            width: 16px;
+            height: 16px;
+          }
+        }
+      }
+  
+      .wrap {
+        margin-top: 12px;
+        .mrms-ant-tree.mrms-ant-tree-directory .mrms-ant-tree-treenode-selected:hover::before,
+        .mrms-ant-tree.mrms-ant-tree-directory .mrms-ant-tree-treenode-selected::before {
+            border-radius: 4px;
+            background: rgb(240 242 245 / 100%);
+        }
+
+        .bms-ant-tree.bms-ant-tree-directory .bms-ant-tree-treenode .bms-ant-tree-node-content-wrapper.bms-ant-tree-node-selected {
+            font-weight: bold;
+        }
+
+        .KC-DirectoryTree {
+          padding: 0 16px;
+          // .mrms-ant-tree-treenode-selected {
+          //      .mrms-ant-tree-title {
+          //         color:#17181A !important;
+          //         font-weight: 500 !important;
+          //      }
+          // }
+
+          
+        }
+
+        .mrms-ant-tree.mrms-ant-tree-directory .mrms-ant-tree-treenode .mrms-ant-tree-node-content-wrapper.mrms-ant-tree-node-selected {
+          color:#17181A !important;
+          font-weight: 500 !important;
+        }
+  
+        .list {
+          cursor: pointer;
+          height: 48px;
+          border-radius: 4px;
+          background: #FFFFFF;
+          display: flex;
+          padding-left: 8px;
+          padding-right: 8px;
+          flex-direction: row;
+          justify-content: space-between;
+          align-items: center;
+          margin-bottom: 4px;
+  
+          .icon {
+            width: 25px;
+            height: 25px;
+          }
+  
+          .content {
+            width: 87%;
+            padding-left: 7px;
+  
+            .name {
+              height: 15px;
+              font-size: 14px;
+              font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+              font-weight: 500;
+              color: #17181A;
+              line-height: 15px;
+              margin-bottom: 4px;
+              overflow: hidden;
+              white-space: nowrap;
+              text-overflow: ellipsis;
+            }
+  
+            .sub {
+              height: 13px;
+              font-size: 12px;
+              font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+              font-weight: 400;
+              color: #7A8599;
+              line-height: 13px;
+            }
+          }
+  
+          .more {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            cursor: pointer;
+            width: 16px;
+            height: 16px;
+            border-radius: 4px;
+            background: #FFFFFF;
+  
+            &>img {
+              width: 100%;
+              height: 100%;
+            }
+          }
+  
+          &.on {
+            font-weight: 500;
+            color: #17181A;
+            background: #F0F2F5;
+          }
+  
+          &:last-child {
+            margin-bottom: 0;
+          }
+        }
+      }
+}

+ 43 - 0
src/components/KCIMModalForm/index.tsx

@@ -0,0 +1,43 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-02-09 15:47:28
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:38:57
+ * @FilePath: /MediResourceManaSys/src/components/KCIMModalForm/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import { ModalForm, ModalFormProps } from "@ant-design/pro-components";
+import { FormLayout } from "antd/es/form/Form";
+import { useState } from "react";
+
+
+export type KCIMModalFormProps = ModalFormProps & {
+
+}
+
+
+const LAYOUT_TYPE_HORIZONTAL = 'horizontal';
+
+const KCIMModalForm = (props: KCIMModalFormProps) => {
+
+    const { children, ...rest } = props;
+    const [formLayoutType, setFormLayoutType] = useState<FormLayout>('vertical');
+
+    const [grid, setGrid] = useState(true);
+
+    return (
+        <ModalForm {...rest}
+            layout={formLayoutType}
+            grid={grid}
+            rowProps={{
+                gutter: [16, formLayoutType === 'inline' ? 16 : 0],
+            }}
+        >
+            {children}
+        </ModalForm>
+    )
+}
+
+
+export default KCIMModalForm

+ 102 - 0
src/components/KCIMPageContainer/index.tsx

@@ -0,0 +1,102 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-08-11 18:00:37
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:39:07
+ * @FilePath: /MediResourceManaSys/src/components/KCIMPageContainer/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+import { PageContainer, PageContainerProps } from '@ant-design/pro-components';
+import { useModel } from '@umijs/max';
+import { useState } from 'react';
+import './style.less';
+import '../../utils/zhongtaiA'
+
+const IconFont = createFromIconfontCN({
+  scriptUrl: '',
+});
+
+
+export type KCIMPagecontainerPropType = PageContainerProps & {
+
+}
+
+interface MenuItem {
+  function: any;
+  path: string;
+  name: string;
+  description?: string;
+  children?: MenuItem[];
+}
+
+function findMenuItem(menu: MenuItem[], path: string): MenuItem | undefined {
+  for (let i = 0; i < menu.length; i++) {
+    if (`/budgetManaSystem${menu[i].path}` === path) {
+      return menu[i];
+    } else if (menu[i].children) {
+      let found = findMenuItem(menu[i].children as MenuItem[], path);
+      if (found) return found;
+    }
+  }
+}
+
+const KCIMPagecontainer = (props: KCIMPagecontainerPropType) => {
+
+  const { children, header, ...rest } = props;
+  
+  const { initialState } = useModel('@@initialState');
+
+  const [open,set_open] = useState(false);
+
+  let description: undefined | string = undefined;
+
+  if (initialState) {
+    const thisPageData = findMenuItem(initialState.memuData, location.pathname);
+    description = thisPageData?.description
+  }
+
+
+  return (
+    <PageContainer {...rest}
+      header={{
+        ...header,
+        breadcrumb: {},
+        style: { padding: 0, },
+        childrenContentStyle: { padding: 0 }
+      }}
+    >
+      {children}
+      {
+        description && (
+          <div className={open?'pageHelp active':'pageHelp'} style={{ position: 'fixed', bottom: 24, right: 24, zIndex: 999, width: 40, height: 40 }}
+             onClick={(e)=>{ 
+              e.stopPropagation();             
+               set_open(!open)
+            }}
+          >
+            <div className={open?'helpContent open':'helpContent'} onClick={(e)=>e.stopPropagation()}>
+              <div className='contentHeader'>
+                帮助中心
+                <div className='closeBtn' onClick={()=>set_open(false)}><IconFont type="iconquxiao" /></div>
+              </div>
+              <div className='content'>
+                <img src={require('../../../static/mingcijieshi.png')} alt="" />
+                <div className='container'>
+                  <div className='inner' dangerouslySetInnerHTML={{ __html: description ? description : '' }}></div>
+                </div>
+              </div>
+            </div>
+            <IconFont className='boolIcon' type="icon-bangzhuzhongxin-weixuanzhong" />
+          </div>
+        )
+      }
+
+    </PageContainer>
+  )
+}
+
+
+export default KCIMPagecontainer

+ 138 - 0
src/components/KCIMPageContainer/style.less

@@ -0,0 +1,138 @@
+
+.mrms-ant-pro-page-container {
+    
+    border: 16px solid #F7F9FC;
+}
+.mrms-ant-pro-page-container .mrms-ant-pro-page-container-warp-page-header~.mrms-ant-pro-grid-content .mrms-ant-pro-page-container-children-content {
+    padding-block: 0 !important;
+    
+}
+
+.mrms-ant-pro-page-container-children-content {
+    padding-inline: 0 !important;
+    padding-block: 0 !important;
+    padding: 0;
+}
+
+
+.mrms-ant-pro-page-container-warp-page-header~.mrms-ant-pro-grid-content .mrms-ant-pro-page-container-children-content {
+    padding-top: 16px !important;
+}
+
+
+
+.mrms-ant-page-header .mrms-ant-page-header-heading-left {
+    margin-block: 0;
+}
+
+.mrms-ant-page-header .mrms-ant-page-header-heading-title {
+    font-size: 16px;
+    height: 21px;
+    font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+    font-weight: 500;
+    color: #17181A;
+    line-height: 21px !important;
+}
+
+.pageHelp {
+    position: relative;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background: #FFFFFF;
+    box-shadow: 0px 4px 6px 0px rgba(64, 85, 128, 0.1);
+    border-radius: 8px;
+    border: 1px solid #E6EAF2;
+    cursor: pointer;
+
+    .helpContent {
+        position: absolute;
+        top:0;
+        right: 0;
+        width: 0;
+        height: 0;
+        background: #FFFFFF;
+        box-shadow: 0px 8px 16px 0px rgba(64, 85, 128, 0.1);
+        border-radius: 8px;
+        border: 1px solid #E6EAF2;
+        overflow: hidden;
+        transition: all 0.2s ease-in;
+
+        .contentHeader {
+            position: relative;
+            height: 40px;
+            background: #F7F9FC;
+            font-size: 16px;
+            font-weight: 500;
+            color: #17181A;
+            line-height: 40px;
+            padding-left: 16px;
+            border-bottom: 1px solid #E6EAF2;
+
+            .closeBtn {
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                position: absolute;
+                width: 20px;
+                height: 20px;
+                right: 12px;
+                top:12px;
+
+                .anticon {
+                    font-size: 16px;
+                    color:#17181A
+                }
+            }
+        }
+        .content {
+            padding:16px;
+            img {
+                 width: 288px;
+                 height: 80px;
+                 margin-bottom: 16px;
+            }
+            .container {
+                 height: 430px;
+                 overflow-y: scroll;
+                 .inner {
+                    font-size: 12px;
+                    font-weight: 400;
+                    color: #525966;
+                    line-height: 16px;
+                    h1 {
+                        margin-bottom: 4px;
+                    }
+                    p {
+                        line-height: 16px;
+                    }
+                 }
+            }
+        }
+
+        &.open {
+         width: 320px;
+         height: 600px;
+         top: -616px;
+        }
+    }
+
+    .anticon {
+        font-size: 27px;
+        color: #6B7A99;
+    }
+
+    &.active {
+        .anticon {
+            font-size: 27px;
+            color: #17181A;
+        }
+    }
+
+    &:hover {
+        .anticon {
+            font-size: 27px;
+            color: #17181A;
+        }
+    }
+}

+ 66 - 0
src/components/KCIMTable/index.tsx

@@ -0,0 +1,66 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-07-24 15:00:42
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:39:16
+ * @FilePath: /MediResourceManaSys/src/components/KCIMTable/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import { deepEqual } from "@/utils/tooljs"
+import { ProTable, ProTableProps } from "@ant-design/pro-components"
+import { useEffect, useState } from "react"
+
+import './style.less'
+
+export type KCIMTablePropsType<T, U, ValueType> = ProTableProps<T, U, ValueType> & {
+    
+}
+
+export const KCIMTablePageDefaultConfig = {
+    defaultPageSize:10
+}
+
+export const KCIMTable = (props: KCIMTablePropsType<any, any, any>) => {
+
+    const { params,options = false,request,columns,...rest } = props;
+    const [prevParams,set_prevParams] = useState<any>(undefined);
+
+    useEffect(()=>{
+        // console.log({'deepEqual(prevParams,params)':deepEqual(prevParams,params)});
+        // console.log({prevParams,params});
+
+        if(deepEqual(prevParams,params)){
+            
+        }else{
+              
+        }
+        set_prevParams(params);
+    
+    },[params])
+
+    
+    
+    return (
+        <ProTable
+            tableClassName="KCIMTable"
+            toolBarRender={false}
+            options={options}
+            columns={columns?.map(a=>({...a,ellipsis:true}))}
+            pagination={{
+                   showSizeChanger:true,
+                   ...KCIMTablePageDefaultConfig
+            }}
+            //locale={{emptyText:'暂无数据'}}
+            params={{...params}}
+            bordered={false}
+            search={false}
+            tableStyle={{
+                border:'1px solid #DAE2F2',
+                borderRadius:'8px'
+            }}
+            request={request?(params,sort,filter)=>request({...params},sort,filter):undefined}
+            {...rest} 
+        />
+    )
+}

+ 237 - 0
src/components/KCIMTable/style.less

@@ -0,0 +1,237 @@
+.mrms-ant-table-wrapper {
+    border-radius: 4px !important;
+
+    table {
+        border-radius: 4px !important;
+    }
+
+    .mrms-ant-table-container {
+        border-start-start-radius: 4px !important;
+        border-start-end-radius: 4px !important;
+    }
+
+    .mrms-ant-table-row-indent+.mrms-ant-table-row-expand-icon {
+        //margin-top: -2px !important;
+    }
+}
+
+.mrms-ant-table .mrms-ant-table-header {
+    border-radius: 4px !important;
+}
+
+.mrms-ant-pro-table .mrms-ant-pro-card .mrms-ant-pro-card-body {
+     padding-inline: 0 !important;
+}
+
+.mrms-ant-table-thead > tr > th {
+    padding: 8px 8px !important;
+    background: #eef3fa !important;
+
+    &::before {
+        display: none !important;
+    }
+}
+
+
+.mrms-ant-table-wrapper .mrms-ant-table-pagination.mrms-ant-pagination {
+    padding-right: 16px;
+}
+
+.mrms-ant-table-wrapper .mrms-ant-table.mrms-ant-table-bordered>.mrms-ant-table-container>.mrms-ant-table-body>table>tbody>tr>td {
+    //#dae2f2
+    border-inline-end: 1px solid #dae2f2 !important;
+}
+
+
+
+.KCIMTable {
+    .mrms-ant-table {
+        .mrms-ant-space-align-center {
+            gap: 0 !important;
+        }
+
+        .mrms-ant-table-thead {
+            .mrms-ant-table-cell {
+                border-bottom: none !important;
+                padding: 8px 8px !important;
+                //border-top:1px solid #dae2f2 !important ;
+                background: rgb(238 243 250 / 100%) !important;
+                //border-right: 1px solid  #dae2f2 !important;
+
+                a {
+                    color: #3376FE;
+                }
+
+
+                .mrms-ant-table-selection {
+                    .mrms-ant-table-selection-extra {
+                        top: 5px;
+                    }
+                }
+
+                &::before {
+                    display: none;
+                }
+
+                &:hover {
+                    background: rgb(238 243 250 / 100%) !important;
+                }
+
+                &:last-child {
+                    border-right: none;
+                }
+            }
+
+            .mrms-ant-table-cell-fix-right {
+                &:last-child {
+                    right: 0 !important;
+                }
+            }
+        }
+
+        .mrms-ant-table-tbody {
+            &>tr {
+                &.mrms-ant-table-measure-row {
+                    border: none !important;
+                    &>td {
+                        border-inline-end:none !important;
+                    }
+                }
+
+                &.mrms-ant-table-row {
+                    .mrms-ant-table-cell {
+                    
+                        font-size: 14px;
+                        font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+                        justify-content: flex-start !important;
+                        color: #17181A;
+                        padding: 8px 8px !important; 
+                        border-bottom: none !important;
+                        border-top: 1px solid rgb(218 226 242) !important;
+
+                        &.mrms-ant-table-cell-with-append {
+                            .mrms-ant-table-row-expand-icon {
+                                  border-radius: 4px !important;
+                                  border: 1px solid #DAE2F2 !important;
+
+                                  &:hover {
+                                    color: #3377ff;
+                                    border: 1px solid #3377ff !important;
+                                  }
+                            }
+                        }
+    
+                        &>.mrms-ant-typography {
+                            line-height:unset;
+                        }
+    
+                        &.mrms-ant-table-cell-with-append {
+                            .mrms-ant-table-row-expand-icon {
+                                 
+                            }
+                        }
+    
+                        // &:hover {
+                        //     border-radius: 0 !important;
+                        //     background: #FAFBFC !important;
+    
+                        // }
+                    }
+                }
+
+
+
+                &.mrms-ant-table-row-selected {
+                    .mrms-ant-table-cell {
+                        border-radius: 0 !important;
+                    }
+                    &:hover {
+                        background: #bae0ff !important;
+                    }
+                }
+
+                &:last-child>td {
+                    border-bottom: none !important;
+                }
+            }
+        }
+
+        .mrms-ant-table-summary {
+            &>tr>td {
+                text-align: left !important;
+                padding: 12px 8px !important;
+                border-top: 1px solid #dae2f2 !important;
+            }
+        }
+
+       
+
+        &.mrms-ant-table-bordered {
+            .mrms-ant-table-container {
+                border-left: none !important;
+                .mrms-ant-table-thead {
+                    &>tr {
+                        &>th {
+                            border-right: 1px solid #dae2f2 !important;
+                            border-bottom: 1px solid #dae2f2 !important;
+                            border-top: none !important;
+
+                            &.mrms-ant-table-cell-scrollbar {
+                                border: none !important;
+                            }
+
+                            &::after {
+                                border: none !important;
+                            }
+                        }
+
+                        &:last-child {
+                            &>th {
+                                border-top:none !important;
+                            }
+                        }
+                    }
+                }
+                .mrms-ant-table-tbody{
+                    tr > td {
+                        border-right: 1px solid #dae2f2 !important;
+                        &::after {
+                            border: none !important;
+                        }
+                    }
+                }
+                
+            }
+        }
+    }
+    .mrms-ant-pagination {
+        padding: 7px 0;
+        margin: 0 !important;
+        border-top: 1px solid #dae2f2 !important;
+
+        .mrms-ant-pagination-item-active {
+            font-weight: 600;
+            background-color: #37F !important;
+            border-color: #37F !important;
+        }
+    }
+
+    .mrms-ant-pagination .mrms-ant-pagination-item-active a {
+        color: #fff !important;
+    }
+
+
+}
+
+.mrms-ant-table-wrapper .mrms-ant-table-container table>thead>tr:first-child th:first-child {
+    border-start-start-radius: 4px !important;
+}
+
+.mrms-ant-table-wrapper .mrms-ant-table-container table>thead>tr:first-child th:last-child {
+    border-start-end-radius: 4px !important;
+}
+
+.mrms-ant-empty-normal {
+    margin-block: 80px !important;
+    color: rgb(0 0 0 / 25%);
+}

+ 194 - 0
src/components/KCIMTableSelector/index.tsx

@@ -0,0 +1,194 @@
+import React, { Key, useEffect, useState } from "react";
+
+import { KCIMTable } from "@/components/KCIMTable";
+import { createFromIconfontCN } from "@ant-design/icons";
+
+
+import { ModalForm, ProColumns, ProFormSelect, ProFormText } from "@ant-design/pro-components";
+
+import { set } from "lodash";
+import './style.less'
+
+interface TableSelecterProps {
+    record: any
+}
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+
+const TableSelecter = (
+    { 
+        record, 
+        open, 
+        title, 
+        columns,
+        onVisibleChange,
+        rowKey = 'id',
+        request, 
+        tableData,
+        onFinish,
+        defaultSelectedKeys,
+    }: 
+    {
+        record: any,
+        columns:ProColumns[],
+        open: boolean,
+        title: string,
+        tableData?:any[],
+        onVisibleChange: (bool: boolean) => void,
+        defaultSelectedKeys: Key[],
+        rowKey?: string,
+        request?: () => Promise<any>,
+        onFinish?: (selectedKeys: React.Key[], selectedRows: any[]) => void
+    }
+) => {
+
+
+    const Table = React.forwardRef(({ }: TableSelecterProps, ref) => {
+
+        const [datasource, set_datasource] = useState<any[]>([]);
+        const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+        const [selectedRows, set_selectedRows] = useState<any[]>([]);
+        const [showList, set_showList] = useState<any[]>([]);
+        const [filter, set_filter] = useState<undefined | any>(undefined);
+        const [code, set_code] = useState<undefined | any>(undefined);
+        const [keyword, set_keyword] = useState<string | undefined>(undefined);
+
+
+        const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any) => {
+            setSelectedKeys([...newSelectedRowKeys]);
+            set_selectedRows([...selectedRows]);
+
+        };
+
+        const saveHandle = async () => {
+            const selectedRowkeys = selectedRows.map((a) => a[`${rowKey}`]);
+            const rows = datasource.filter((a) => selectedRowkeys.includes(a[`${rowKey}`]));
+            onFinish && onFinish(selectedKeys, rows);
+        }
+
+        const getTableData = async () => {
+
+            const resp = !tableData&&request?await request():tableData;
+
+            let selectedCodes: string[] = [];
+            let selectedRows: any[] = [];
+            if (resp) {
+                console.log({defaultSelectedKeys});
+                const data = resp.map((a: any) => {
+                    if (defaultSelectedKeys.includes(a[`${rowKey}`])) {
+                        selectedCodes.push(a[`${rowKey}`]);
+                        selectedRows.push(a);
+                        //const needItem = record.departList.filter((b: any) => a[`${rowKey}`] == b[`${rowKey}`]);
+
+                        return {
+                            ...a,
+                            //flag: needItem[0].isManager ? true : false
+                        }
+                    } else {
+                        return a
+                    }
+                });
+
+                set_showList(data);
+                set_selectedRows([...selectedRows]);
+                setSelectedKeys([...selectedCodes]);
+                set_datasource([...datasource, ...data]);
+            }
+
+
+            return Promise.resolve([]);
+        }
+
+        useEffect(() => {
+            // console.log({code, keyword});
+            const result = datasource.filter((a) => {
+                return a.name ? a.name.indexOf(keyword) != -1 : false
+            });
+
+            set_showList([...result]);
+        }, [keyword]);
+
+        // useEffect(()=>{
+        //     (record)&&getTableData(record)
+        // },[record])
+
+        useEffect(()=>{
+           getTableData()
+        },[])
+
+        return (
+            <div >
+                <div className="filter" style={{ display: 'flex', flexDirection: 'row', marginBottom: 8 }}>
+                    <ProFormText noStyle placeholder={'请输入'}
+                        fieldProps={{
+                            suffix: <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />,
+                            onChange: (e) => {
+                                if (e.target.value.length != 0) {
+                                    set_keyword(e.target.value);
+                                } else {
+                                    set_keyword('');
+                                }
+                            }
+                        }}
+                    />
+                </div>
+
+                <KCIMTable columns={columns}
+                    options={{
+                        density: true,
+                        setting: {
+                            listsHeight: 100,
+                        },
+                    }}
+                    rowKey={rowKey}
+                    scroll={{ y: 400 }}
+                    tableAlertRender={false}
+                    rowSelection={{
+                        // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
+                        // 注释该行则默认不显示下拉选项
+                        // selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
+                        selectedRowKeys: selectedKeys,
+                        onChange: onSelectChange,
+                    }}
+                    pagination={{ showTitle: false, showSizeChanger: false, simple: true }}
+                    dataSource={showList}
+
+                />
+                <div className='footer'>
+                    <span className='cancel' onClick={() => close()}>取消</span>
+                    <span className='ok' onClick={() => saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}</span>
+                </div>
+            </div>
+
+        )
+    });
+
+    const close = () => {
+        onVisibleChange && onVisibleChange(false);
+    }
+
+
+    return (
+        <ModalForm className="TableSelecter" title={title} width={400} submitter={{
+            render: false
+        }} open={open} modalProps={{
+            closable: false,
+        }}>
+            <Table
+                // ref={tableSelecterRef}
+                record={undefined}
+            ></Table>
+        </ModalForm>
+    )
+
+}
+
+
+
+
+export default TableSelecter

+ 33 - 0
src/components/KCIMTableSelector/style.less

@@ -0,0 +1,33 @@
+.TableSelecter {
+
+    .mrms-ant-modal-footer {
+      display: none !important;
+    }
+    
+    .footer {
+         display: flex;
+         flex-direction:row;
+         justify-content: flex-end;
+         margin-top: 15px;
+         span {
+             display: inline-block;
+             width: 56px;
+             height: 24px;  
+             font-size: 14px;
+             line-height: 23px;
+             text-align: center;
+             border-radius: 4px;
+             cursor: pointer;
+  
+             &.ok {
+                 color: #FFFFFF;
+                 background:#3377FF;
+                 margin-left: 8px;
+             }
+             &.cancel {
+                 border: 1px solid #DAE2F2;
+             }
+         }
+  
+    }
+  }

+ 78 - 0
src/components/KCIMUpload/index.tsx

@@ -0,0 +1,78 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-07-24 15:00:42
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:39:32
+ * @FilePath: /MediResourceManaSys/src/components/KCIMUpload/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+import React, { useState } from 'react';
+import { InboxOutlined } from '@ant-design/icons';
+import { Alert, UploadFile, UploadProps } from 'antd';
+import { Upload } from 'antd';
+
+import './style.less';
+
+const { Dragger } = Upload;
+
+type KCIMUploadPropsType = {
+    onChange?: () => void;
+    ifShowTip?: boolean;  //是否展示黄底提示
+    ifShowTemplateDownload?: boolean;//是否展示模板下载
+    downloadTemplateFile?: () => void; //模板下载回调
+} & UploadProps
+
+const KCIMUpload = (props: KCIMUploadPropsType) => {
+    const [fileList, setFileList] = useState<UploadFile[]>([]);
+    const { onChange, downloadTemplateFile, ifShowTip = true, ifShowTemplateDownload = true } = props;
+
+    const config: UploadProps = {
+        action: () => Promise.resolve(''),
+        name: 'file',
+        multiple: false,
+        beforeUpload: (file) => {
+            setFileList([...fileList, file]);
+            return false;
+        },
+        //onChange:onChange?onChange:()=>{},
+        onChange: (fileInfo) => {
+            onChange && onChange(fileInfo);
+            
+        },
+        onDrop(e) {
+            console.log('Dropped files', e.dataTransfer.files);
+        },
+    };
+
+    const download = () => {
+        downloadTemplateFile && downloadTemplateFile()
+    }
+
+    return (
+        <div className='KCIMUpload' style={{ paddingBottom: 16 }}>
+            {
+                ifShowTemplateDownload && (
+                    <div className='toolBar'>
+                        <span>文件下载</span>
+                        <span onClick={() => download()}>模板下载</span>
+                    </div>
+                )
+            }
+            {
+               ifShowTip&&(<Alert message="注意,导入的数据将会覆盖当前数据" type="warning" style={{ height: 24, fontSize: 12, marginBottom: 16, marginTop: 16 }} showIcon closable banner />) 
+            }
+            
+            <Dragger {...config} height={140}>
+                <p className="ant-upload-drag-icon" style={{ marginBottom: 5 }}>
+                    <InboxOutlined style={{ fontSize: 50, color: '#3376FE' }} />
+                </p>
+                <p className="ant-upload-text">点击或将文件拖拽到这里上传</p>
+
+            </Dragger>
+        </div>
+    )
+}
+
+export default KCIMUpload;

+ 30 - 0
src/components/KCIMUpload/style.less

@@ -0,0 +1,30 @@
+.KCIMUpload {
+  .mrms-ant-form-item {
+    margin-bottom: 0 !important;
+  }
+
+  .toolBar {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 16px;
+    margin-top: 16px;
+
+    &>span {
+      display: inline-block;
+      height: 15px;
+      font-size: 14px;
+      font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+      font-weight: 400;
+      color: #17181A;
+      line-height:15px;
+
+      &:last-child {
+           cursor: pointer;
+           color: #3376FE;
+      }
+    }
+  }
+  
+}

+ 93 - 0
src/components/ProgressModal/index.tsx

@@ -0,0 +1,93 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-12-28 20:32:45
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:37:24
+ * @FilePath: /MediResourceManaSys/src/components/ProgressModal/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import React, { useEffect, useState } from 'react';
+import { Modal, Progress } from 'antd';
+import { getPercentData, stopGetPercentData } from './service';
+
+interface ProgressModalProps {
+  type: string;
+  onComplete: () => void;
+  visible: boolean;
+  title: string
+}
+
+const ProgressModal: React.FC<ProgressModalProps> = ({ type, onComplete, visible, title }) => {
+  const [progressPercent, setProgressPercent] = useState(0);
+  const [processStr, set_processStr] = useState('');
+
+  const fetchProgressData = async () => {
+    try {
+      const response = await getPercentData(type); // 替换为你的API端点
+      if (response) {
+        if (type == 'ITEM_BATCH_MATCH') {
+          const [cur, total] = response.split('/');
+          setProgressPercent(Math.floor((cur / total) * 100));
+          set_processStr(response);
+        } else {
+          setProgressPercent(response);
+        }
+
+        if (response >= 100) {
+          onComplete(); // 当进度达到100%时,触发完成回调
+        }
+      }
+
+    } catch (error) {
+      console.error('Error fetching progress data:', error);
+    }
+  };
+
+  const stopHandle = async () => {
+    const resp = await stopGetPercentData(type);
+    if (resp) {
+      onComplete();
+    }
+  }
+
+  useEffect(() => {
+    let pollingInterval: NodeJS.Timeout | null = null;
+    if (visible) {
+      setProgressPercent(0); // 重置进度
+      pollingInterval = setInterval(fetchProgressData, 1000); // 开始轮询
+    } else {
+      progressPercent > 0 && stopHandle();
+    }
+
+    return () => {
+      if (pollingInterval) {
+        clearInterval(pollingInterval); // 清理轮询
+      }
+    };
+  }, [visible, type]); // 依赖项包括 visible 和 type
+
+  return (
+    <Modal
+      title={title}
+      open={visible}
+      footer={null}
+      closable={false} // 如果不需要模态框的关闭按钮,可以设置为 false
+    >
+      <Progress percent={progressPercent} />
+      {
+        type == 'ITEM_BATCH_MATCH' && (
+          <>
+            <div style={{ fontSize: 14, color: '#525866', marginTop: 3, marginBottom: 24 }}>已完成{processStr}</div>
+            <div onClick={() => stopHandle()} style={{
+              width: 56, height: 24, textAlign: 'center', fontSize: 14, marginLeft: 430,
+              color: '#17181A', cursor: 'pointer', background: '#FAFCFF', borderRadius: 4, border: '1px solid #DAE2F2'
+            }}>取消</div>
+          </>
+        )
+      }
+    </Modal>
+  );
+};
+
+export default ProgressModal;

+ 34 - 0
src/components/ProgressModal/service.ts

@@ -0,0 +1,34 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-12-28 20:33:26
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-12-29 15:56:44
+ * @FilePath: /CostAccountingSys/src/components/ProgressModal/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+
+import { request } from '@@/plugin-request'
+
+
+
+export const getPercentData = (type:string)=>{
+    return request('/costAccount/public/getPercent', {
+         method:'GET',
+         params:{
+            type 
+        }
+    })
+}
+
+export const stopGetPercentData = (type:string)=>{
+    return request('/costAccount/public/endProgress', {
+         method:'POST',
+         params:{
+            type 
+        }
+    })
+}

+ 72 - 0
src/components/ResizableContainer/index.tsx

@@ -0,0 +1,72 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2024-05-17 14:55:45
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-11-18 16:37:41
+ * @FilePath: /MediResourceManaSys/src/components/ResizableContainer/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import React, { useState, useCallback, useEffect, useRef } from 'react';
+import './style.less';
+
+interface ResizableContainerProps {
+    width?: number;
+    minWidth?: number;
+    maxWidth?: number;
+    height?:string;
+}
+
+const ResizableContainer: React.FC<React.PropsWithChildren<ResizableContainerProps>> = ({
+    width = 250,
+    minWidth = 100,
+    maxWidth = 800,
+    height = '800px',
+    children,
+}) => {
+    const [containerWidth, setContainerWidth] = useState(width);
+    const isResizing = useRef(false);
+
+    const handleMouseMove = useCallback((e: MouseEvent) => {
+        if (isResizing.current) {
+            const newWidth = Math.min(Math.max(e.clientX, minWidth), maxWidth);
+            setContainerWidth(newWidth);
+        }
+    }, [minWidth, maxWidth]);
+
+    const handleMouseUp = useCallback(() => {
+        isResizing.current = false;
+        document.removeEventListener('mousemove', handleMouseMove);
+        document.removeEventListener('mouseup', handleMouseUp);
+        document.body.style.userSelect = 'auto'; // 恢复文本选择
+    }, [handleMouseMove]);
+
+    const handleMouseDown = useCallback(() => {
+        isResizing.current = true;
+        document.addEventListener('mousemove', handleMouseMove);
+        document.addEventListener('mouseup', handleMouseUp);
+        document.body.style.userSelect = 'none'; // 禁用文本选择
+    }, [handleMouseMove, handleMouseUp]);
+
+    useEffect(() => {
+        return () => {
+            document.removeEventListener('mousemove', handleMouseMove);
+            document.removeEventListener('mouseup', handleMouseUp);
+        };
+    }, [handleMouseMove, handleMouseUp]);
+
+    useEffect(() => {
+        setContainerWidth(width);
+    }, [width]);
+
+    return (
+        <div className="ResizableContainer">
+            <div className="resizable" style={{ width: `${containerWidth}px`, height: `${height}` }}>
+                {children}
+            </div>
+            <div className="resizer" onMouseDown={handleMouseDown} />
+        </div>
+    );
+};
+
+export default ResizableContainer;

+ 24 - 0
src/components/ResizableContainer/style.less

@@ -0,0 +1,24 @@
+
+
+.ResizableContainer {
+    position: relative;
+    height:100%;
+    .resizable {
+        height: 100%;
+        overflow: hidden;
+    }
+    
+    .resizer {
+        position: absolute;
+        z-index: 999;
+        right: 0;
+        top:0;
+        width: 1px;
+        height:90vh;
+        cursor: ew-resize;
+        background-color:transparent;
+    }
+   
+}
+
+

BIN
src/components/SQLEditor/images/confirm.png


BIN
src/components/SQLEditor/images/copy.png


+ 125 - 0
src/components/SQLEditor/index.tsx

@@ -0,0 +1,125 @@
+
+import React, { useEffect, useState } from 'react';
+import MonacoEditor from 'react-monaco-editor';
+import { Form, message, Modal, Input } from 'antd';
+import './style.less';
+import { copyToClipboard } from '@/utils/tooljs';
+
+interface SQLEditorProps {
+    name: string;
+    label: string;
+    rules: { required: boolean; message: string }[];
+    form: any; // 你可以根据你的表单库提供更具体的类型
+    width?: string; // 可选的宽度属性
+    height?: string;
+    value?: string;
+}
+
+function extractSqlParameters(sqlQuery:string) {
+    // 正则表达式匹配冒号开头的参数名,如 :param
+    const paramRegex = /#(\w+)/g;
+    const params = [];
+  
+    let match;
+    while (match = paramRegex.exec(sqlQuery)) {
+      params.push(match[1]); // 将匹配的参数名添加到数组中
+    }
+  
+    return params;
+  }
+
+const SQLEditor: React.FC<SQLEditorProps> = ({ name, label, rules, form, width = '100%', value = '', height = '100%' }) => {
+    const [editorValue, setEditorValue] = useState(value);
+    const [modalForm] = Form.useForm();
+    const handleSQLEditorChange = (newValue: string) => {
+        setEditorValue(newValue); 
+        form.current.setFieldValue(name, newValue);
+    };
+
+    const copyHandle = ()=>{
+        copyToClipboard(editorValue as string);
+        message.success('复制成功!');
+    }
+
+    const verifyHandle = ()=>{
+        const params = extractSqlParameters(editorValue as string);
+        
+
+        Modal.confirm({
+            title:'验证参数',
+            icon:null,
+            content:(
+                <Form form={modalForm} layout="vertical">
+                    {[...new Set(params)].map(param => (
+                        <Form.Item
+                            key={param}
+                            label={`${param}`}
+                            name={param}
+                            rules={[{ required: true, message: `请输入${param}` }]}
+                        >
+                            <Input />
+                        </Form.Item>
+                    ))}
+                </Form>
+            ),
+            onOk: () => {
+                return new Promise((resolve, reject) => {
+                    modalForm.validateFields()
+                        .then(values => {
+                            let finalSql = editorValue as string;
+                            params.forEach(param => {
+                                finalSql = finalSql.replace(new RegExp(`#${param}`, 'g'), values[param]);
+                            });
+                            copyToClipboard(finalSql);
+                            message.success('替换参数值并复制成功!');
+                            resolve(true);
+                        }).catch(errorInfo => {
+                            reject(errorInfo);
+                        });
+                });
+            }
+        })
+    }
+
+    const editorDidMount = (editor:any, monaco:any) => {
+        editor.focus();
+    };
+
+
+    useEffect(() => {
+        setEditorValue(form.current.getFieldValue(name));
+    }, [form, name]);
+
+    return (
+        <Form.Item
+            name={name}
+            label={label}
+            rules={rules}
+            getValueProps={() => ({ value: editorValue })}
+        >
+            <div className='sql_editor' style={{ border: '1px solid #CFD7E6', borderRadius: 4 }}>
+                <MonacoEditor
+                    language="sql"
+                    theme="vs-light"
+                    value={editorValue}
+                    options={{
+                        selectOnLineNumbers: true,
+                        // autoIndent: true,
+                        automaticLayout: true,
+                        fontSize: 14,
+                    }}
+                    width={width}
+                    height={height}
+                    onChange={handleSQLEditorChange}
+                    editorDidMount={editorDidMount}
+                />
+                <div className='editerFooter'>
+                       <div className='a' onClick={()=>copyHandle()}>原文复制</div>
+                       <div className='b' onClick={()=>verifyHandle()}>替换参数值并复制</div>
+                </div>
+            </div>
+        </Form.Item>
+    );
+};
+
+export default SQLEditor;

+ 55 - 0
src/components/SQLEditor/style.less

@@ -0,0 +1,55 @@
+.sql_editor {    
+    // .ace_editor_custom {
+    //     font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace !important;
+    // } 
+    // @media screen and (-webkit-min-device-pixel-ratio:0) {
+    //     .ace_editor_custom {
+    //         font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace !important;
+    //     }
+       
+    // }
+    .editerFooter {
+        display: flex;
+        flex-direction: row;
+        justify-content:flex-start;
+        align-items:center;
+        height: 32px;
+        padding: 0 10px;
+        border-top: 1px solid #DAE2F2;
+        background-color: #EEF3FA;
+
+        .a,.b {
+            cursor: pointer;
+            font-size: 12px;
+            font-weight: 400;
+            color: #17181A;
+        }
+        .a {
+             margin-right: 16px;
+              &::before {
+                  position: relative;
+                  top:3px;
+                  display: inline-block;
+                  content: '';
+                  margin-right: 5px;
+                  width: 16px;
+                  height: 16px;
+                  background: url('./images/copy.png');
+                  background-size: cover;
+              }
+        }
+        .b {
+            &::before {
+                position: relative;
+                top:3px;
+                display: inline-block;
+                content: '';
+                margin-right: 5px;
+                width: 16px;
+                height: 16px;
+                background: url('./images/confirm.png');
+                background-size: cover;
+            }
+      }
+    }
+}

+ 20 - 0
src/constant.ts

@@ -0,0 +1,20 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2024-01-12 13:34:17
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-01-18 20:24:20
+ * @FilePath: /CostAccountingSys/src/constant.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+export const KcimCenterSysId = '1547394914533380096';
+
+export const CostAccountingSysId = '1714195886747291648';
+
+export const  tableColumnsWidObj = {
+       departmentName:'10%',
+       responsibilityCenter:'10%',
+       responsibilityCenterCode:'10%',
+       year:'5%',
+       month:'5%',
+       shareLevel:'5%'
+}

+ 1 - 0
src/constants/index.ts

@@ -0,0 +1 @@
+export const DEFAULT_NAME = 'Umi Max';

+ 825 - 0
src/global.less

@@ -0,0 +1,825 @@
+* {
+    font-family: 'SourceHanSansCN, SourceHanSansCN';
+}
+
+/* Safari */
+@media screen and (-webkit-min-device-pixel-ratio:0)
+{
+  * {
+    margin: 0;
+    padding: 0;
+    font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  }
+  #password {
+    &::placeholder {
+      font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+    }
+  }
+}
+
+body {
+    margin: 0;
+    height: 100%;
+    zoom: unset !important;
+}
+
+
+/* 禁用所有输入框的自动填充背景 */
+input:-webkit-autofill,
+textarea:-webkit-autofill,
+select:-webkit-autofill {
+  -webkit-box-shadow: 0 0 0 1000px white inset !important;
+  box-shadow: 0 0 0 1000px white inset !important;
+  -webkit-text-fill-color: #000 !important;
+}
+
+
+
+
+.cost-ant-space-item {
+    &>a {
+        color: #3377FF !important;
+    }
+}
+
+
+
+textarea {
+    border-radius: 4px !important;
+    border: 1px solid #CFD7E6 !important;
+}
+
+.cost-ant-btn-primary {
+    background: #3377FF;
+}
+.cost-ant-btn-primary[disabled]{
+    background:#f5f5f5 ;
+}
+
+.cost-ant-checkbox {
+    &.cost-ant-checkbox-checked {
+          .cost-ant-checkbox-inner {
+            background-color:#3377FF;
+            background: #3377FF;
+          }
+    }
+    // &.cost-ant-checkbox-indeterminate {
+    //     &.cost-ant-checkbox-inner {
+    //         &::after {
+    //             background-color:#3377FF !important;
+    //         }
+    //     }
+    // }
+}
+
+.cost-ant-checkbox-indeterminate .cost-ant-checkbox-inner::after {
+    background-color:#3377FF;
+}
+
+.cost-ant-input-affix-wrapper {
+    border-radius: 4px !important;
+}
+
+.cost-ant-input {
+    border-radius: 4px;
+    // border: 1px solid #CFD7E6 !important;
+    &::placeholder {
+        color: #99A6BF !important;
+    }
+}
+
+.cost-ant-table-cell {
+    a {
+        color: #3376FE !important;
+    }
+}
+
+.cost-ant-input-number {
+    border-radius: 4px !important;
+}
+
+
+
+
+
+
+//Modal
+
+.cost-ant-modal {
+    .cost-ant-modal-content {
+        padding: 16px !important;
+        border-radius: 4px !important;
+        .cost-ant-modal-header {
+             padding: 0 ;
+             margin-bottom: 16px;
+             border-bottom: none;
+        }
+        .cost-ant-modal-body {
+            max-height: 570px;
+            // overflow-y: scroll;
+            // overflow-x: hidden;
+            padding: 0;
+
+            .cost-ant-modal-confirm-body-wrapper {
+                .cost-ant-modal-confirm-body {
+                    .cost-ant-modal-confirm-title {
+                        font-size: 16px;
+                        height:18px;
+                      
+                    }
+                    .cost-ant-modal-confirm-content {
+                        max-width: 100% !important;
+                        max-height: 498px;
+                        overflow-y: scroll;
+                        overflow-x: hidden;
+                        margin-block-start:16px;
+
+                        .TableTransfer {
+                            .cost-ant-transfer-operation {
+                                //   align-self: self-end;
+                                //   margin-bottom: 30px;
+
+                                button {
+                                    //color: #17181A;
+                                    width: 24px;
+                                    height: 40px !important;
+                                    // background: #FAFCFF;
+                                    border-radius: 4px;
+                                    border: 1px solid #DAE2F2;
+                                }
+                            }
+
+                            .cost-ant-transfer-list {
+                                overflow: hidden;
+                                border: 1px solid #DAE2F2;
+
+                                .cost-ant-transfer-list-header {
+                                    height: 32px;
+                                    font-size: 12px;
+                                    border-bottom: 1px solid #DAE2F2;
+
+                                    .anticon {
+                                        color: #99A6BF;
+                                    }
+
+                                    .cost-ant-transfer-list-header-selected {
+                                        color: #515866;
+                                    }
+                                }
+
+                                .cost-ant-transfer-list-body {
+                                    .cost-ant-transfer-list-body-search-wrapper {
+                                        padding: 8px;
+
+                                        .cost-ant-input-prefix {
+                                            .anticon-search {
+                                                color: #99A6BF;
+                                            }
+                                        }
+                                    }
+
+                                    .cost-ant-transfer-list-body-customize-wrapper {
+                                        .costTable {
+                                            border: none !important;
+                                            border-radius: 0 !important;
+                                        }
+                                    }
+                                }
+                            }
+
+
+
+                            .cost-ant-table {
+                                .cost-ant-table-container {
+                                    .cost-ant-table-content {
+                                        .cost-ant-table-thead {
+
+                                            &>tr>th {
+                                                font-size: 14px;
+                                                font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+                                                font-weight: 500;
+                                                color: #17181A;
+                                                background: #EEF3FA;
+                                                border-radius: 0 !important;
+                                                padding: 4px 8px !important;
+                                                border-bottom: none;
+                                            }
+
+                                        }
+
+                                        .cost-ant-table-tbody {
+                                            &>tr>td {
+                                                padding-left: 8px !important;
+                                                padding-right: 8px !important;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+
+                .cost-ant-modal-confirm-btns {
+                    display: flex;
+                    flex-direction: row;
+                    align-items: center;
+                    justify-content: flex-end;
+                    margin-top: 16px;
+
+                    &>button {
+                        display: flex;
+                        justify-content: center;
+                        align-items: center;
+                        padding: 0 14px;
+                        height: 24px;
+                        border-radius: 4px;
+
+                        &.cost-ant-btn-default {
+                            border: 1px solid #DAE2F2;
+                            background-color: #FAFCFF;
+                        }
+
+                        &.cost-ant-btn-primary {
+                            background-color: #3376FE;
+                        }
+                    }
+                }
+            }
+        }
+        .cost-ant-modal-footer {
+            border-top: none;
+            padding: 0;
+            margin-top: 16px;
+            .cost-ant-btn {
+                 border-radius: 4px !important;
+                 height: 24px !important;
+                 padding: 0 14px !important;
+            }
+        }
+    }
+
+    .cost-ant-modal-footer {
+        margin-top: 0;
+
+        .cost-ant-space-item {
+            &>button {
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                padding: 0 14px;
+                height: 24px;
+                ;
+                border-radius: 4px;
+
+                &>span {}
+
+                &.cost-ant-btn-default {
+                    border: 1px solid #DAE2F2;
+                    background-color: #FAFCFF;
+                }
+
+                &.cost-ant-btn-primary {
+                    background-color: #3376FE;
+                }
+            }
+        }
+    }
+}
+
+
+
+//message
+
+.cost-ant-message {
+    .ant-message-notice-success {
+        .cost-ant-message-notice-content {
+            .anticon-check-circle {
+                &>svg {
+                    color: #52c41a;
+                }
+            }
+        }
+    }
+}
+
+//Form
+
+.cost-ant-form {
+    &.cost-ant-form-vertical {
+        .cost-ant-form-item {
+            margin-bottom: 16px;
+
+            .cost-ant-form-item-label {
+                padding: 0 !important;
+                height: 15px;
+                margin-bottom: 8px;
+                line-height: 15px;
+            }
+
+            .cost-ant-form-item-control-input {
+                min-height: 24px;
+            }
+        }
+    }
+}
+
+
+
+
+// .cost-ant-form-item-label {
+//     padding: 0;
+//     //height: 15px;
+//     line-height: 15px;
+//     margin-bottom: 5px;
+
+//     .cost-ant-form-item-required {
+//       &::before {
+//         margin-right: 0 !important;
+//       }
+//     }
+// }
+
+.cost-ant-input-affix-wrapper {
+    padding: 0px 8px !important;
+    border-radius: 4px;
+    border: 1px solid #CFD7E6 !important;
+
+    &>input {
+        &::placeholder {
+            font-size: 14px;
+            font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+            font-weight: 400;
+            color: #99A6BF;
+        }
+    }
+}
+
+.cost-ant-input-disabled {
+    &::placeholder {
+        color: #7A8599 !important;
+    }
+}
+
+.cost-ant-input-affix-wrapper-disabled {
+    background: #F0F2F5 !important;
+}
+
+
+// //proContsiner 标题样式覆盖
+// .cost-ant-page-header .cost-ant-page-header-heading-title {
+//      height: 17px !important;
+//      font-size: 16px !important;
+//      line-height: 17px !important;
+// }
+
+.cost-ant-page-header {
+    .cost-ant-page-header-heading-title {
+         font-size: 16px !important;
+    }
+}
+
+.cost-ant-page-header .cost-ant-page-header-heading-left {
+    margin-block: 0 !important;
+}
+
+
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-sider-fixed {
+    position: absolute !important;
+    // min-width:230px !important;
+    // width: 230px !important;
+}
+
+//避免logo区域的层级过高,影响父容器
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-sider-fixed {
+    height: calc(100vh - 48px) !important;
+    z-index: 0 !important;
+}
+
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-sider-menu {
+    height: calc(100vh - 200px) !important;
+    overflow-y: scroll !important;
+    overflow-x: hidden;
+}
+
+
+
+.cost-ant-menu .cost-ant-menu-root .cost-ant-menu-inline .cost-ant-menu-light .cost-ant-pro-sider-menu  .cost-ant-pro-base-menu{
+     height: calc(100vh - 90px) !important;
+}
+
+.cost-ant-pro-base-menu .cost-ant-pro-base-menu-submenu-has-icon >.cost-ant-menu-sub {
+    padding-inline-start:0 !important;
+}
+
+
+.cost-ant-menu-submenu {
+    &.cost-ant-menu-submenu-selected {
+        color: #3376FE !important; 
+    }
+}
+.cost-ant-menu-item-selected {
+    color: #3376FE !important; 
+    background-color:#F2F6FF !important;
+    // margin:8px !important;
+    &:hover {
+         color: #3376FE !important; 
+    }
+}
+.cost-ant-menu-light:not(.cost-ant-menu-horizontal) .cost-ant-menu-item:not(.cost-ant-menu-item-selected):hover {
+    background-color: #f0f2f5 !important;
+    // margin:8px !important;
+}
+
+.cost-ant-menu-light:not(.cost-ant-menu-horizontal) .cost-ant-menu-submenu-title:hover {
+    background-color: #f0f2f5 !important;
+}
+
+.cost-ant-tree.cost-ant-tree-directory .cost-ant-tree-treenode:hover::before {
+    background: #f0f2f5 !important;
+    border-radius: 4px;
+}
+
+.cost-EditableProTable {
+    .cost-ant-pro-card-body {
+        padding-inline: 0 !important;
+        padding-block: 0 !important;
+
+        .cost-ant-table {
+            border: 1px solid #CFD7E6 !important;
+            overflow: hidden;
+
+            .cost-ant-table-content {
+                .cost-ant-table-thead {
+                    &>tr>th {
+
+                        height: 15px;
+                        line-height: 15px;
+                        font-size: 14px;
+                        padding: 12px 16px !important;
+                        font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+                        // font-weight: 500;
+
+                        color: #17181A;
+                        border-bottom: 1px solid #CFD7E6 !important;
+                        background: rgb(238 243 250 / 100%) !important;
+
+                        &::before {
+                            display: none !important;
+                        }
+                    }
+                }
+
+                .cost-ant-table-tbody {
+                    .cost-ant-table-row {
+                        .cost-ant-table-cell {
+
+                            height: 15px;
+                            line-height: 15px;
+                            font-size: 14px;
+                            padding: 8px 8px !important;
+                            font-family: SourceHanSansCN-Medium, SourceHanSansCN;
+                            color: #17181A;
+
+                            &>div {
+                                justify-content: flex-start !important;
+                            }
+                        }
+
+                        &:last-child {
+                            &>td {
+                                border-bottom-color: none !important;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+.cost-ant-table-wrapper {
+    .cost-ant-table:not(.cost-ant-table-bordered) .cost-ant-table-tbody>tr.cost-ant-table-row.cost-ant-table-row-selected>td:first-child {
+        border-radius: 0 !important;
+    }
+
+    .cost-ant-table-content {
+        .cost-ant-table-thead {
+            tr {
+                &:last-child {
+                    .cost-ant-table-cell {
+                        // border-top: 1px solid #dae2f2;
+                    }
+                }
+            }
+        }
+    }
+}
+
+.cost-ant-table-wrapper .cost-ant-table:not(.cost-ant-table-bordered) .cost-ant-table-tbody>tr.cost-ant-table-row:hover>td:first-child {
+    border-start-start-radius: 0 !important;
+    border-end-start-radius: 0 !important;
+}
+
+.cost-ant-table-wrapper .cost-ant-table:not(.cost-ant-table-bordered) .cost-ant-table-tbody>tr.cost-ant-table-row:last-child:hover>td {
+    border-bottom-color: #dae2f2 !important;
+}
+
+.cost-ant-table-wrapper .cost-ant-table:not(.cost-ant-table-bordered) .cost-ant-table-tbody>tr.cost-ant-table-row:last-child>td {
+    border-bottom-color: #dae2f2 !important;
+}
+
+
+.cost-ant-table-wrapper .cost-ant-table:not(.cost-ant-table-bordered) .cost-ant-table-tbody>tr.cost-ant-table-row:hover>td:last-child {
+    border-end-end-radius: 0 !important;
+    border-start-end-radius: 0 !important;
+}
+
+
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-layout-bg-list {
+    background: #F7F9FC !important;
+}
+
+// .cost-ant-message-notice .cost-ant-message-success .anticon {
+//     color: #52c41a !important;
+// }
+.ant-message-success {
+    .anticon .anticon-check-circle {
+        color: #52c41a !important;
+    }
+}
+
+
+/**
+    Select
+**/
+.cost-ant-select {
+    .cost-ant-select-selector {
+        height: 24px !important;
+        padding: 0 8px !important;
+        border-radius: 4px !important;
+        border: 1px solid #CFD7E6 !important;
+
+        .cost-ant-select-selection-item {
+            line-height: 24px !important;
+        }
+
+        .cost-ant-select-selection-search-input {
+            height: 24px !important;
+        }
+
+        .cost-ant-select-selection-placeholder {
+            line-height: 22px !important;
+            font-size: 14px;
+            font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+            font-weight: 400;
+            color: #99A6BF;
+        }
+
+        .cost-ant-select-selection-overflow {
+            .cost-ant-select-selection-overflow-item {
+                .cost-ant-select-selection-item {
+                    height: 22px !important;
+                    line-height: 22px !important;
+                    margin-top: 0 !important;
+                    margin-bottom: 7px !important;
+                }
+            }
+        }
+    }
+
+    .cost-ant-select-arrow {
+        color: #CFD7E6;
+    }
+
+    &.cost-ant-select-disabled {
+        .cost-ant-select-selector {
+            border: 1px solid #DADEE6 !important;
+
+            .cost-ant-select-selection-placeholder {
+                color: #7A8599;
+            }
+        }
+
+        .cost-ant-select-arrow {
+            color: #7A8599;
+        }
+    }
+}
+
+
+
+
+
+.cost-ant-tabs {
+    .cost-ant-tabs-tab {
+        padding: 5px 0 !important;
+        padding-top: 12px !important;
+    }
+    .cost-ant-tabs-nav {
+        &::before {
+            border-bottom: none !important;
+        }
+    }
+   
+}
+
+
+
+.cost-ant-table-wrapper {
+    overflow: hidden;
+}
+
+
+
+.cost-ant-pro-layout .cost-ant-pro-layout-container {
+    flex: 1;
+    overflow-y: scroll;
+    background: #F7F9FC !important;
+}
+
+//页面全局底色
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-layout-bg-list {
+    background: rgb(247 249 252 / 100%);
+}
+
+.cost-ant-pro-page-container-children-content {
+    padding-inline: 0 !important;
+}
+
+.cost-ant-pro-sider-actions {
+    display: none !important;
+}
+
+
+.cost-ant-pro-sider-collapsed-button {
+    top: 95% !important;
+    right: 17px !important;
+}
+
+
+.cost-ant-menu .cost-ant-menu-submenu-title .anticon {
+    transition: none !important;
+}
+
+.cost-ant-menu .cost-ant-menu-item .anticon+span {
+    transition: none !important;
+}
+
+.cost-ant-menu .cost-ant-menu-item .anticon {
+    transition: none !important;
+}
+
+.cost-ant-menu .cost-ant-menu-item {
+    transition: none !important;
+}
+
+.cost-ant-menu .cost-ant-menu-submenu-title .anticon+span {
+    transition: none !important;
+}
+
+.cost-ant-tabs .cost-ant-tabs-tab+.cost-ant-tabs-tab {
+    margin: 0 0 0 24px !important;
+}
+
+
+.menuCollapseIcon {
+    &>svg {
+        width: 24px;
+        height: 24px;
+    }
+}
+
+.cost-ant-layout-sider {
+    max-width: 100% !important;
+    min-width: unset !important;
+    width: 100% !important; 
+}
+
+.cost-ant-pro .cost-ant-pro-layout .cost-ant-pro-sider .cost-ant-layout-sider-children {
+    padding-inline: 0 !important;
+    &>div {
+       &>ul {
+          padding-inline: 8px !important;
+       }
+    }
+}
+
+
+.cost-ant-pro-form>div:not(.cost-ant-pro-form-light-filter) .pro-field-lg {
+    width: 100% !important;
+}
+
+.cost-ant-select {
+    .cost-ant-select-selector {
+        border: 1px solid #CFD7E6 !important;
+        // color: #99A6BF !important;
+
+        .cost-ant-select-selection-placeholder {
+            color: #99A6BF !important;
+        }
+    }
+
+    .cost-ant-select-arrow {
+        color: #99A6BF !important;
+    }
+}
+
+
+.cost-ant-input-number-input {
+    border-radius: 4px;
+    &::placeholder {
+        color: #99A6BF !important;
+    }
+}
+
+.cost-ant-select-disabled {
+    .cost-ant-select-selector {
+        border: 1px solid #DADEE6 !important;
+        background: #F0F2F5 !important;
+
+        .cost-ant-select-selection-placeholder {
+            color: #7A8599 !important;
+        }
+    }
+
+    .cost-ant-select-arrow {
+        color: #7A8599 !important;
+    }
+}
+
+
+
+.cost-ant-input-number {
+    border: 1px solid #CFD7E6 !important;
+    // color: #99A6BF !important;
+    border-radius: 4px;
+    box-shadow: none !important;
+    .cost-ant-input-number-input {
+        height: 22px !important;
+        line-height: 22px !important;
+    }
+}
+
+.cost-ant-input-number-disabled {
+    border: 1px solid #DADEE6 !important;
+    background: #F0F2F5 !important;
+
+    .cost-ant-input-number-input {
+        color: #7A8599 !important;
+    }
+}
+
+.cost-ant-input-affix-wrapper-disabled {
+    border: 1px solid #DADEE6 !important;
+}
+
+.cost-ant-picker {
+    border-radius: 4px !important;
+    border: 1px solid #CFD7E6 !important;
+    height: 24px;
+    .cost-ant-picker-input {
+        &>input {
+             &::placeholder {
+                color:#99A6BF !important;
+             }
+        }
+        .cost-ant-picker-suffix {
+            color:#99A6BF !important;
+        }
+    }
+}
+
+.cost-ant-picker-panel-container {
+    .cost-ant-picker-panel {
+        .cost-ant-picker-month-panel {
+            .cost-ant-picker-body {
+                .cost-ant-picker-content {
+                    tr {
+                        td {
+                            &.cost-ant-picker-cell-selected {
+                                .cost-ant-picker-cell-inner {
+                                    background:#3377FF;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+.cost-ant-picker-input>input[disabled] {
+    color: #7A8599 !important;
+}
+
+.cost-ant-picker-disabled {
+    background: #F0F2F5 !important;
+    border: 1px solid #DADEE6 !important;
+
+    .anticon-swap-right,
+    .anticon-calendar {
+        color: #7A8599 !important;
+    }
+}

+ 62 - 0
src/menuIcons.js

@@ -0,0 +1,62 @@
+/*
+ * @Author: your name
+ * @Date: 2021-08-05 15:54:27
+ * @LastEditTime: 2021-10-18 11:43:09
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /CostAccountManaSys/src/menuIcons.js
+ */
+
+
+import React from 'react';
+import { SmileOutlined,
+     HomeOutlined, 
+     PicLeftOutlined, 
+     SettingOutlined,
+     NodeExpandOutlined,
+     BorderOuterOutlined,
+     CopyrightOutlined,
+     ProfileOutlined,
+     AccountBookOutlined,
+     ControlOutlined,
+     CrownOutlined,
+     ToolOutlined,
+     TableOutlined,
+     FileDoneOutlined
+} from '@ant-design/icons';
+
+const iconEnum = {
+  smile: <SmileOutlined />,
+  home: <HomeOutlined />,
+  picLeft: <PicLeftOutlined />,
+  setting: <SettingOutlined />,
+  crown:<CrownOutlined />,
+  tool:<ToolOutlined />,
+  TableOutlined:<TableOutlined />,
+  NodeExpandOutlined:<NodeExpandOutlined />,
+  BorderOuterOutlined:<BorderOuterOutlined />,
+  CopyrightOutlined:<CopyrightOutlined />,
+  ProfileOutlined:<ProfileOutlined />,
+  AccountBookOutlined:<AccountBookOutlined />,
+  ControlOutlined:<ControlOutlined />,
+  FileDoneOutlined:<FileDoneOutlined />
+};
+
+// const iconEnum = {
+//   smile:SmileOutlined,
+//   home: HomeOutlined,
+//   picLeft: PicLeftOutlined,
+//   setting: SettingOutlined,
+//   crown:CrownOutlined,
+//   tool:ToolOutlined,
+//   TableOutlined:TableOutlined,
+//   NodeExpandOutlined:NodeExpandOutlined,
+//   BorderOuterOutlined:BorderOuterOutlined,
+//   CopyrightOutlined:CopyrightOutlined,
+//   ProfileOutlined:ProfileOutlined,
+//   AccountBookOutlined:AccountBookOutlined,
+//   ControlOutlined:ControlOutlined,
+//   FileDoneOutlined:FileDoneOutlined
+// };
+
+export default iconEnum;

+ 13 - 0
src/models/global.ts

@@ -0,0 +1,13 @@
+// 全局共享数据示例
+import { DEFAULT_NAME } from '@/constants';
+import { useState } from 'react';
+
+const useUser = () => {
+  const [name, setName] = useState<string>(DEFAULT_NAME);
+  return {
+    name,
+    setName,
+  };
+};
+
+export default useUser;

+ 25 - 0
src/pages/404.tsx

@@ -0,0 +1,25 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2024-07-19 15:01:35
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-08-23 11:20:28
+ * @FilePath: /CostAccountingSys/src/pages/404.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+import React from 'react';
+import { Button } from 'antd';
+import { history } from 'umi';
+
+const NotFoundPage: React.FC = () => {
+  return (
+    <div style={{ textAlign: 'center', marginTop: 50 }}>
+      <h1>404 - 页面未找到</h1>
+      <p>抱歉,您访问的页面不存在。</p>
+      <Button type="primary" onClick={() => history.push('/')}>
+        返回首页
+      </Button>
+    </div>
+  );
+};
+
+export default NotFoundPage;

+ 32 - 0
src/pages/Home/index.tsx

@@ -0,0 +1,32 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2022-12-14 14:14:32
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-08-02 10:43:28
+ * @FilePath: /BudgetManaSystem/src/pages/Home/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+
+ */
+
+import React from 'react';
+
+import './style.less';
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+
+const HomePage: React.FC = () => {
+  
+  return (
+    <KCIMPagecontainer title={false} ghost>
+      <div className='HomePage'>
+        <div className='title'>全成本核算系统</div>
+        <div className='titleSub'>以促进医院内部经济、经营管理向正规化的轨道转变,建立规范以及完整的成本管理决策体系,将管理重点转移到经济管理上来,并透过完善的信息化建设,实现对成本管理的支撑。纠正医院的成本管控理念及应用错误,改变现行的“四类三级”成本核算方法。实现医院科室成本核算,支持医院床位动态管理,支持科室实施主诊医师负责制;实现科室真实盈亏计算及盈亏平衡分析,指导科室经营;实现利润敏感性分析,使用国际先进的管理会计理论用以医院经营管理决策。</div>
+        <div className='banner'>
+          <img src={require('../../../static/indexBgCenter.png')} alt="" />
+        </div>
+      </div>
+    </KCIMPagecontainer>
+  );
+};
+
+export default HomePage;

+ 60 - 0
src/pages/Home/service.ts

@@ -0,0 +1,60 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2022-12-15 15:14:12
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-07-24 13:44:24
+ * @FilePath: /BudgetManaSystem/src/pages/Home/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+import { request } from '@@/plugin-request'
+
+
+
+
+
+//获取首页信息
+
+export type getIndexDataRespType = {
+    id:number,
+    computeDate:string,
+    code:number,
+    name:string,
+    preCode:number,
+    sort:number,
+    status:number,
+    audit:string
+}
+
+export const getIndexData = (computeDate:string)=>{
+       
+       return request<getIndexDataRespType[]>('/performance/index', {
+            method: 'GET',
+            params:{computeDate},
+       })
+}
+
+
+//获取当前计算年月
+
+export const getComputeDate = ()=>{
+       
+    return request<string>('/performance/index/getCurrentComputeDate', {
+         method: 'GET',
+    })
+}
+
+
+//获取动态报表的path
+
+export const getReportPath = (params:any)=>{
+       
+   return request('/performance/parameter/getList', {
+         method: 'GET',
+         params:{...params}
+    });
+}
+
+
+
+

+ 94 - 0
src/pages/Home/style.less

@@ -0,0 +1,94 @@
+.HomePage {
+  display: flex;
+  flex-direction: column;
+  height: calc(100vh - 80px);
+  padding: 16px;
+  background: #FFFFFF;
+  border-radius: 4px;
+  .title {
+    height: 24px;
+    font-weight: bold;
+    font-size: 24px;
+    color: #17181A;
+    line-height: 24px;
+    margin-bottom: 12px;
+    padding-left: 8px;
+    margin-top: 8px;
+  }
+  .titleSub {
+    font-weight: 400;
+    font-size: 14px;
+    color: #525866;
+    line-height: 20px;
+    margin-bottom: 12px;
+    padding: 0 8px;
+  }
+
+  .banner {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 100%;
+    flex-grow: 1;
+    min-height: 440px;
+    // height:calc(100% - 110px);
+    background: url('../../../static/indexBg.png');
+    background-size: cover !important;
+    overflow: hidden;
+    background-repeat: no-repeat !important;
+
+    &>img {
+      width: 810px;
+      transition: all 0.3s linear;
+    }
+  }
+
+  /* 当屏幕宽度小于或等于 600px */
+  @media screen and (max-width: 1250px) {
+    .banner>img {
+      width: 600px;
+    }
+  }
+
+  /* 当屏幕宽度小于或等于 600px */
+  @media screen and (min-width: 1250px) and (max-width: 1360px) {
+    .banner>img {
+      width: 700px;
+    }
+  }
+
+  /* 当屏幕宽度在 601px 到 900px */
+  @media screen and (min-width: 1360px) and (max-width: 1500px) {
+    .banner>img {
+      width: 800px;
+    }
+  }
+
+  /* 当屏幕宽度大于 900px */
+  @media screen and (min-width: 1500px) and (max-width: 1760px) {
+    .banner>img {
+      width: 900px;
+    }
+  }
+
+  /* 当屏幕宽度大于 900px */
+  @media screen and (min-width: 1760px) and (max-width: 1920px) {
+    .banner>img {
+      width: 1000px;
+    }
+  }
+
+  /* 当屏幕宽度大于 900px */
+  @media screen and (min-width: 1960px) and (max-width: 2000px) {
+    .banner>img {
+      width: 1200px;
+    }
+  }
+
+  /* 当屏幕宽度大于 900px */
+  @media screen and (min-width: 2000px) {
+    .banner>img {
+      width: 1400px;
+    }
+  }
+}

+ 261 - 0
src/pages/baseInfoMana/checkGroupMana/index.tsx

@@ -0,0 +1,261 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-09-09 10:57:09
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+
+import { ActionType, DrawerForm, EditableFormInstance, EditableProTable, ProFormInstance, ProFormSelect } from '@ant-design/pro-components';
+import { ModalForm, ProFormDigit, ProFormText, ProFormTextArea } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Popconfirm } from 'antd';
+import { useEffect, useRef, useState } from 'react'
+
+import { addData, delData, editData, getChackGroupData } from './service';
+
+import './style.less';
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+import KCIMDrawerForm from '@/components/KCIMDrawerForm';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+type TableDataResponse = {
+    data: any[]; 
+    success: boolean; 
+    total: number; 
+    pageSize: number; 
+    totalPage: number;
+};
+
+export default function FenyeTemplate() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+
+    const columns: ProColumns[] = [
+
+        {
+            title: 'ID',
+            dataIndex: 'id',
+        },
+        {
+            title: '查核组名称',
+            dataIndex: 'name',
+        },
+        {
+            title: '组长',
+            dataIndex: 'groupManagerName',
+        },
+        {
+            title: '备注',
+            dataIndex: 'createUserName',
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width:150,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <UpDataActBtn key={'act'} record={record} type='EDIT' />,
+                    <a key='emp'>人员</a>,
+                    // <a key=''>查核要点</a>
+                ]
+            },
+        },
+
+    ]
+
+
+    const getTableData = async (params: any):Promise<TableDataResponse|any[]> => {
+        const resp = await getChackGroupData(params);
+        if (resp) {
+
+            if(resp.totalCount == 0 && resp.currPage != 1){
+                 return getTableData({...params,current:resp.currPage - 1});
+            }else{
+                return {
+                    data: resp.list,
+                    success: true,
+                    total: resp.totalCount,
+                    pageSize: resp.pageSize,
+                    totalPage: resp.totalPage,
+                }
+            }
+            
+        }
+        return []
+    }
+
+    const delTableData = async (record: any) => {
+        const resp = await delData(record.id);
+        if (resp) {
+            message.success('操作成功!');
+            tableRef.current?.reload();
+            // message.success('操作成功!');
+        }
+    }
+
+    const updateTable = async (formVal: any, type: 'EDIT' | "ADD") => {
+
+        const content = formVal.table.map((a: any) => ({
+
+        }))
+
+        if (type == 'ADD') {
+            const result = {
+                name: formVal.name,
+                content: JSON.stringify(formVal.table),
+                remark: formVal.remark
+            }
+            const resp = await addData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+
+        }
+        if (type == 'EDIT') {
+            const result = {
+                id: formVal.id,
+                name: formVal.name,
+                content: JSON.stringify(formVal.table),
+                remark: formVal.remark
+            }
+            const resp = await editData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+        }
+
+        return true;
+    }
+
+    const UpDataActBtn = ({ record, type }: { record: any, type: 'EDIT' | 'ADD' }) => {
+
+        const formRef = useRef<ProFormInstance<any>>();
+
+        return (
+            <ModalForm
+                title={`${type == 'EDIT' ? '编辑' : '新增'}查核组`}
+                width={400}
+                initialValues={type == 'EDIT' ? { ...record, filedType: 'Text' } : { filedType: 'Text' }}
+                trigger={
+                    type == 'EDIT' ? <a key="edit" >编辑</a> : <span className='add'>新增</span>
+                }
+                onFinish={(val: any) => {
+                    return updateTable(type == 'EDIT' ? { ...record, ...val } : { ...val }, type);
+                }}
+                formRef={formRef}
+                modalProps={{ destroyOnClose: true }}
+                colProps={{ span: 24 }}
+                grid
+            >
+                <ProFormText
+                    name="name"
+                    label="查核组名称:"
+                    placeholder="请输入"
+                    rules={[{ required: true, message: '名称不能为空!' }]}
+                />
+                <ProFormTextArea
+                    name="remark"
+                    label="备注:"
+                    placeholder="请输入"
+                />
+            </ModalForm>
+        )
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+    }
+
+
+    useEffect(() => {
+
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='checkGroupMana' title={false}>
+            <div className='toolBar'>
+                <div className='filter'>
+                    <div className='filterItem' style={{ marginRight: 16, width: 205 }}>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'请输入查核组名称'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        groupName: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    groupName: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                    <div className='filterItem' style={{ marginRight: 16, width: 220 }}>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 组长名称:</span>
+                        <Input placeholder={'请输入'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        groupManagerName: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    groupManagerName: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                </div>
+                {/* <div className='btnGroup'>
+                    <UpDataActBtn record type='ADD' />
+                </div> */}
+            </div>
+            <div style={{ marginTop: 16 }}>
+                <KCIMTable columns={columns as ProColumns[]} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

+ 96 - 0
src/pages/baseInfoMana/checkGroupMana/service.ts

@@ -0,0 +1,96 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 16:31:27
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-10-12 18:16:15
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { request } from 'umi';
+
+//获取table列表数据
+
+export type FenyeTemplateItemType = {
+  id:number;
+  hiId:number;
+  name:string;
+  content:string;
+  remark:string;
+  createUserId:number;
+  createUserName:string;
+  date:string
+}
+
+
+export const getChackGroupData = (params?:any) => {
+  return request<{
+       currPage: number;
+       current:number;
+       list:any[];
+       pageSize:number;
+       totalCount:number;
+       totalPage:number;
+  }>('/manager/CheckGroup/getCheckGroupList', {
+    method: 'GET',
+    params:{...params}
+  });
+};
+
+//获取查核组字典
+export const getCheckData = (params?:any) => {
+  return request<{
+       currPage: number;
+       current:number;
+       list:any[];
+       pageSize:number;
+       totalCount:number;
+       totalPage:number;
+  }>('/manager/CheckGroup/getCheckGroup', {
+    method: 'GET',
+    params:{...params}
+  });
+};
+
+
+//新增表格数据 
+export type AddTableDataType = {
+  name:string;
+  content:string;
+  remark:string;
+}
+export const addData = (data:AddTableDataType) => {
+  return request('/manager/setting/addPageTemplate', {
+    method: 'POST',
+    data
+  });
+};
+
+
+//编辑表格数据
+
+export const editData = (data:{id:number}&AddTableDataType) => {
+  return request('/manager/setting/editPageTemplate', {
+    method: 'POST',
+    data
+  });
+};
+
+//删除表格操作
+
+export const delData = (id:string) => {
+  return request('/manager/setting/deletePageTemplate', {
+    method: 'POST',
+    params:{id}
+  });
+};
+
+
+
+
+
+
+
+

+ 43 - 0
src/pages/baseInfoMana/checkGroupMana/style.less

@@ -0,0 +1,43 @@
+.checkGroupMana {
+  padding: 16px;
+  background: #FFFFFF;
+  border-radius: 4px;
+
+
+  .toolBar {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+
+    .filter {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      align-items: center;
+
+      .filterItem {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    .btnGroup {
+      .add {
+        cursor: pointer;
+        display: inline-block;
+        font-size: 14px;
+        font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+        font-weight: 400;
+        color: #FFFFFF;
+        line-height: 24px;
+        padding: 0 14px;
+        background: #3377FF;
+        border-radius: 4px;
+      }
+    }
+
+  }
+}

+ 120 - 0
src/pages/baseInfoMana/checkGroupMana/tableSelector.tsx

@@ -0,0 +1,120 @@
+import React, { useEffect, useState } from "react";
+import {Input} from 'antd'
+import { KCIMTable } from "@/components/KCIMTable";
+import { createFromIconfontCN } from "@ant-design/icons";
+import { getCheckData } from "../checkGroupMana/service";
+import { getData } from "@/pages/setting/qualitativeOptionsMana/service";
+import { ModalForm } from "@ant-design/pro-components";
+
+// import './style.less';
+
+
+interface TableSelecterProps  {
+    tableSelecterColumn: any[];
+    record: any
+}
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+
+const TableSelecter = ({tableSelecterColumn, record,open,title,onVisibleChange,rowKey='id',request,onFinish }:{
+    tableSelecterColumn:any[],record:any,open:boolean,title:string,onVisibleChange:(bool:boolean)=>void,
+    rowKey?:string,request?:(params:any)=>Promise<any>,onFinish?:(selectedKeys:React.Key[],selectedRows:any[])=>void
+})=>{
+
+    const Table = React.forwardRef(({ }: TableSelecterProps, ref) => {
+
+        const [datasource, set_datasource] = useState<any[]>([]);
+        const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+        const [selectedRows,set_selectedRows] = useState<any[]>([]);
+        const [showList, set_showList] = useState<any[]>([]);
+        
+        
+        const onSelectChange = (newSelectedRowKeys: React.Key[],selectedRows:any) => {
+            setSelectedKeys([...newSelectedRowKeys]);
+    
+        };
+    
+        const saveHandle = async () => {
+    
+            onFinish&&onFinish(selectedKeys,selectedRows);
+            
+        }
+    
+    
+        return (
+            <div >
+                <Input placeholder={'请输入项目名称'} allowClear autoComplete='off'
+                    suffix={
+                        <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />
+                    }
+                    style={{ marginBottom: 8 }}
+                    onChange={(e) => {
+                        if (e.target.value.length != 0) {
+                            const result = datasource.filter(item => item.indicatorName.indexOf(e.target.value) != -1);
+                            set_showList(result);
+                        } else {
+                            set_showList(datasource);
+                        }
+    
+                    }}
+    
+                />
+                <KCIMTable columns={tableSelecterColumn}
+                    options={{
+                        density: true,
+                        setting: {
+                            listsHeight: 100,
+                        },
+                    }}
+                    rowKey={rowKey}
+                    scroll={{ y: 400 }}
+                    tableAlertRender={false}
+                    rowSelection={{
+                        // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
+                        // 注释该行则默认不显示下拉选项
+                        // selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
+                        onChange: onSelectChange,
+                    }}
+                    pagination={{ showTitle: false, showSizeChanger: true }}
+                    //dataSource={showList}
+                    request={request?async (params)=>request(params):undefined}
+                />
+                <div className='footer'>
+                    <span className='cancel' onClick={() => close()}>取消</span>
+                    <span className='ok' onClick={() => saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}</span>
+                </div>
+            </div>
+    
+        )
+    });
+
+    const close = ()=>{
+        onVisibleChange&&onVisibleChange(false);
+    }
+
+
+    return (
+        <ModalForm className="TableSelecter" title={title} width={600} submitter={{
+            render:false
+        }} open={open} modalProps={{
+            closable: false,
+        }}>
+            <Table
+                // ref={tableSelecterRef}
+                record={undefined}
+                tableSelecterColumn={tableSelecterColumn}
+            ></Table>
+        </ModalForm>
+    )
+
+}
+
+
+
+
+export default TableSelecter

+ 319 - 0
src/pages/baseInfoMana/empMana/index.tsx

@@ -0,0 +1,319 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-09-09 10:56:43
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+
+import { ActionType, DrawerForm, EditableFormInstance, EditableProTable, ProFormCheckbox, ProFormInstance, ProFormSelect } from '@ant-design/pro-components';
+import { ModalForm, ProFormDigit, ProFormText, ProFormTextArea } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Switch } from 'antd';
+import { createRef, useEffect, useRef, useState } from 'react'
+
+import { addData, bindCheckGroupReq, bindUnitReq, delData, editData, getData } from './service';
+
+import './style.less';
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+import KCIMDrawerForm from '@/components/KCIMDrawerForm';
+import TableTransfer from './transform';
+import TableSelecter from './tableSelector';
+import { getCheckData } from '../checkGroupMana/service';
+import { debounce } from 'lodash';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+type TableDataResponse = {
+    data: any[];
+    success: boolean;
+    total: number;
+    pageSize: number;
+    totalPage: number;
+};
+
+
+
+export default function FenyeTemplate() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+    const [tableSelecterVisible, set_tableSelecterVisible] = useState(false);
+    const [tableSelecterType, set_tableSelecterType] = useState<'UNIT' | 'CHECKGROUP'>('UNIT'); //穿梭框类型
+
+    const [currentEdit, set_currentEdit] = useState<any | undefined>(undefined);
+
+    const columns: ProColumns[] = [
+
+        {
+            title: 'ID',
+            dataIndex: 'id',
+        },
+        // {
+        //     title: '工号',
+        //     dataIndex: 'employeeId',
+        // },
+        {
+            title: '用户名',
+            dataIndex: 'account',
+        },
+        {
+            title: '姓名',
+            dataIndex: 'name',
+        },
+        {
+            title: '查核组',
+            dataIndex: 'groupList',
+            ellipsis:true,
+            renderText(groupList, record, index, action) {
+                if (groupList) {
+                    return groupList.reduce((prev: string, next: any) => `${prev.length > 0 ? prev + ',' : prev}${next.name}`, '')
+                }
+            },
+        },
+        {
+            title: '单位名',
+            dataIndex: 'departList',
+            ellipsis: true,
+            renderText(departList, record, index, action) {
+                if (departList) {
+                    return departList.reduce((prev: string, next: any) => `${prev.length > 0 ? prev + ',' : prev}${next.name}`, '')
+                }
+            },
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 160,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <UpDataActBtn key={'act'} record={record} type='EDIT' />,
+                    <a key='unit' onClick={() => { openTransformModal(record); set_tableSelecterType('UNIT'); }}>单位</a>,
+                    <a key='checkGroup' onClick={() => { openTransformModal(record); set_tableSelecterType('CHECKGROUP'); }}>查核组</a>
+                ]
+            },
+        },
+
+    ]
+
+
+    const getTableData = async (params: any) => {
+        const resp = await getData(params);
+        if (resp) {
+            return {
+                data: resp.list,
+                success: true,
+                total: resp.totalCount
+            }
+        }
+        return []
+    }
+
+
+
+    const updateTable = async (formVal: any, type: 'EDIT' | "ADD") => {
+        if (type == 'ADD') {
+            const result = {
+                name: formVal.name,
+                content: JSON.stringify(formVal.table),
+                remark: formVal.remark
+            }
+            const resp = await addData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+
+        }
+        if (type == 'EDIT') {
+            const result = {
+                id: formVal.id,
+                name: formVal.name,
+                employeeId: formVal.employeeId,
+                account: formVal.account,
+                permission: formVal.permission.join(',')
+            }
+            const resp = await editData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+        }
+
+        return true;
+    }
+
+    const UpDataActBtn = ({ record, type }: { record: any, type: 'EDIT' | 'ADD' }) => {
+
+
+        const formRef = useRef<ProFormInstance<any>>();
+
+        return (
+            <ModalForm
+                title={`${type == 'EDIT' ? '编辑' : '新增'}权限`}
+                width={600}
+                initialValues={type == 'EDIT' ? { ...record, permission: record.roleList ? record.roleList.split(',') : [] } : {}}
+                trigger={
+                    type == 'EDIT' ? <a key="edit" >编辑权限</a> : <span className='add'>新增</span>
+                }
+                onFinish={(val: any) => {
+                    return updateTable(type == 'EDIT' ? { ...record, ...val } : { ...val }, type);
+                }}
+                formRef={formRef}
+                modalProps={{ destroyOnClose: true }}
+                colProps={{ span: 24 }}
+                grid
+            >
+                <ProFormCheckbox.Group
+                    name="permission"
+                    layout='horizontal'
+                    label="行业分布"
+                    options={[
+                        { label: '管理员', value: '1' },
+                        { label: '查核组长', value: '2' },
+                        { label: '查核组员', value: '3' },
+                        { label: '单位负责人', value: '4' },
+                        { label: '改善人', value: '5' },
+                        { label: '职能科室负责人', value: '6' },
+                        { label: '职能科室普通人员', value: '7' },
+                        { label: '自查人', value: '8' },
+                    ]}
+                />
+            </ModalForm>
+        )
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+    }
+
+
+    const openTransformModal = (record: any) => {
+        set_currentEdit(record);
+        set_tableSelecterVisible(true);
+    }
+
+
+
+    const tableSelecterCommit = async (keys: React.Key[], rows: any[]) => {
+        if (tableSelecterType == 'CHECKGROUP') {
+            const result = {
+                employeeId: currentEdit.employeeId,
+                employeeName: currentEdit.name,
+                groupList: rows.map((a: any) => ({
+                    code: a.code,
+                    name: a.name,
+                    isManager: a.flag ? 1 : 0
+                }))
+            }
+            const resp = await bindCheckGroupReq(result);
+            if (resp) {
+                set_tableSelecterVisible(false);
+                tableRef.current?.reload();
+            }
+        }
+        if (tableSelecterType == 'UNIT') {
+            const result = {
+                employeeId: currentEdit.employeeId,
+                employeeName: currentEdit.name,
+                departmentList: rows.map((a: any) => ({
+                    code: a.code,
+                    name: a.name,
+                    isManager: a.flag ? 1 : 0,
+                    isFunction: 0
+                }))
+            };
+            const resp = await bindUnitReq(result);
+            if (resp) {
+                set_tableSelecterVisible(false);
+                tableRef.current?.reload();
+            }
+
+        }
+    }
+
+    const debouncedFetch = debounce(async (keyWords, callback) => {
+        const resp = await getCheckData({ pageSize: 20, current: 1, filter: keyWords });
+        if (resp) {
+            callback(resp.list.map((a: any) => ({
+                label: a.name,
+                value: a.code,
+            })));
+        } else {
+            callback([]);
+        }
+    }, 300);
+
+
+    useEffect(() => {
+
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='empMana' title={false}>
+            <TableSelecter
+                onVisibleChange={(bool) => set_tableSelecterVisible(bool)}
+                title='关联'
+                rowKey={tableSelecterType == 'UNIT' ? 'code' : 'id'}
+                tableSelecterType={tableSelecterType}
+                record={currentEdit}
+                open={tableSelecterVisible}
+                onFinish={(keys, rows) => tableSelecterCommit(keys, rows)}
+            />
+            <div className='toolBar'>
+                <div className='filter'>
+                    <div className='filterItem' style={{ marginRight: 16, width: 220 }}>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'请输入姓名/工号'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        filter: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    filter: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                </div>
+                {/* <div className='btnGroup'>
+                    <UpDataActBtn record type='ADD' />
+                </div> */}
+            </div>
+            <div style={{ marginTop: 16 }}>
+                <KCIMTable columns={columns as ProColumns[]} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

+ 106 - 0
src/pages/baseInfoMana/empMana/service.ts

@@ -0,0 +1,106 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 16:31:27
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-10-12 15:56:04
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { request } from 'umi';
+
+//获取table列表数据
+
+export type FenyeTemplateItemType = {
+  id:number;
+  hiId:number;
+  name:string;
+  content:string;
+  remark:string;
+  createUserId:number;
+  createUserName:string;
+  date:string
+}
+
+
+export const getData = (params?:any) => {
+  return request('/manager/Employee/getEmployee', {
+    method: 'GET',
+    params:{...params}
+  });
+};
+
+
+//新增表格数据 
+export type AddTableDataType = {
+  name:string;
+  content:string;
+  remark:string;
+}
+export const addData = (data:AddTableDataType) => {
+  return request('/manager/setting/addPageTemplate', {
+    method: 'POST',
+    data
+  });
+};
+
+
+//编辑权限
+export const editData = (data:{id:number,account:string,name:string,employeeId:number,permission:string}) => {
+  return request('/manager/Employee/editEmployeePermission', {
+    method: 'POST',
+    data
+  });
+};
+
+//关联单位
+export const bindUnitReq = (data:{
+  employeeId:string,
+  employeeName:string,
+  departmentList:{
+    code:string,
+    name:string,
+    isManager:number,
+    isFunction:number
+  }[]
+}) => {
+  return request('/manager/Employee/editDepartment', {
+    method: 'POST',
+    data
+  });
+};
+
+//关联查核组
+export const bindCheckGroupReq = (data:{
+  employeeId:string,
+  employeeName:string,
+  groupList:{
+    code:string,
+    name:string,
+    isManager:number,
+  }[]
+}) => {
+  return request('/manager/Employee/editCheckGroup', {
+    method: 'POST',
+    data
+  });
+};
+
+//删除表格操作
+
+export const delData = (id:string) => {
+  return request('/manager/setting/deletePageTemplate', {
+    method: 'POST',
+    params:{id}
+  });
+};
+
+
+
+
+
+
+
+

+ 80 - 0
src/pages/baseInfoMana/empMana/style.less

@@ -0,0 +1,80 @@
+
+
+
+.TableSelecter {
+
+  .pfm-ant-modal-footer {
+    display: none !important;
+  }
+  
+  .footer {
+       display: flex;
+       flex-direction:row;
+       justify-content: flex-end;
+       margin-top: 15px;
+       span {
+           display: inline-block;
+           width: 56px;
+           height: 24px;  
+           font-size: 14px;
+           line-height: 23px;
+           text-align: center;
+           border-radius: 4px;
+           cursor: pointer;
+
+           &.ok {
+               color: #FFFFFF;
+               background:#3377FF;
+               margin-left: 8px;
+           }
+           &.cancel {
+               border: 1px solid #DAE2F2;
+           }
+       }
+
+  }
+}
+
+.empMana {
+  padding: 16px;
+  background: #FFFFFF;
+  border-radius: 4px;
+
+
+  .toolBar {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+
+    .filter {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      align-items: center;
+
+      .filterItem {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    .btnGroup {
+      .add {
+        cursor: pointer;
+        display: inline-block;
+        font-size: 14px;
+        font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+        font-weight: 400;
+        color: #FFFFFF;
+        line-height: 24px;
+        padding: 0 14px;
+        background: #3377FF;
+        border-radius: 4px;
+      }
+    }
+
+  }
+}

+ 250 - 0
src/pages/baseInfoMana/empMana/tableSelector.tsx

@@ -0,0 +1,250 @@
+import React, { useEffect, useState } from "react";
+import { Input, Switch } from 'antd'
+import { KCIMTable } from "@/components/KCIMTable";
+import { createFromIconfontCN } from "@ant-design/icons";
+import { getChackGroupData, getCheckData } from "../checkGroupMana/service";
+
+import { ModalForm, ProColumns } from "@ant-design/pro-components";
+import { getData } from "../unitMana/service";
+import { set } from "lodash";
+
+// import './style.less';
+
+
+interface TableSelecterProps {
+    record: any
+}
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+
+const TableSelecter = ({ tableSelecterType, record, open, title, onVisibleChange, rowKey = 'id', request, onFinish }: {
+    record: any, open: boolean, title: string, onVisibleChange: (bool: boolean) => void,
+    tableSelecterType: 'UNIT' | 'CHECKGROUP',
+    rowKey?: string, request?: (params: any) => Promise<any>, onFinish?: (selectedKeys: React.Key[], selectedRows: any[]) => void
+}) => {
+
+
+    const Table = React.forwardRef(({ }: TableSelecterProps, ref) => {
+
+        const [datasource, set_datasource] = useState<any[]>([]);
+        const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+        const [selectedRows, set_selectedRows] = useState<any[]>([]);
+        const [showList, set_showList] = useState<any[]>([]);
+
+
+        const unitColumns: ProColumns[] = [
+            {
+                title: 'Code',
+                dataIndex: 'code',
+            },
+            {
+                title: '单位名',
+                dataIndex: 'name',
+            },
+            {
+                title: '是否单位管理人',
+                dataIndex: 'flag',
+                renderText(flag, record, index, action) {
+                    return <Switch size='small' checked={flag} onChange={(bool) => onSwitchChange(bool, record)} />
+                },
+            }
+        ];
+        const checkGroupColumns: ProColumns[] = [
+            {
+                title: 'ID',
+                dataIndex: 'id',
+            },
+            {
+                title: '查核组名',
+                dataIndex: 'name',
+            },
+            {
+                title: '是否查核组长',
+                dataIndex: 'flag',
+                renderText(flag, record, index, action) {
+                    return <Switch size='small' checked={flag} onChange={(bool) => onSwitchChange(bool, record)} />
+                },
+            }
+        ];
+
+
+        const onSwitchChange = (bool: boolean, record: any) => {
+            const newData = datasource.map((item) => {
+                if (item.code == record.code) {
+                    return {
+                        ...item,
+                        flag: bool
+                    }
+                } else {
+                    return item
+                }
+            });
+            const newShowList = showList.map((item) => {
+                if (item.code == record.code) {
+                    return {
+                        ...item,
+                        flag: bool
+                    }
+                } else {
+                    return item
+                }
+            });
+
+            
+            set_datasource([...newData]);
+            set_showList([...newShowList]);
+        }
+
+        const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any) => {
+            setSelectedKeys([...newSelectedRowKeys]);
+            set_selectedRows([...selectedRows]);
+
+        };
+
+        const saveHandle = async () => {
+            const selectedRowCodes = selectedRows.map((a)=>a.code);
+            const rows = datasource.filter((a)=>selectedRowCodes.includes(a.code));
+            onFinish && onFinish(selectedKeys, rows);
+        }
+
+        const getTableData = async () => {
+            if(tableSelecterType == 'UNIT'){
+                const resp = await getData();
+                const checkedUnitCodes = record.departList?record.departList.map((a:any)=>a.code):[];
+                let selectedCodes:string[] = [];
+                let selectedRows:any[] = [];
+                if (resp) {
+                    const data = resp.map((a:any)=>{
+                        if(checkedUnitCodes.includes(a.code)){
+                            selectedCodes.push(a.code);
+                            selectedRows.push(a);
+                            const needItem = record.departList.filter((b:any)=>a.code == b.code);
+                            
+                             return {
+                                ...a,
+                                flag:needItem[0].isManager?true:false
+                             }
+                        }else{
+                             return a
+                        }
+                    });
+
+                    set_showList(data);
+                    set_selectedRows([...selectedRows]);
+                    setSelectedKeys([...selectedCodes]);
+                    set_datasource([...datasource, ...data]);
+                }
+            }
+            if(tableSelecterType == 'CHECKGROUP'){
+                const resp = await getCheckData({pageSize:500,current:1});
+                const checkedUnitCodes = record.groupList?record.groupList.map((a:any)=>a.code):[];
+                let selectedCodes:string[] = [];
+                let selectedRows:any[] = [];
+                if (resp) {
+                    const data = resp.list.map((a:any)=>{
+                          if(checkedUnitCodes.includes(a.code)){
+                            selectedCodes.push(a.code);
+                            selectedRows.push(a);
+                            const needItem = record.groupList.filter((b:any)=>a.code == b.code);
+                               return {
+                                  ...a,
+                                  flag:needItem[0].isManager?true:false
+                               }
+                          }else{
+                               return a
+                          }
+                    });
+                    set_showList(data);
+                    set_selectedRows([...selectedRows]);
+                    setSelectedKeys([...selectedCodes]);
+                    set_datasource([...datasource, ...data]);
+                }
+            }
+
+            return Promise.resolve([]);
+        }
+
+ 
+
+        useEffect(() => {
+            getTableData()
+        }, [])
+
+
+        return (
+            <div >
+                <Input placeholder={tableSelecterType == 'UNIT'?'请输入单位名称':'请输入查核组名称'} allowClear autoComplete='off'
+                    suffix={
+                        <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />
+                    }
+                    style={{ marginBottom: 8 }}
+                    onChange={(e) => {
+                        if (e.target.value.length != 0) {
+                            const result = datasource.filter(item => item.name.indexOf(e.target.value) != -1);
+                            set_showList(result);
+                        } else {
+                            set_showList(datasource);
+                        }
+
+                    }}
+
+                />
+                <KCIMTable columns={tableSelecterType == 'UNIT' ? unitColumns : checkGroupColumns}
+                    options={{
+                        density: true,
+                        setting: {
+                            listsHeight: 100,
+                        },
+                    }}
+                    rowKey={rowKey}
+                    scroll={{ y: 400 }}
+                    tableAlertRender={false}
+                    rowSelection={{
+                        // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
+                        // 注释该行则默认不显示下拉选项
+                        // selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
+                        selectedRowKeys:selectedKeys,
+                        onChange: onSelectChange,
+                    }}
+                    pagination={{ showTitle: false, showSizeChanger: true }}
+                    dataSource={showList}
+
+                />
+                <div className='footer'>
+                    <span className='cancel' onClick={() => close()}>取消</span>
+                    <span className='ok' onClick={() => saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}</span>
+                </div>
+            </div>
+
+        )
+    });
+
+    const close = () => {
+        onVisibleChange && onVisibleChange(false);
+    }
+
+
+    return (
+        <ModalForm className="TableSelecter" title={title} width={500} submitter={{
+            render: false
+        }} open={open} modalProps={{
+            closable: false,
+        }}>
+            <Table
+                // ref={tableSelecterRef}
+                record={undefined}
+            ></Table>
+        </ModalForm>
+    )
+
+}
+
+
+
+
+export default TableSelecter

+ 134 - 0
src/pages/baseInfoMana/empMana/transform.tsx

@@ -0,0 +1,134 @@
+import React, { useEffect, useImperativeHandle, useState } from "react";
+import {Transfer} from 'antd'
+import { TransferItem, TransferProps } from 'antd/es/transfer';
+import { ColumnsType } from 'antd/es/table';
+import { difference } from "lodash";
+import { TableRowSelection } from 'antd/es/table/interface';
+import { KCIMTable } from "@/components/KCIMTable";
+
+
+interface TableTransferProps extends TransferProps<TransferItem> {
+    leftColumns: ColumnsType<any>;
+    rightColumns: ColumnsType<any>;
+}
+
+const TableTransfer = React.forwardRef(({ leftColumns, rightColumns, ...restProps }: TableTransferProps, ref) => {
+
+    const [_data, _set_data] = useState<any>();
+    const [targetKeys, setTargetKeys] = useState<string[]>([]);
+    const [datasource, set_datasource] = useState<any[]>([]);
+    const [selectedKeys, setSelectedKeys] = useState<string[]>([]);
+
+    //获取单元
+    const getFuncList = async () => {
+
+        // const resp = await getTotalEmps({
+        //     computeDate: currentComputeDate as string,
+        //     unitCode: currentSelectedTreeNode.code
+        // });
+        // if (resp) {
+        //     //_set_data(resp);
+        //     const allData = resp.allEmployees.concat(resp.checkEmployees);
+        //     set_datasource(allData);
+        //     const defaultSelctedkeys = resp.checkEmployees.map((item: any) => item.empNo);
+        //     setTargetKeys(defaultSelctedkeys);
+        // }
+    }
+
+    const onChange = (nextTargetKeys: string[]) => {
+        setTargetKeys(nextTargetKeys);
+    };
+
+    const onSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => {
+        //console.log('sourceSelectedKeys:', sourceSelectedKeys,'targetSelectedKeys:',targetSelectedKeys);
+        setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);
+    };
+
+    useImperativeHandle(ref, () => ({
+        save: async () => {
+            // const items = datasource.filter(a => targetKeys.includes(a.empNo));
+            // const resp = await saveEmpsRequest(items);
+            // if (resp) {
+            //     tableRef.current?.reload();
+            // }
+        }
+    }));
+
+    useEffect(() => {
+        getFuncList();
+    }, [])
+
+    return (
+        <Transfer className='TableTransfer' showSearch
+            titles={['待选项', '已选项']}
+            locale={{
+                itemUnit: '项',
+                itemsUnit: '项',
+                searchPlaceholder: '请输入',
+            }}
+            oneWay={true}
+            onChange={onChange}
+            onSelectChange={onSelectChange}
+            dataSource={datasource}
+            rowKey={record => record.empNo}
+            targetKeys={targetKeys}
+            selectedKeys={selectedKeys}
+            filterOption={(inputValue, item) => {
+                return item.name!.indexOf(inputValue) !== -1
+
+            }}
+        >
+            {({
+                direction,
+                filteredItems,
+                onItemSelectAll,
+                onItemSelect,
+                selectedKeys: listSelectedKeys,
+                disabled: listDisabled,
+            }) => {
+
+                // console.log({ filteredItems, listSelectedKeys,direction });
+                const columns = direction === 'left' ? leftColumns : rightColumns;
+
+                const rowSelection: TableRowSelection<TransferItem> = {
+                    getCheckboxProps: (item) => ({ disabled: listDisabled || item.disabled }),
+                    onSelectAll(selected, selectedRows) {
+                        const treeSelectedKeys = selectedRows.map(({ empNo }) => empNo);
+                        const diffKeys = selected
+                            ? difference(treeSelectedKeys, listSelectedKeys)
+                            : difference(listSelectedKeys, treeSelectedKeys);
+                        onItemSelectAll(diffKeys as string[], selected);
+                    },
+                    onSelect({ empNo }, selected) {
+                        onItemSelect(empNo as string, selected);
+                    },
+                    selectedRowKeys: listSelectedKeys,
+                };
+
+                return (
+                    <KCIMTable
+                        rowSelection={rowSelection}
+                        columns={columns as TransferItem[]}
+                        dataSource={filteredItems}
+                        size="small"
+                        bordered={false}
+                        rowKey={'empNo'}
+                        pagination={{ showTitle: false, pageSize: 9, showLessItems: false, simple: true, showTotal: () => false }}
+                        tableAlertRender={false}
+                        style={{ pointerEvents: listDisabled ? 'none' : undefined }}
+                        onRow={({ empNo, disabled: itemDisabled }) => ({
+                            onClick: () => {
+                                if (itemDisabled || listDisabled) return;
+                                onItemSelect(empNo as string, !listSelectedKeys.includes(empNo as string));
+                            },
+                        })}
+                    />
+                );
+            }}
+        </Transfer>
+    )
+});
+
+export default TableTransfer
+
+

+ 270 - 0
src/pages/baseInfoMana/unitMana/index.tsx

@@ -0,0 +1,270 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-09-09 10:56:09
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+
+import { ActionType, DrawerForm, EditableFormInstance, EditableProTable, ProFormInstance, ProFormSelect } from '@ant-design/pro-components';
+import { ModalForm, ProFormDigit, ProFormText, ProFormTextArea } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Popconfirm } from 'antd';
+import React, { useEffect, useRef, useState } from 'react'
+
+import { addData, delData, editData, getData } from './service';
+
+import './style.less';
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+import KCIMDrawerForm from '@/components/KCIMDrawerForm';
+import TableSelecter from './tableSelector';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+type TableDataResponse = {
+    data: any[]; 
+    success: boolean; 
+    total: number; 
+    pageSize: number; 
+    totalPage: number;
+};
+
+export default function FenyeTemplate() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+
+    const [tableSelecterVisible, set_tableSelecterVisible] = useState(false);
+    const [tableSelecterType, set_tableSelecterType] = useState<'EMP' | 'CHECKGROUP'>('EMP'); //穿梭框类型
+
+    const [currentEdit,set_currentEdit] = useState<any|undefined>(undefined);
+
+    const columns: ProColumns[] = [
+
+        {
+            title: 'Code',
+            dataIndex: 'code',
+        },
+        {
+            title: '展示排序',
+            dataIndex: 'sort',
+        },
+        {
+            title: '单位名',
+            dataIndex: 'name',
+        },
+        {
+            title: '职能科室',
+            dataIndex: 'createUserName',
+        },
+        {
+            title: '单位负责人',
+            dataIndex: 'manager',
+            renderText(list, record, index, action) {
+                 if(list){
+                      return list.reduce((prev:string,cur:any)=>`${prev.length>0?prev+',':''}${cur.name}`,'')
+                 }
+            },
+        },
+        {
+            title: '备注',
+            dataIndex: 'remark',
+        },
+        {
+            title: '是否作废',
+            dataIndex: 'remark',
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 140,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <UpDataActBtn key={'act'} record={record} type='EDIT' />,
+                    <a key={'emp'} onClick={() => { openTransformModal(record);set_tableSelecterType('EMP');}} >人员</a>,
+                    // <a key={'theme'}>主题</a>,
+                    // <a key={'checkPoint'}>查核要点</a>
+                ]
+            },
+        },
+
+    ]
+
+
+    const getTableData = async (params: any) => {
+        const resp = await getData(params);
+        if (resp) {
+            return {
+                data: resp,
+                success: true,
+            }
+            
+        }
+        return []
+    }
+
+    const openTransformModal = (record:any) => {
+        set_currentEdit(record);
+        set_tableSelecterVisible(true);
+    }
+
+
+    const updateTable = async (formVal: any, type: 'EDIT' | "ADD") => {
+
+        const content = formVal.table.map((a: any) => ({
+
+        }))
+
+        if (type == 'ADD') {
+            const result = {
+                name: formVal.name,
+                content: JSON.stringify(formVal.table),
+                remark: formVal.remark
+            }
+            const resp = await addData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+
+        }
+        if (type == 'EDIT') {
+            const result = {
+                id: formVal.id,
+                name: formVal.name,
+                content: JSON.stringify(formVal.table),
+                remark: formVal.remark
+            }
+            const resp = await editData({ ...result });
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+        }
+
+        return true;
+    }
+
+    const UpDataActBtn = ({ record, type }: { record: any, type: 'EDIT' | 'ADD' }) => {
+
+
+        const formRef = useRef<ProFormInstance<any>>();
+        
+
+        return (
+            <ModalForm
+                title={`${type == 'EDIT' ? '编辑' : '新增'}单位`}
+                width={400}
+                initialValues={type == 'EDIT' ? { ...record, filedType: 'Text' } : { filedType: 'Text' }}
+                trigger={
+                    type == 'EDIT' ? <a key="edit" >编辑</a> : <span className='add'>新增</span>
+                }
+                onFinish={(val: any) => {
+                    return updateTable(type == 'EDIT' ? { ...record, ...val } : { ...val }, type);
+                }}
+                formRef={formRef}
+                modalProps={{ destroyOnClose: true }}
+                colProps={{ span: 24 }}
+                grid
+            >
+                <ProFormText
+                    name="name"
+                    label="单位名称:"
+                    placeholder="请输入"
+                    rules={[{ required: true, message: '名称不能为空!' }]}
+                />
+                <ProFormDigit name="sort" label='展示排序' />
+                <ProFormTextArea
+                    name="remark"
+                    label="备注:"
+                    placeholder="请输入"
+                />
+
+                
+            </ModalForm>
+        )
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+    }
+
+    const tableSelecterCommit = async (keys:React.Key[],rows:any[]) => {
+        
+    }
+
+
+    useEffect(() => {
+
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='unitMana' title={false}>
+            
+            <TableSelecter
+                onVisibleChange={(bool) => set_tableSelecterVisible(bool)}
+                title='关联'
+                rowKey='id'
+                tableSelecterType={tableSelecterType}
+                record={currentEdit}
+                open={tableSelecterVisible}
+                onFinish={(keys,rows)=>tableSelecterCommit(keys,rows)}
+            />
+
+            <div className='toolBar'>
+                <div className='filter'>
+                    <div className='filterItem' style={{ marginRight: 16, width: 250 }}>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'请输入单位/负责人'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        filter: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    filter: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                </div>
+                {/* <div className='btnGroup'>
+                    <UpDataActBtn record type='ADD' />
+                </div> */}
+            </div>
+            <div style={{ marginTop: 16 }}>
+                <KCIMTable columns={columns as ProColumns[]} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

+ 62 - 0
src/pages/baseInfoMana/unitMana/service.ts

@@ -0,0 +1,62 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 16:31:27
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-10-12 17:11:48
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { request } from 'umi';
+
+//获取table列表数据
+
+export const getData = (params?:any) => {
+  return request('/manager/Department/getDepartmentList', {
+    method: 'GET',
+    params:{...params}
+  });
+};
+
+
+//新增表格数据 
+export type AddTableDataType = {
+  name:string;
+  content:string;
+  remark:string;
+}
+export const addData = (data:AddTableDataType) => {
+  return request('/manager/setting/addPageTemplate', {
+    method: 'POST',
+    data
+  });
+};
+
+
+//编辑表格数据
+
+export const editData = (data:{id:number}&AddTableDataType) => {
+  return request('/manager/setting/editPageTemplate', {
+    method: 'POST',
+    data
+  });
+};
+
+//删除表格操作
+
+export const delData = (id:string) => {
+  return request('/manager/setting/deletePageTemplate', {
+    method: 'POST',
+    params:{id}
+  });
+};
+
+
+
+
+
+
+
+

+ 78 - 0
src/pages/baseInfoMana/unitMana/style.less

@@ -0,0 +1,78 @@
+
+.TableSelecter {
+
+  .pfm-ant-modal-footer {
+    display: none !important;
+  }
+  
+  .footer {
+       display: flex;
+       flex-direction:row;
+       justify-content: flex-end;
+       margin-top: 15px;
+       span {
+           display: inline-block;
+           width: 56px;
+           height: 24px;  
+           font-size: 14px;
+           line-height: 23px;
+           text-align: center;
+           border-radius: 4px;
+           cursor: pointer;
+
+           &.ok {
+               color: #FFFFFF;
+               background:#3377FF;
+               margin-left: 8px;
+           }
+           &.cancel {
+               border: 1px solid #DAE2F2;
+           }
+       }
+
+  }
+}
+
+.unitMana {
+  padding: 16px;
+  background: #FFFFFF;
+  border-radius: 4px;
+
+
+  .toolBar {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+
+    .filter {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      align-items: center;
+
+      .filterItem {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    .btnGroup {
+      .add {
+        cursor: pointer;
+        display: inline-block;
+        font-size: 14px;
+        font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+        font-weight: 400;
+        color: #FFFFFF;
+        line-height: 24px;
+        padding: 0 14px;
+        background: #3377FF;
+        border-radius: 4px;
+      }
+    }
+
+  }
+}

+ 198 - 0
src/pages/baseInfoMana/unitMana/tableSelector.tsx

@@ -0,0 +1,198 @@
+import React, { useEffect, useState } from "react";
+import { Input, Switch } from 'antd'
+import { KCIMTable } from "@/components/KCIMTable";
+import { createFromIconfontCN } from "@ant-design/icons";
+import { getCheckData } from "../checkGroupMana/service";
+
+import { ModalForm, ProColumns } from "@ant-design/pro-components";
+import { getData } from "../empMana/service";
+
+// import './style.less';
+
+
+interface TableSelecterProps {
+    record: any
+}
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+
+const TableSelecter = ({ tableSelecterType, record, open, title, onVisibleChange, rowKey = 'id', request, onFinish }: {
+    record: any, open: boolean, title: string, onVisibleChange: (bool: boolean) => void,
+    tableSelecterType:string,
+    rowKey?: string, request?: (params: any) => Promise<any>, onFinish?: (selectedKeys: React.Key[], selectedRows: any[]) => void
+}) => {
+
+
+    const Table = React.forwardRef(({ }: TableSelecterProps, ref) => {
+
+        const [datasource, set_datasource] = useState<any[]>([]);
+        const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+        const [selectedRows, set_selectedRows] = useState<any[]>([]);
+        const [showList, set_showList] = useState<any[]>([]);
+
+
+        const empColumns: ProColumns[] = [
+            {
+                title: 'ID',
+                dataIndex: 'id',
+            },
+            {
+                title: '姓名',
+                dataIndex: 'name',
+            },
+        ];
+        const checkGroupColumns: ProColumns[] = [
+            {
+                title: 'ID',
+                dataIndex: 'id',
+            },
+            {
+                title: '查核组名',
+                dataIndex: 'id',
+            },
+            {
+                title: '是否查核组长',
+                dataIndex: 'flag',
+                renderText(flag, record, index, action) {
+                    return <Switch size='small' checked={flag == '1'} onChange={(bool) => onSwitchChange(bool, record)} />
+                },
+            }
+        ];
+
+
+        const onSwitchChange = (bool: boolean, record: any) => {
+            const newData = datasource.map((item) => {
+                if (item.id == record.id) {
+                    return {
+                        ...item,
+                        flag: bool
+                    }
+                } else {
+                    return item
+                }
+            });
+            const newShowList = showList.map((item) => {
+                if (item.id == record.id) {
+                    return {
+                        ...item,
+                        flag: bool
+                    }
+                } else {
+                    return item
+                }
+            });
+
+            // console.log({newData,newShowList});
+            set_datasource([...newData]);
+            set_showList([...newShowList]);
+        }
+
+        const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any) => {
+            setSelectedKeys([...newSelectedRowKeys]);
+
+        };
+
+        const saveHandle = async () => {
+
+            onFinish && onFinish(selectedKeys, selectedRows);
+
+        }
+
+        const getTableData = async () => {
+            const resp = await getData({
+                current: 1,
+                pageSize: 500
+            });
+            if (resp) {
+                set_showList(resp.list);
+                set_datasource([...datasource, ...resp.list]);
+            }
+
+            return Promise.resolve([]);
+        }
+
+        useEffect(()=>{
+            console.log({record});
+        },[record]);
+
+        useEffect(() => {
+            getTableData()
+        }, [])
+
+
+        return (
+            <div >
+                <Input placeholder={'请输入名称'} allowClear autoComplete='off'
+                    suffix={
+                        <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />
+                    }
+                    style={{ marginBottom: 8 }}
+                    onChange={(e) => {
+                        if (e.target.value.length != 0) {
+                            const result = datasource.filter(item => item.name.indexOf(e.target.value) != -1);
+                            set_showList(result);
+                        } else {
+                            set_showList(datasource);
+                        }
+
+                    }}
+
+                />
+                <KCIMTable columns={tableSelecterType == 'EMP' ? empColumns : checkGroupColumns}
+                    options={{
+                        density: true,
+                        setting: {
+                            listsHeight: 100,
+                        },
+                    }}
+                    rowKey={rowKey}
+                    scroll={{ y: 400 }}
+                    tableAlertRender={false}
+                    rowSelection={{
+                        // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
+                        // 注释该行则默认不显示下拉选项
+                        // selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
+                        onChange: onSelectChange,
+                    }}
+                    pagination={{ showTitle: false, showSizeChanger: true }}
+                    dataSource={showList}
+
+                />
+                <div className='footer'>
+                    <span className='cancel' onClick={() => close()}>取消</span>
+                    <span className='ok' onClick={() => saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}</span>
+                </div>
+            </div>
+
+        )
+    });
+
+    const close = () => {
+        onVisibleChange && onVisibleChange(false);
+    }
+
+
+    return (
+        <ModalForm className="TableSelecter" title={title} width={600} submitter={{
+            render: false
+        }} open={open} modalProps={{
+            closable: false,
+        }}>
+            <Table
+                // ref={tableSelecterRef}
+                record={undefined}
+            ></Table>
+        </ModalForm>
+    )
+
+}
+
+
+
+
+export default TableSelecter

+ 481 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMana/index.tsx

@@ -0,0 +1,481 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-10-12 10:38:26
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+
+import { createFromIconfontCN } from '@ant-design/icons';
+
+
+import { ActionType, ProFormDependency, ProFormInstance, ProFormText, ProFormSelect, ProFormRadio } from '@ant-design/pro-components';
+import { ModalForm } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Popconfirm, Tag, Tabs } from 'antd';
+import { Key, useEffect, useRef, useState } from 'react';
+
+import 'moment/locale/zh-cn';
+import locale from 'antd/es/date-picker/locale/zh_CN';
+
+
+
+import { addData, delData, editData, getAccountingSubjectList, getAccountTypeDictReq } from './service';
+
+import './style.less';
+import { renameChildListToChildren } from '@/utils/tooljs';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+let currentRow: any = undefined;
+
+ export const searchTree = (tree:any[], searchTerm:string) => {
+    const searchTermLower = searchTerm.toLowerCase();
+
+    function searchNode(node:any) {
+        const matchedChildren: any[] = [];
+
+        if (node.children && node.children.length > 0) {
+            node.children.forEach((child: any) => {
+                const matchedChild = searchNode(child);
+                if (matchedChild) {
+                    matchedChildren.push(matchedChild);
+                }
+            });
+        }
+
+        if (node.accountingName.toLowerCase().includes(searchTermLower) || node.accountingCode.toLowerCase().includes(searchTermLower)) {
+            return {
+                ...node,
+                children: matchedChildren.length > 0 ? matchedChildren : node.children
+            };
+        } else if (matchedChildren.length > 0) {
+            return {
+                ...node,
+                children: matchedChildren
+            };
+        }
+
+        return null;
+    }
+
+    return tree.map(rootNode => searchNode(rootNode)).filter(node => node !== null);
+ }
+
+
+ function sortTreeByCode(tree:any[], codeKey = 'accountingCode', childrenKey = 'children') {
+    // 首先对当前层级的节点按照 codeKey 进行排序
+    tree.sort((a, b) => {
+        return Number(a[codeKey]) - Number(b[codeKey]); // 按照 code 从小到大排序
+    });
+
+    // 然后对于每个节点的子节点,不进行排序,只递归下去
+    tree.forEach(node => {
+        if (node[childrenKey] && node[childrenKey].length > 0) {
+            sortTreeByCode(node[childrenKey], codeKey, childrenKey); // 递归处理子节点
+        }
+    });
+
+    return tree; // 返回排序后的树
+}
+
+
+
+export default function AccountingSubMana() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>({ accountType: 1 });
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+    const formRef = useRef<ProFormInstance>();
+    const [selectableLevelList, setSelectableLevelList] = useState([]);//可选的分摊层级列表
+    const [tabs, set_tabs] = useState<any[]>([]);
+    const [accountType, set_accountType] = useState<Key>(1);
+    const columns: ProColumns[] = [
+
+        {
+            title: '会计科目名称',
+            width: 400,
+            ellipsis: true,
+            fixed: 'left',
+            dataIndex: 'accountingName',
+        },
+        {
+            title: '会计科目编码',
+            dataIndex: 'accountingCode',
+        },
+        {
+            title: '会计科目类别',
+            dataIndex: 'typeName',
+        },
+        {
+            title: '成本类别',
+            hideInTable: accountType == 1,
+            dataIndex: 'costType',
+            renderText(type) {
+                return type == 1 ? '医疗成本' : type == 2 ? '医疗全成本' : '医院全成本'
+            },
+        },
+        {
+            title: '成本属性',
+            hideInTable: accountType == 1,
+            dataIndex: 'isBaseCost',
+            renderText(type) {
+                return type == 1 ? '固定成本' : '变动成本'
+            },
+        },
+        {
+            title: '可控类型',
+            dataIndex: 'controlType',
+            renderText(type) {
+                return type == 1 ? '不可控' : '可控'
+            },
+        },
+        {
+            title: '诊别',
+            dataIndex: 'medicalType',
+            renderText(type) {
+                return type == 0 ? '全院' : type == 1 ? '门诊' : '住院'
+            },
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 120,
+            fixed: 'right',
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <UpDataActBtn record={record} type='ADDCHILD' />,
+                    <UpDataActBtn key={'act'} record={record} type='EDIT' />,
+                    <Popconfirm
+                        title="是否确认删除?"
+                        key="del"
+                        onConfirm={() => delTableData(record)}
+                    >
+                        <a>删除</a>
+                    </Popconfirm>,
+                ]
+            },
+        },
+
+    ]
+
+
+    const getTableData = async (params: any) => {
+        const {filter} = params;
+        const resp = await getAccountingSubjectList({ ...params, accountType,pageSize:500 });
+        if (resp) {
+            let data = [];
+            if(filter){
+                 data = searchTree(renameChildListToChildren(resp.list, 'child'),filter) 
+            }else{
+                data = renameChildListToChildren(resp.list, 'child')
+            }
+            return {
+                data:sortTreeByCode(data),
+                success: true,
+                total: resp.totalCount,
+                pageSize: resp.pageSize,
+                totalPage: resp.totalPage,
+            }
+        }
+        return []
+    }
+
+    const delTableData = async (record: any) => {
+        const resp = await delData(record.id);
+        if (resp) {
+            message.success('操作成功!');
+            tableRef.current?.reload();
+            // message.success('操作成功!');
+        }
+    }
+
+    const updateTable = async (formVal: any, type: 'EDIT' | "ADD" | "ADDCHILD") => {
+
+        if (type == 'ADD' || type == 'ADDCHILD') {
+
+            let id = 0;
+            (type == 'ADDCHILD') && (id = formVal.id);
+
+            const result = accountType == 1 ? { ...formVal, accountingType: accountType, id: id } : { ...formVal, accountingType: accountType, id: id, };
+
+            const resp = await addData(result);
+            if (resp) {
+                currentRow = undefined;
+                tableRef.current?.reload();
+                message.success('操作成功!');
+
+            }
+
+        }
+        if (type == 'EDIT') {
+            try {
+                const resp = await editData({ ...formVal, isIncomeGroutSetSelect: false, isShareParamSelect: false, accountType });
+                if (resp) {
+                    tableRef.current?.reload();
+                    message.success('操作成功!');
+                }
+            } catch (error) {
+                console.log({ error });
+            }
+
+        }
+        return true;
+
+    }
+
+
+    const UpDataActBtn = ({ record, type }: { record: any, type: 'EDIT' | 'ADD' | 'ADDCHILD' }) => {
+
+        return (
+            <ModalForm
+                title={`${type == 'EDIT' ? '编辑' : '新增'}会计科目`}
+                width={350}
+                formRef={formRef}
+                initialValues={type == 'EDIT' ? {
+                    ...record
+                } : { controlType: 1, medicalType: 0 }}
+                trigger={
+                    type == 'EDIT' ? <a key="edit" >编辑</a> : type == 'ADDCHILD' ? <a className='add'>添加</a> : <span className='add'>新增</span>
+                }
+                onFinish={(val) => {
+                    return updateTable(type == 'EDIT' ? { ...record, ...val } : type == 'ADDCHILD' ? { ...val, id: record.id } : { ...val }, type);
+                }}
+                modalProps={{ destroyOnClose: true }}
+                colProps={{ span: 24 }}
+                grid
+            >
+                <ProFormText name='typeName' hidden />
+                <ProFormText
+                    label="会计科目编码"
+                    disabled={type == 'EDIT'}
+                    rules={[
+                        {
+                            required: true,
+                            message: '会计科目编码是必填项',
+                        },
+                    ]}
+                    name="accountingCode"
+                />
+                <ProFormText
+                    label="会计科目名"
+                    rules={[
+                        {
+                            required: true,
+                            message: '会计科目名是必填项',
+                        },
+                    ]}
+                    name="accountingName"
+                />
+                <ProFormDependency name={['accountingCode']}>
+                    {
+                        ({ accountingCode }) => {
+                            return accountType == 2 ? (
+                                <>
+                                    <ProFormSelect
+                                        rules={[
+                                            {
+                                                required: true,
+                                                message: '',
+                                            },
+                                        ]}
+                                        options={[
+                                            {
+                                                value: 0,
+                                                label: '不是',
+                                            },
+                                            {
+                                                value: 1,
+                                                label: '是',
+                                            },
+                                        ]}
+                                        name="isBaseCost"
+                                        label="是否固定成本"
+                                    />
+                                    <ProFormRadio.Group
+                                        name="costType"
+                                        label="成本类别"
+                                        rules={[
+                                            {
+                                                required: true,
+                                                message: '成本类别是必填项',
+                                            },
+                                        ]}
+                                        options={[
+                                            {
+                                                label: '医疗成本',
+                                                value: 1,
+                                            },
+                                            {
+                                                label: '医疗全成本',
+                                                value: 2,
+                                            },
+                                            {
+                                                label: '医院全成本',
+                                                value: 3,
+                                            },
+                                        ]}
+                                    />
+                                </>
+                            ) : <></>
+                        }
+                    }
+                </ProFormDependency>
+                <ProFormSelect
+                    rules={[
+                        {
+                            required: true,
+                            message: '请选择会计科目类别',
+                        },
+                    ]}
+                    request={async () => {
+                        const resp = await getAccountTypeDictReq(accountType as number);
+                        if (resp) {
+                            return resp.map((a: any) => ({ label: a.name, value: a.code }))
+                        }
+                        return []
+
+                    }}
+                    fieldProps={{
+                        onChange(value, option: any) {
+                            const { label } = option;
+                            formRef.current?.setFieldValue('typeName', label);
+                        },
+                    }}
+                    name="type"
+                    label="会计科目类别"
+                />
+                <ProFormRadio.Group
+                    name="controlType"
+                    label="可控类型"
+                    rules={[
+                        {
+                            required: true,
+                            message: '可控类型是必填项',
+                        },
+                    ]}
+                    options={[
+                        {
+                            label: '不可控',
+                            value: 1,
+                        },
+                        {
+                            label: '可控',
+                            value: 2,
+                        },
+                    ]}
+                />
+                <ProFormRadio.Group
+                    name="medicalType"
+                    label="就诊类别"
+                    rules={[
+                        {
+                            required: true,
+                            message: '就诊类别是必填项',
+                        },
+                    ]}
+                    options={[
+                        {
+                            label: '全院',
+                            value: 0,
+                        },
+                        {
+                            label: '门诊',
+                            value: 1,
+                        },
+                        {
+                            label: '住院',
+                            value: 3,
+                        },
+                    ]}
+                />
+
+            </ModalForm>
+        )
+    }
+
+    const onTabChanged = (key: Key) => {
+        set_accountType(key);
+        tableRef.current?.reload();
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+
+    }
+
+    useEffect(() => {
+        set_tabs([
+            {
+                label: '收入',
+                key: 1,
+            },
+            {
+                label: '支出',
+                key: 2,
+            },
+        ])
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='AccountingSubMana' title={false}>
+            <div className='toolBar' >
+                <Tabs
+                    defaultActiveKey={tabs.length > 0 ? tabs[0].key : undefined}
+                    items={tabs}
+                    key={'key'}
+                    onChange={(key) => onTabChanged(key)}
+                />
+                <div className='filter' style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center',marginBottom:16 }}>
+                    <div className='filterItem'>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'会计科目编码/名称'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        filter: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    filter: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                    <div className='btnGroup'>
+                        <UpDataActBtn record type='ADD' />
+                    </div>
+                </div>
+
+            </div>
+
+            <div>
+                <KCIMTable pagination={false} columns={columns as ProColumns[]} scroll={{ y: 'calc(100vh - 270px)' }} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

+ 82 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMana/service.ts

@@ -0,0 +1,82 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 16:31:27
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-05-17 11:09:19
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { request } from 'umi';
+
+//获取table列表数据
+export const getAccountingSubjectList = (params:any) => {
+  return request('/costAccount/accounting/list', {
+    method: 'GET',
+    params:{...params},
+  });
+}
+
+
+
+//新增
+export type AddTableDataType = {
+  code:string,
+  name:string,
+  description:string
+}
+
+export const addData = (data:AddTableDataType) => {
+  return request('/costAccount/accounting/save', {
+    
+    method: 'POST',
+    data:{...data}
+  });
+};
+
+
+
+//编辑表格数据
+
+export type TableRowEditType = {
+  id:number;
+}&AddTableDataType
+
+export const editData = (data:any) => {
+  return request('/costAccount/accounting/edit', {
+    method: 'POST',
+    data
+  });
+};
+
+//删除表格操作
+export const delData = (id:string) => {
+  return request('/costAccount/accounting/delete', {
+    method: 'POST',
+    params:{id}
+  });
+};
+
+//获取会计科目类别字典 
+export const getAccountTypeDictReq = (type:number) => {
+  return request('/costAccount/accounting/getAccountTypeDict', {
+    method: 'GET',
+    params:{type}
+  });
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 42 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMana/style.less

@@ -0,0 +1,42 @@
+.AccountingSubMana {
+  padding: 16px;
+  padding-top: 0;
+  background: #FFFFFF;
+  border-radius: 4px;
+
+
+  .toolBar {
+    // display: flex;
+    // flex-direction: row;
+    // justify-content: space-between;
+    // align-items: center;
+
+    .filter {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      align-items: center;
+
+      .filterItem {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    .btnGroup {
+        .add {
+          cursor: pointer;
+          display: inline-block;
+          font-size: 14px;
+          font-weight: 400;
+          color: #FFFFFF;
+          line-height: 24px;
+          padding: 0 14px;
+          background: #3377FF;
+          border-radius: 4px;
+        }
+    }
+  }
+}

+ 310 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMap/index.tsx

@@ -0,0 +1,310 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-10-12 16:04:21
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+
+import { createFromIconfontCN } from '@ant-design/icons';
+
+
+import { ActionType, ProFormDependency, ProFormInstance, ProFormText, ProFormSelect } from '@ant-design/pro-components';
+import { ModalForm } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Popconfirm, Tag, Tabs } from 'antd';
+import { Key, useEffect, useRef, useState } from 'react';
+
+import 'moment/locale/zh-cn';
+import locale from 'antd/es/date-picker/locale/zh_CN';
+
+
+
+import { getAccountProductConnectableList, getAccountProductConnectList, saveAccountProductConnected } from './service';
+
+import './style.less';
+import TableSelecter from '@/components/KCIMTableSelector';
+import { renameChildListToChildren } from '@/utils/tooljs';
+import { searchTree } from '../accountingSubMana';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+const tableSelectorColumns = [
+    {
+        title: 'Id',
+        width:60,
+        dataIndex: 'id',
+    },
+    // {
+    //     title: '会计科目编码',
+    //     width:300,
+    //     dataIndex: 'accountingCode',
+    // },
+    {
+        title: '成本收入项目',
+        dataIndex: 'name',
+    },
+];
+
+
+function sortTreeByCode(tree:any[], codeKey = 'accountingCode', childrenKey = 'children') {
+    // 首先对当前层级的节点按照 codeKey 进行排序
+    tree.sort((a, b) => {
+        return Number(a[codeKey]) - Number(b[codeKey]); // 按照 code 从小到大排序
+    });
+
+    // 然后对于每个节点的子节点,不进行排序,只递归下去
+    tree.forEach(node => {
+        if (node[childrenKey] && node[childrenKey].length > 0) {
+            sortTreeByCode(node[childrenKey], codeKey, childrenKey); // 递归处理子节点
+        }
+    });
+
+    return tree; // 返回排序后的树
+}
+
+
+let currentRow:any = undefined;
+
+export default function AccountingSubMap() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>({ accountType: 1 });
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+    const formRef = useRef<ProFormInstance>();
+    const [tabs, set_tabs] = useState<any[]>([]);
+    const [accountType, set_accountType] = useState<Key>(1);
+    const [tableSelecterVisible,set_tableSelecterVisible] = useState(false);
+    const columns: ProColumns[] = [
+
+        {
+            title: '会计科目名称',
+            width: 400,
+            ellipsis: true,
+            dataIndex: 'accountingName',
+        },
+        {
+            title: '会计科目编码',
+            width:300,
+            ellipsis:true,
+            dataIndex: 'accountingCode',
+        },
+        {
+            title: '收入项目',
+            dataIndex: 'productVOs',
+            ellipsis:true,
+            renderText(productVOs, record) {
+                if (Array.isArray(productVOs)) {
+                    return productVOs.map((item, index) => { return <Tag key={index}>{item.productName}</Tag> })
+                } else {
+                    return <></>
+                }
+            },
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 80,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                const { isParent } = record;
+                return !isParent ? [
+                  <a
+                    key="config"
+                    onClick={() => {
+                      currentRow = record;
+                      set_tableSelecterVisible(true);
+                    }}
+                  >
+                    设置对应
+                  </a>,
+                ] : []
+            },
+        },
+
+    ]
+    const columnsTwo: ProColumns[] = [
+
+        {
+            title: '会计科目名称',
+            width: 400,
+            ellipsis: true,
+            dataIndex: 'accountingName',
+        },
+        {
+            title: '会计科目编码',
+            width:300,
+            dataIndex: 'accountingCode',
+        },
+        {
+            title: '成本项目',
+            dataIndex: 'productVOs',
+            ellipsis:true,
+            renderText(productVOs, record) {
+                if (Array.isArray(productVOs)) {
+                    return productVOs.map((item, index) => { return <Tag key={index}>{item.productName}</Tag> })
+                } else {
+                    return <></>
+                }
+            },
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 80,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                const { isParent } = record;
+                return !isParent ? [
+                  <a
+                    key="config"
+                    onClick={() => {
+                      currentRow = record;
+                      set_tableSelecterVisible(true);
+                    }}
+                  >
+                    设置对应
+                  </a>,
+                ] : []
+            },
+        },
+
+    ]
+
+
+
+    const getTableData = async (params: any) => {
+        const {filter} = params;
+        const resp = await getAccountProductConnectList({ ...params, accountType,pageSize:500 });
+        if (resp) {
+            let data = [];
+            if(filter){
+                 data = searchTree(renameChildListToChildren(resp.list, 'child'),filter) 
+            }else{
+                data = renameChildListToChildren(resp.list, 'child')
+            }
+            return {
+                data: sortTreeByCode(data),
+                success: true,
+                total: resp.totalCount,
+                pageSize: resp.pageSize,
+                totalPage: resp.totalPage,
+            }
+        }
+        return []
+    }
+
+
+    
+
+    const onTabChanged = (key: Key) => {
+        set_accountType(key);
+        tableRef.current?.reload();
+    }
+//productCode,productName
+    const getTableSelectorData = async () => {
+        const {responsibilityId,productVOs = []} = currentRow;
+        const defaultRows = productVOs?productVOs.map((a:any)=>({id:a.id,name:`${a.productName}[${a.productCode}]`})):[];
+        const resp = await getAccountProductConnectableList({responsibilityId,pageSize:500,current:1});
+        if(resp){
+            return [...resp,...defaultRows]
+        }        
+    }
+
+
+    const tableSelecterCommit = async (keys:Key[],rows:any[]) => {
+        const {id} = currentRow;
+        const resp = await saveAccountProductConnected({id,products:keys});
+        if(resp){
+             set_tableSelecterVisible(false)
+             tableRef.current?.reload();
+        }
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+
+    }
+
+    useEffect(() => {
+        set_tabs([
+            {
+                label: '收入',
+                key: 1,
+            },
+            {
+                label: '支出',
+                key: 2,
+            },
+        ])
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='AccountingSubMap' title={false}>
+            <TableSelecter
+                columns={[...tableSelectorColumns]}
+                onVisibleChange={(bool) => set_tableSelecterVisible(bool)}
+                title='关联成本收入项目'
+                rowKey={'id'}
+                request={getTableSelectorData}
+                defaultSelectedKeys={(currentRow&&currentRow.productVOs)?[...(currentRow.productVOs).map((a:any)=>a.id)]:[]}
+                record={currentRow}
+                open={tableSelecterVisible}
+                onFinish={(keys, rows) => tableSelecterCommit(keys, rows)}
+            />
+            <div className='toolBar' >
+                <Tabs
+                    defaultActiveKey={tabs.length > 0 ? tabs[0].key : undefined}
+                    items={tabs}
+                    key={'key'}
+                    onChange={(key) => onTabChanged(key)}
+                />
+               <div className='filter' style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center'}}>
+                    <div className='filterItem'>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'会计科目编码/名称'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        filter: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    filter: (e.target as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                </div>
+            </div>
+
+            <div>
+                <KCIMTable pagination={false} columns={(accountType == 1?columns:columnsTwo) as ProColumns[]} scroll={{ y: 'calc(100vh - 230px)' }} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

+ 54 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMap/service.ts

@@ -0,0 +1,54 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 16:31:27
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-12-07 15:01:32
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { request } from 'umi';
+
+//获取table列表数据
+export const getAccountProductConnectList = (params:any) => {
+  return request('/costAccount/accountProduct/list', {
+    method: 'GET',
+    params:{...params},
+  });
+}
+
+//获取责任中心对应可绑定科室列表
+export const getAccountProductConnectableList = (params:any) => {
+  
+  return request('/costAccount/product/getProducts', {
+    method: 'GET',
+    params:{...params},
+  });
+}
+
+
+//保存绑定信息
+export const saveAccountProductConnected = (body:any) => {
+  return request('/costAccount/accountProduct/save', {
+    method: 'POST',
+    data:{...body},
+  });
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 42 - 0
src/pages/baseSetting/accountingAccountSet/accountingSubMap/style.less

@@ -0,0 +1,42 @@
+.AccountingSubMap {
+  padding: 16px;
+  padding-top: 0;
+  background: #FFFFFF;
+  border-radius: 4px;
+
+
+  .toolBar {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+
+    .filter {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      align-items: center;
+
+      .filterItem {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    .btnGroup {
+        .add {
+          cursor: pointer;
+          display: inline-block;
+          font-size: 14px;
+          font-weight: 400;
+          color: #FFFFFF;
+          line-height: 24px;
+          padding: 0 14px;
+          background: #3377FF;
+          border-radius: 4px;
+        }
+    }
+  }
+}

+ 451 - 0
src/pages/baseSetting/accountingAccountSet/chargeItemMap/index.tsx

@@ -0,0 +1,451 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-09-09 10:55:13
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+import { createFromIconfontCN } from '@ant-design/icons';
+import { ActionType } from '@ant-design/pro-components';
+import { ModalForm, ProFormSelect, ProFormText, ProFormTextArea } from '@ant-design/pro-form';
+import { ProColumns } from '@ant-design/pro-table';
+import { Dropdown, Input, MenuProps, message, Tooltip, Popconfirm, TreeProps } from 'antd';
+
+import { Key } from 'react';
+import { useEffect, useRef, useState } from 'react';
+import DirectoryTree from 'antd/es/tree/DirectoryTree';
+import { DataNode } from 'antd/es/tree';
+
+import { getAccountingItemMap, addTableData, delData, getAccountingList, batchDelTableData } from './service';
+
+
+import './style.less';
+
+import expandedIcon from '../../../../../static/treenode_open.png';
+import closeIcon from '../../../../../static/treenode_collapse.png';
+
+
+import '../../../../utils/zhongtaiB'
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+import { getTargetDic } from '@/services/auth';
+import TableSelecter from './tableSelector';
+import { getDeepestTreeData } from '@/utils/tooljs';
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+let _currentSelectedType: any = undefined;
+
+const ChargeItemMap = () => {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+
+    const [currentSelectedType, set_currentSelectedType] = useState<any | undefined>(undefined);
+    const [treeData, set_treeData] = useState<any[]>([]);
+    const [currentSelectedTreeNode, set_currentSelectedTreeNode] = useState<null | any>(null);
+    const [expandedKeys, set_expandedKeys] = useState<Key[]>([]);
+    const [autoExpandParent, set_autoExpandParent] = useState(true);
+    const [searchValue, set_searchValue] = useState('');
+    const [currentTreeDataFilter, set_currentTreeDataFilter] = useState({ name: '全部', code: 0 });
+    const [treeFilterVisible, set_treeFilterVisible] = useState(false);
+    const [selectedRowKeys,set_selectedRowKeys] = useState<Key[]>([]);
+
+    const [tableSelecterVisible, set_tableSelecterVisible] = useState(false);
+
+    const [treeDataDefault, set_treeDataDefault] = useState<any[]>([]);
+
+    const [leftDataSearchKeyVal, set_leftDataSearchKeyVal] = useState<undefined | string>(undefined);
+
+    const tableRef = useRef<ActionType>();
+
+    const column: ProColumns[] = [
+
+        {
+            title: '收费项目代码',
+            ellipsis: true,
+            width: 120,
+            dataIndex: 'itemCode',
+
+        },
+        {
+            title: '收费项目名称',
+            dataIndex: 'itemName',
+
+        },
+        {
+            title: '收费项目类别',
+            width: 100,
+            dataIndex: 'typeName',
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 60,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <Popconfirm
+                        title="是否确认删除?"
+                        key="del"
+                        onConfirm={() => delTableData(record.id)}
+                    >
+                        <a>删除</a>
+                    </Popconfirm>
+                ]
+            },
+        },
+    ]
+
+
+    const getTableData = async (params: any) => {
+
+        const resp = await getAccountingItemMap({ ...params });
+        if (resp) {
+            return {
+                data: resp.list,
+                success: true,
+                total: resp.totalCount,
+                pageSize: resp.pageSize,
+                totalPage: resp.totalPage,
+            }
+        } else {
+            return []
+        }
+    }
+
+
+    //获取左侧列表
+    const getPageLeftData = async () => {
+        const resp = await getAccountingList('', currentTreeDataFilter.code);
+        if(resp){
+            set_treeData(resp);
+            set_treeDataDefault(resp);
+            set_currentSelectedTreeNode(null);
+        } 
+    }
+
+    const delTableData = async (id: number) => {
+        const resp = await delData(id);
+        if (resp) {
+            message.success('操作成功!');
+            tableRef.current?.reload();
+        }
+    }
+
+
+    const tableSelecterCommit = async (keys: Key[], rows: any[]) => {
+
+        const arr = rows.map((a, index) => ({
+            itemCode: a.itemCode,
+            itemName: a.itemName,
+            type: a.itemType,
+        }));
+        const result = {
+            accountingCode: currentSelectedTreeNode.accountingCode,
+            accountingName: currentSelectedTreeNode.accountingName,
+            itemMaps: arr
+        }
+        const resp = await addTableData(result);
+        if (resp) {
+            message.success('操作成功');
+            set_tableSelecterVisible(false);
+            tableRef.current?.reload();
+        }
+    }
+
+
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+
+    }
+
+    const batchDelHandle = async () => {
+        const resp = await batchDelTableData(selectedRowKeys);
+        if (resp) {
+            message.success('操作成功!');
+            set_selectedRowKeys([]);
+            tableRef.current?.reload();
+        }
+    }
+
+
+    const onSelect: TreeProps['onSelect'] = (selectedKeys, info: any) => {
+        const { node } = info;
+        if (!node.children || node.children.length == 0) {
+            set_currentSelectedTreeNode(node);
+        }
+    };
+
+    const onExpand = (newExpandedKeys: React.Key[]) => {
+        // setExpandedKeys(newExpandedKeys);
+        // setAutoExpandParent(false);
+        set_expandedKeys(newExpandedKeys);
+        set_autoExpandParent(false);
+    };
+
+
+    const dataList: any[] = [];
+
+    const getParentKey = (key: React.Key, tree: any[]): React.Key => {
+        let parentKey: React.Key;
+        for (let i = 0; i < tree.length; i++) {
+            const node = tree[i];
+            if (node.children) {
+                if (node.children.some((item: { accountingCode: React.Key; }) => item.accountingCode === key)) {
+                    parentKey = node.accountingCode;
+                } else if (getParentKey(key, node.children)) {
+                    parentKey = getParentKey(key, node.children);
+                }
+            }
+        }
+        return parentKey!;
+    };
+
+    const generateList = (data: any[]) => {
+        for (let i = 0; i < data.length; i++) {
+            const node = data[i];
+            dataList.push(node);
+            if (node.children) {
+                generateList(node.children);
+            }
+        }
+    };
+
+    generateList(treeData as any);
+
+
+    const onTreeSearchKeyChange = (e: React.ChangeEvent<HTMLInputElement>) => {
+
+        const { value } = e.target;
+
+        const newExpandedKeys = dataList
+            .map((item) => {
+                if (item.accountingName.indexOf(value) > -1) {
+                    return getParentKey(item.accountingCode, treeData);
+                }
+                return null;
+            });
+
+        set_expandedKeys(newExpandedKeys as React.Key[]);
+        set_searchValue(value);
+        set_autoExpandParent(true);
+    }
+
+    //左侧树结构筛选
+    const changeTreeDataFilter = (obj: any) => {
+
+        set_currentTreeDataFilter(obj);
+        set_treeFilterVisible(false);
+    }
+
+
+
+    useEffect(() => {
+
+        if (currentSelectedTreeNode) {
+            set_tableDataFilterParams({ ...tableDataFilterParams, accountingCode: currentSelectedTreeNode.accountingCode });
+        }
+    }, [currentSelectedTreeNode])
+
+    useEffect(() => {
+        //初始化左侧树结构数据后
+        
+        if (treeData?.length > 0) {
+            if (!currentSelectedTreeNode) {
+                if (treeData[0].children && treeData[0].children.length > 0) {
+                    const [node, nodeParent] = getDeepestTreeData(treeData[0], 'children');
+                    set_currentSelectedTreeNode(node);
+                    set_expandedKeys([nodeParent.accountingCode]);
+                } else {
+                    set_currentSelectedTreeNode(treeData[0]);
+                    set_expandedKeys([treeData[0].accountingCode]);
+                }
+
+            }
+        }
+    }, [treeData]);
+
+    useEffect(() => {
+        getPageLeftData();
+    }, [currentTreeDataFilter])
+
+    useEffect(() => {
+        getPageLeftData();
+    }, [])
+
+
+
+    return (
+        <KCIMPagecontainer title={false} className='ChargeItemMap'>
+            <TableSelecter
+                onVisibleChange={(bool) => set_tableSelecterVisible(bool)}
+                title='添加'
+                rowKey={'itemCode'}
+                defaultSelectedKeys={[]}
+                record={_currentSelectedType}
+                open={tableSelecterVisible}
+                onFinish={(keys, rows) => tableSelecterCommit(keys, rows)}
+            />
+
+            {selectedRowKeys.length > 0 && (
+                <div className='bottomBar'>
+                    <span>已选择<a>{selectedRowKeys.length}</a>项</span>
+                    <a onClick={() => batchDelHandle()}>批量删除</a>
+                </div>
+            )}
+
+            {
+                treeFilterVisible && (
+                    <div className='selecterList'>
+                        <div onClick={() => changeTreeDataFilter({ name: '全部', code: 0 })} className={currentTreeDataFilter.code == 0 ? 'list on' : 'list'}>全部</div>
+                        <div onClick={() => changeTreeDataFilter({ name: '已对照', code: 1 })} className={currentTreeDataFilter.code == 1 ? 'list on' : 'list'}>{'已对照'}</div>
+                        <div onClick={() => changeTreeDataFilter({ name: '未对照', code: 3 })} className={currentTreeDataFilter.code == 3 ? 'list on' : 'list'}>{'未对照'}</div>
+                    </div>
+                )
+            }
+
+            <div className='left'>
+                <div className='toolbar'>
+                    <Input placeholder={'会计科目名称'} allowClear autoComplete='off'
+                        suffix={
+                            <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} />
+                        }
+                        value={leftDataSearchKeyVal}
+                        style={{ width: 156 }}
+                        onChange={onTreeSearchKeyChange}
+                    />
+                    <Tooltip placement="top" title={currentTreeDataFilter.name}>
+                        <div className={currentTreeDataFilter.code == 0 ? 'filter' : currentTreeDataFilter.code == 1 ? 'filter blue' : 'filter orange'} onClick={() => set_treeFilterVisible(true)}></div>
+                    </Tooltip>
+
+
+                </div>
+
+                <div className='wrap'>
+                    {
+                        treeData && treeData.length > 0 && currentSelectedTreeNode && (
+                            <DirectoryTree
+                                fieldNames={{ title: 'accountingName', key: 'accountingCode' }}
+                                rootStyle={{ height: '100%', paddingBottom: 50, padding: '0 16px' }}
+                                onSelect={onSelect}
+                                onExpand={onExpand}
+                                expandedKeys={expandedKeys}
+                                autoExpandParent={autoExpandParent}
+                                selectedKeys={[currentSelectedTreeNode.accountingCode]}
+                                blockNode={true}
+
+                                icon={() => null}
+
+                                titleRender={
+                                    (nodeData: any) => {
+                                        const strTitle = nodeData.accountingName as string;
+                                        const index = strTitle.indexOf(searchValue);
+                                        const beforeStr = strTitle.substring(0, index);
+                                        const afterStr = strTitle.slice(index + searchValue.length);
+                                        const title =
+                                            index > -1 ? (
+                                                <span>
+                                                    {beforeStr}
+                                                    <span className="site-tree-search-value" style={{ color: '#3377ff', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>{searchValue}</span>
+                                                    {afterStr}
+                                                </span>
+                                            ) : (
+                                                <span className='strTitle'>{strTitle}</span>
+                                            );
+                                        return <div style={{
+                                            display: 'flex', flexDirection: 'row',
+                                            width: '100%',
+                                            justifyContent: 'space-between', alignItems: 'center', height: 32,
+                                            borderRadius: '4px',
+                                            overflow: 'hidden',
+                                            color: '#17181A',
+                                            textOverflow: 'ellipsis',
+                                            whiteSpace: 'nowrap'
+
+                                        }}>
+                                            {title}
+                                            {!nodeData.map && <span className={nodeData.unitType ? 'point lastChild' : 'point'}></span>}
+                                        </div>
+                                    }
+                                }
+                                defaultSelectedKeys={[currentSelectedTreeNode.accountingCode]}
+                                treeData={treeData as unknown as DataNode[]}
+                                // treeData={treeDataNew}
+                                switcherIcon={(props: any) => {
+                                    const { expanded } = props;
+                                    return !expanded ? <img style={{ width: 20, height: 20, position: 'relative', top: 5 }} src={expandedIcon} /> : <img style={{ width: 20, height: 20, position: 'relative', top: 5 }} src={closeIcon} />
+                                }}
+                            />
+                        )
+                    }
+                </div>
+            </div>
+            <div className='right'>
+                <div className='toolBar'>
+                    <div className='filter'>
+                        <div className='filterItem'>
+                            <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                            <Input placeholder={'收费项目名称'} allowClear autoComplete='off'
+                                suffix={
+                                    <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('itemName')} />
+                                }
+                                onChange={(e) => {
+                                    set_tableDataSearchKeywords(e.target.value);
+                                    if (e.target.value.length == 0) {
+                                        set_tableDataFilterParams({
+                                            ...tableDataFilterParams,
+                                            itemName: ''
+                                        });
+                                    }
+                                }}
+                                onPressEnter={(e) => {
+
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        itemName: (e.target as HTMLInputElement).value
+                                    });
+                                }}
+
+                            />
+                        </div>
+                    </div>
+                    <div className='btnGroup'>
+                        <span className='add' onClick={() => set_tableSelecterVisible(true)}>添加</span>
+                    </div>
+                </div>
+                <div style={{ marginTop: 16 }}>
+                    {currentSelectedTreeNode && <KCIMTable actionRef={tableRef} columns={column}
+                        scroll={{ y: 500 }}
+                        rowKey='id'
+                        params={tableDataFilterParams}
+                        request={(params) => getTableData(params)}
+                        tableAlertRender={false}
+                        rowSelection={{
+                            onChange(selectedRowKeys, selectedRows, info) {
+                                set_selectedRowKeys(selectedRowKeys);
+                            },
+                        }}
+                    />}
+                </div>
+            </div>
+        </KCIMPagecontainer>
+    )
+}
+
+
+export default ChargeItemMap;
+function getParentKey(code: any, treeData: any[]) {
+    throw new Error('Function not implemented.');
+}
+

+ 76 - 0
src/pages/baseSetting/accountingAccountSet/chargeItemMap/service.ts

@@ -0,0 +1,76 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-07 11:12:10
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2023-11-30 10:34:32
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicMana/service.ts
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import { string } from 'mathjs';
+import { Key } from 'react';
+import { request } from 'umi';
+
+
+//获取左侧数据
+export const getAccountingList = (accountingName:string,type:number) => {
+  return request('/costAccount/setting/getAccountingList', {
+    method: 'GET',
+    params:{accountingName,type}
+  });
+};
+
+//获取右侧表格数据
+
+export const getAccountingItemMap = (params:{accountingCode:string,itemName?:string,pageSize:number,current:number}) => {
+    return request('/costAccount/setting/getAccountingItemMap', {
+      method: 'GET',
+      params:{...params}
+    });
+};
+
+//获取可添加列表
+export const getAddableTableData = (type:number,name?:string) => {
+  return request('/costAccount/setting/getAccountingItemDictList', {
+    method: 'GET',
+    params:{type,name}
+  });
+};
+
+
+
+//新增表格数据
+
+export const addTableData = (data:any) => {
+  return request('/costAccount/setting/addAccountingItemMap', {
+    method: 'POST',
+    data
+  });
+};
+
+
+
+
+//删除表格操作
+export const delData = (id:number) => {
+    return request('/costAccount/setting/deleteAccountingItemMap', {
+      method: 'POST',
+      params:{id}
+    });
+};
+
+
+//批量删除表格数据
+export const batchDelTableData = (ids:Key[]) => {
+  return request('/costAccount/setting/batchDeleteAccountingItemMap', {
+    method: 'POST',
+    data:[...ids]
+  });
+};
+
+
+
+
+

+ 260 - 0
src/pages/baseSetting/accountingAccountSet/chargeItemMap/style.less

@@ -0,0 +1,260 @@
+.row-dragging {
+
+  .cost-ant-table-cell {
+    width: 130px;
+  }
+}
+
+.TableSelecter {
+
+  .pfm-ant-modal-footer {
+    display: none !important;
+  }
+
+  .footer {
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-end;
+    margin-top: 15px;
+
+    span {
+      display: inline-block;
+      width: 56px;
+      height: 24px;
+      font-size: 14px;
+      line-height: 23px;
+      text-align: center;
+      border-radius: 4px;
+      cursor: pointer;
+
+      &.ok {
+        color: #FFFFFF;
+        background: #3377FF;
+        margin-left: 8px;
+      }
+
+      &.cancel {
+        border: 1px solid #DAE2F2;
+      }
+    }
+
+  }
+}
+
+.ChargeItemMap {
+  width: 100%;
+  height: calc(100vh - 48px);
+  position: relative;
+
+  .bottomBar {
+    position: absolute;
+    bottom: -16px;
+    left: -16px;
+    width: 102.5%;
+    height: 48px;
+    display: flex;
+    padding: 0 16px;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+    background: #FFFFFF;
+    box-shadow: 0px -8px 16px 0px rgba(64, 85, 128, 0.1);
+
+    &>span {
+      font-size: 14px;
+      font-weight: 400;
+      color: #17181A;
+    }
+
+    &>a {
+      width: 80px;
+      height: 24px;
+      line-height: 24px;
+      font-size: 14px;
+      font-weight: 400;
+      color: #FFFFFF;
+      text-align: center;
+      background: #3377FF;
+      border-radius: 4px;
+    }
+  }
+
+  .selecterList {
+    position: absolute;
+    z-index: 99;
+    top: 44px;
+    left: 180px;
+    width: 120px;
+    height: 104px;
+    background: #FFFFFF;
+    box-shadow: 0px 8px 16px 0px rgba(64, 85, 128, 0.1);
+    border-radius: 4px;
+    padding: 4px;
+
+    .list {
+      position: relative;
+      height: 32px;
+      line-height: 16px;
+      border-radius: 2px;
+      font-size: 14px;
+      cursor: pointer;
+      padding: 8px;
+      font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+      font-weight: 400;
+      color: #17181A;
+
+      &.on {
+        font-weight: 500;
+        background: rgba(51, 119, 255, 0.08);
+
+        &::after {
+          position: absolute;
+          right: 8px;
+          display: inline-block;
+          content: '';
+          width: 16px;
+          height: 16px;
+          background: url('../../../../../static/gou_blue.png');
+          background-size: contain;
+        }
+      }
+    }
+  }
+
+  .left {
+    float: left;
+    border-radius: 4px;
+    width: 220px;
+    height: calc(100vh - 80px);
+    overflow: hidden;
+    margin-right: 16px;
+    padding: 16px 0px;
+    background: #FFFFFF;
+
+
+    .toolbar {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      padding: 0 16px;
+
+      .filter {
+        position: relative;
+        width: 24px;
+        height: 24px;
+        background: #FAFCFF;
+        border-radius: 4px;
+        border: 1px solid #DAE2F2;
+        margin-left: 8px;
+        cursor: pointer;
+        background: url('../../../../../static/filter.png');
+        background-size: 16px 16px;
+        background-position: center;
+        background-repeat: no-repeat;
+
+        &.orange {
+          &::after {
+            position: absolute;
+            z-index: 9;
+            top: 1px;
+            right: 1px;
+            display: inline-block;
+            content: '';
+            width: 4px;
+            height: 4px;
+            border-radius: 50%;
+            background: #FF9832;
+          }
+        }
+
+        &.blue {
+          &::after {
+            position: absolute;
+            z-index: 9;
+            top: 1px;
+            right: 1px;
+            display: inline-block;
+            content: '';
+            width: 4px;
+            height: 4px;
+            border-radius: 50%;
+            background: #3377FF;
+          }
+        }
+      }
+    }
+
+    .wrap {
+      margin-top: 16px;
+      height: calc((100vh - 80px) - 75px);
+      overflow: hidden;
+      overflow-y: scroll;
+      // border: 1px solid red;
+
+      .cos-ant-tree.cos-ant-tree-directory .cos-ant-tree-treenode-selected:hover::before,
+      .cos-ant-tree.cos-ant-tree-directory .cos-ant-tree-treenode-selected::before {
+        border-radius: 4px;
+        background: rgb(240 242 245 / 100%);
+      }
+
+      .cos-ant-tree.cos-ant-tree-directory .cos-ant-tree-treenode .cos-ant-tree-node-content-wrapper.cos-ant-tree-node-selected {
+        font-weight: bold;
+
+      }
+
+      .cost-ant-tree.cost-ant-tree-directory .cost-ant-tree-treenode-selected::before {
+        border-radius: 4px;
+        background: rgb(240 242 245 / 100%);
+      }
+
+    }
+  }
+
+  .right {
+    float: left;
+    width: calc(100% - 236px);
+    padding: 16px;
+    border-radius: 4px;
+    background: #FFFFFF;
+
+    .toolBar {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+
+      .filter {
+        display: flex;
+        flex-direction: row;
+        justify-content: flex-start;
+        align-items: center;
+
+        .filterItem {
+          display: flex;
+          flex-direction: row;
+          justify-content: center;
+          align-items: center;
+        }
+      }
+
+      .btnGroup {
+        .add {
+          cursor: pointer;
+          display: inline-block;
+          font-size: 14px;
+          font-family: SourceHanSansCN-Normal, SourceHanSansCN;
+          font-weight: 400;
+          color: #FFFFFF;
+          line-height: 24px;
+          padding: 0 14px;
+          background: #3377FF;
+          border-radius: 4px;
+          margin-left: 8px;
+        }
+      }
+
+
+    }
+  }
+}

+ 201 - 0
src/pages/baseSetting/accountingAccountSet/chargeItemMap/tableSelector.tsx

@@ -0,0 +1,201 @@
+import React, { Key, useEffect, useState } from "react";
+import { Input, Select } from 'antd'
+import { KCIMTable } from "@/components/KCIMTable";
+import { createFromIconfontCN } from "@ant-design/icons";
+
+
+import { ModalForm, ProColumns, ProFormSelect, ProFormText } from "@ant-design/pro-components";
+
+import { set } from "lodash";
+import { getAddableTableData } from "./service";
+
+
+// import './style.less';
+
+
+interface TableSelecterProps {
+    record: any
+}
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+
+const TableSelecter = ({ record, open, title, onVisibleChange, rowKey = 'id', request, onFinish, defaultSelectedKeys }: {
+    record: any, open: boolean, title: string, onVisibleChange: (bool: boolean) => void, defaultSelectedKeys: Key[],
+    rowKey?: string, request?: (params: any) => Promise<any>, onFinish?: (selectedKeys: React.Key[], selectedRows: any[]) => void
+}) => {
+
+
+    const Table = React.forwardRef(({ }: TableSelecterProps, ref) => {
+
+        const [datasource, set_datasource] = useState<any[]>([]);
+        const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+        const [selectedRows, set_selectedRows] = useState<any[]>([]);
+        const [showList, set_showList] = useState<any[]>([]);
+        const [type, set_type] = useState<number>(3);
+        const [keyword, set_keyword] = useState<string | undefined>(undefined);
+
+
+        const columns: ProColumns[] = [
+            {
+                title: '收费项目代码',
+                ellipsis:true,
+                dataIndex: 'itemCode',
+            },
+            {
+                title: '收费项目名称',
+                ellipsis:true,
+                dataIndex: 'itemName',
+            }
+        ];
+
+
+        const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any) => {
+            setSelectedKeys([...newSelectedRowKeys]);
+            set_selectedRows([...selectedRows]);
+
+        };
+
+        const saveHandle = async () => {
+            const selectedRowCodes = selectedRows.map((a) => a[`${rowKey}`]);
+            const rows = datasource.filter((a) => selectedRowCodes.includes(a[`${rowKey}`]));
+            onFinish && onFinish(selectedKeys, rows);
+        }
+
+        const getTableData = async () => {
+            const resp = await getAddableTableData(type);
+
+            let selectedCodes: string[] = [];
+            let selectedRows: any[] = [];
+            if (resp) {
+                const data = resp.map((a: any) => {
+                    if (defaultSelectedKeys.includes(a[`${rowKey}`])) {
+                        selectedCodes.push(a[`${rowKey}`]);
+                        selectedRows.push(a);
+                        const needItem = record.departList.filter((b: any) => a[`${rowKey}`] == b[`${rowKey}`]);
+
+                        return {
+                            ...a,
+                            flag: needItem[0].isManager ? true : false
+                        }
+                    } else {
+                        return a
+                    }
+                });
+
+                set_showList(data);
+                set_selectedRows([...selectedRows]);
+                setSelectedKeys([...selectedCodes]);
+                set_datasource([...datasource, ...data]);
+            }
+
+
+            return Promise.resolve([]);
+        }
+
+        useEffect(() => {
+            // console.log({code, keyword});
+            const result = datasource.filter((a) => {
+                return a.itemName.indexOf(keyword) != -1 
+            });
+
+            set_showList([...result]);
+        }, [keyword]);
+
+        useEffect(()=>{
+            getTableData()
+        },[type]);
+
+
+        return (
+            <div >
+                <div className="filter" style={{marginBottom:8,display:'flex',flexDirection:'row',alignItems:'center'}}>
+                    <ProFormSelect
+                         noStyle
+                         style={{marginRight:8}}
+                         options={[
+                            {label:'药品',value:1},
+                            {label:'材料',value:2},
+                            {label:'项目',value:3}
+                         ]}
+                         fieldProps={{
+                             defaultValue:3,
+                             onChange(value, option) {
+                                set_type(value);
+                                set_keyword('');
+                             },
+                         }}
+                    />
+                    <ProFormText noStyle placeholder={'项目名称'}
+                        fieldProps={{
+                            value:keyword,
+                            suffix: <IconFont style={{ color: '#99A6BF' }} type="iconsousuo" />,
+                            onChange: (e) => {
+                                if (e.target.value.length != 0) {
+                                    set_keyword(e.target.value);
+                                } else {
+                                    set_keyword('');
+                                }
+                            }
+                        }}
+                    />
+                </div>
+
+                <KCIMTable columns={columns}
+                    options={{
+                        density: true,
+                        setting: {
+                            listsHeight: 100,
+                        },
+                    }}
+                    rowKey={rowKey}
+                    scroll={{ y: 400 }}
+                    tableAlertRender={false}
+                    rowSelection={{
+                        // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
+                        // 注释该行则默认不显示下拉选项
+                        // selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
+                        selectedRowKeys: selectedKeys,
+                        onChange: onSelectChange,
+                    }}
+                    pagination={{ showTitle: false, showSizeChanger: true,simple:true }}
+                    dataSource={showList}
+
+                />
+                <div className='footer'>
+                    <span className='cancel' onClick={() => close()}>取消</span>
+                    <span className='ok' onClick={() => saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}</span>
+                </div>
+            </div>
+
+        )
+    });
+
+    const close = () => {
+        onVisibleChange && onVisibleChange(false);
+    }
+
+
+    return (
+        <ModalForm className="TableSelecter" title={title} width={400} submitter={{
+            render: false
+        }} open={open} modalProps={{
+            closable: false,
+        }}>
+            <Table
+                // ref={tableSelecterRef}
+                record={undefined}
+            ></Table>
+        </ModalForm>
+    )
+
+}
+
+
+
+
+export default TableSelecter

+ 292 - 0
src/pages/baseSetting/accountingAccountSet/costIncomeProjectMana/index.tsx

@@ -0,0 +1,292 @@
+/*
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2023-03-03 11:30:33
+ * @LastEditors: code4eat awesomedema@gmail.com
+ * @LastEditTime: 2024-07-29 15:47:04
+ * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+
+import KCIMPagecontainer from '@/components/KCIMPageContainer';
+import { KCIMTable } from '@/components/KCIMTable';
+
+import { createFromIconfontCN } from '@ant-design/icons';
+import FormItem from 'antd/es/form/FormItem';
+
+import { ActionType, ProFormInstance, ProFormText } from '@ant-design/pro-components';
+import { ModalForm } from '@ant-design/pro-form'
+import { ProColumns } from '@ant-design/pro-table';
+import { Input, message, Popconfirm, Tag } from 'antd';
+import { useEffect, useRef, useState } from 'react';
+
+import 'moment/locale/zh-cn';
+import locale from 'antd/es/date-picker/locale/zh_CN';
+
+
+
+import { delData, editData, addCostProject, getCostProjecttList, importDataPost } from './service';
+
+import './style.less';
+import KCIMUpload from '@/components/KCIMUpload';
+import { downloadTemplateReq } from '@/utils/tooljs';
+
+
+const IconFont = createFromIconfontCN({
+    scriptUrl: '',
+});
+
+
+
+export default function CostIncomeProjectMana() {
+
+    const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
+    const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
+    const tableRef = useRef<ActionType>();
+    const formRef = useRef<ProFormInstance>();
+    const columns: ProColumns[] = [
+
+        {
+            title: 'Id',
+            dataIndex: 'id',
+        },
+        {
+            title: '成本编号',
+            dataIndex: 'productCode',
+        },
+        {
+            title: '成本项目名称',
+            dataIndex: 'productName',
+        },
+        {
+            title: '操作',
+            key: 'option',
+            width: 120,
+            valueType: 'option',
+            render: (_: any, record: any) => {
+                return [
+                    <UpDataActBtn key={'act'} record={record} type='EDIT' />,
+                    <Popconfirm
+                        title="是否确认删除?"
+                        key="del"
+                        onConfirm={() => delTableData(record)}
+                    >
+                        <a>删除</a>
+                    </Popconfirm>,
+                ]
+            },
+        },
+
+    ]
+
+
+    const getTableData = async (params: any) => {
+        const resp = await getCostProjecttList({ ...params });
+        if (resp) {
+            return {
+                data: resp.list,
+                success: true,
+                total: resp.totalCount,
+                pageSize: resp.pageSize,
+                totalPage: resp.totalPage,
+            }
+        }
+        return []
+    }
+
+    const delTableData = async (record: any) => {
+        const resp = await delData(record.id);
+        if (resp) {
+            message.success('操作成功!');
+            tableRef.current?.reload();
+            // message.success('操作成功!');
+        }
+    }
+
+    const updateTable = async (formVal: any, type: 'EDIT' | "ADD") => {
+
+        if (type == 'ADD') {
+
+            const result = { ...formVal };
+            const resp = await addCostProject(result);
+            if (resp) {
+                tableRef.current?.reload();
+                message.success('操作成功!');
+            }
+
+        }
+        if (type == 'EDIT') {
+            try {
+                const { responsibilityLevel = 0, selectedSharelevel = [], shareId } = formVal;
+                let body = {};
+                if (selectedSharelevel.length == 0) {
+                    //没有修改分摊层级
+                    body = { ...formVal }
+                }
+
+                if (Object.prototype.toString.call(selectedSharelevel) == '[object Object]') {
+                    //修改了分摊层级
+                    //  console.log('修改了分摊层级');
+                    body = { ...formVal, shareId: selectedSharelevel.id, shareName: selectedSharelevel.shareName, shareLevel: selectedSharelevel.leverSort }
+                }
+
+                const resp = await editData({ ...body });
+                if (resp) {
+                    tableRef.current?.reload();
+                    message.success('操作成功!');
+                }
+            } catch (error) {
+                console.log({ error });
+            }
+
+        }
+        return true;
+
+    }
+
+
+    const UpDataActBtn = ({ record, type }: { record: any, type: 'EDIT' | 'ADD' }) => {
+
+        return (
+            <ModalForm
+                title={`${type == 'EDIT' ? '编辑' : '新增'}成本项目`}
+                width={350}
+                formRef={formRef}
+                initialValues={type == 'EDIT' ? {
+                    ...record,
+                } : {}}
+                trigger={
+                    type == 'EDIT' ? <a key="edit" >编辑</a> : <span className='add'>新增</span>
+                }
+                onFinish={(val) => {
+                    return updateTable(type == 'EDIT' ? { ...record, ...val } : { ...val }, type);
+                }}
+                modalProps={{ destroyOnClose: true }}
+                colProps={{ span: 24 }}
+                grid
+            >
+                <ProFormText
+                    label="成本项目编码"
+                    rules={[
+                        {
+                            required: true,
+                            message: '成本项目编码是必填项',
+                        },
+                    ]}
+                    name="productCode"
+                />
+                <ProFormText
+                    label="成本项目名"
+                    rules={[
+                        {
+                            required: true,
+                            message: '成本项目名是必填项',
+                        },
+                    ]}
+                    name="productName"
+                />
+            </ModalForm>
+        )
+    }
+
+    const tableDataSearchHandle = (paramName: string) => {
+
+        set_tableDataFilterParams({
+            ...tableDataFilterParams,
+            [`${paramName}`]: tableDataSearchKeywords
+        })
+
+    }
+
+    const downloadTemplate = async () => {
+        await downloadTemplateReq('/costAccount/excel/getImportProductTemplate');
+    };
+    
+      const importData = () => {
+        return (
+          <ModalForm
+            width={360}
+            title={`导入数据`}
+            trigger={
+              <a className="import" key="3">
+                导入
+              </a>
+            }
+            submitter={{
+              render: (props, defaultDoms) => {
+                const needBtn = defaultDoms.filter((b) => {
+                  return b.key != 'rest';
+                });
+                return [
+                  ...needBtn,
+                ];
+              },
+            }}
+            onFinish={async (values) => {
+              const {
+                importFile: { fileList },
+              } = values;
+    
+              let formData = new FormData();
+              formData.append('file', fileList[0].originFileObj);
+              const resp = await importDataPost(formData);
+     
+              if (resp) {
+                tableRef.current?.reload();  
+                return true;
+              }
+            }}
+          >
+            <FormItem name={'importFile'}>
+              <KCIMUpload downloadTemplateFile={() => downloadTemplate()} />
+            </FormItem>
+          </ModalForm>                                                                                                                                                                                                                                                           
+        );
+      };
+
+    useEffect(() => {
+
+    }, [])
+
+    return (
+        <KCIMPagecontainer className='CostIncomeProjectMana' title={false}>
+            <div className='toolBar'>
+                <div className='filter'>
+                    <div className='filterItem' style={{ marginLeft: 16, width: 205 }}>
+                        <span className='label' style={{ whiteSpace: 'nowrap' }}> 检索:</span>
+                        <Input placeholder={'成本项目名称'} allowClear autoComplete='off'
+                            suffix={
+                                <IconFont type="iconsousuo" style={{ color: '#99A6BF' }} onClick={() => tableDataSearchHandle('filter')} />
+                            }
+                            onChange={(e) => {
+                                set_tableDataSearchKeywords(e.target.value);
+                                if (e.target.value.length == 0) {
+                                    set_tableDataFilterParams({
+                                        ...tableDataFilterParams,
+                                        filter: ''
+                                    });
+                                }
+                            }}
+                            onPressEnter={(e) => {
+                                set_tableDataFilterParams({
+                                    ...tableDataFilterParams,
+                                    filter: ((e.target) as HTMLInputElement).value
+                                });
+                            }}
+
+                        />
+                    </div>
+                </div>
+                <div className='btnGroup'>
+                    {importData()}
+                    <UpDataActBtn record type='ADD' />
+                </div>
+            </div>
+
+            <div style={{ marginTop: 16 }}>
+                <KCIMTable scroll={{y:`calc(100vh - 235px)`}} columns={columns as ProColumns[]} actionRef={tableRef} rowKey='id' params={tableDataFilterParams} request={(params) => getTableData(params)} />
+            </div>
+        </KCIMPagecontainer>
+    )
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов