Просмотр исходного кода

feat: 实现SVG图标组件化并支持主题颜色

版本变化: 1.11.6 -> 1.12.0

- 在 config/index.ts 中配置 @svgr/webpack 支持 SVG 转 React 组件
- 在 package.json 中添加 @svgr/webpack 依赖
- 在 ActionPanel.tsx 中更新图标使用方式,支持主题颜色
- 修改 report.svg 使用 currentColor 以支持动态主题
- 清理未使用的图标文件,优化项目结构
- 更新 CHANGELOG.md 添加 v1.12.0 版本变更记录

改动文件:
- config/index.ts
- package.json (版本更新: 1.11.6 -> 1.12.0)
- package-lock.json
- src/pages/patient/components/ActionPanel.tsx
- src/assets/Icons/base/module-patient/theme-dark/1x/report.svg
- CHANGELOG.md
- 删除 120+ 个未使用图标文件
dengdx 3 недель назад
Родитель
Сommit
2c322d71d1
100 измененных файлов с 533 добавлено и 43 удалено
  1. 34 1
      CHANGELOG.md
  2. 85 32
      config/index.ts
  3. 408 3
      package-lock.json
  4. 2 1
      package.json
  5. 0 0
      src/assets/Icons/base/module-common/theme-dark/1x/icon-btn-confirm.svg
  6. 0 0
      src/assets/Icons/base/module-common/theme-dark/1x/icon-nav-back.svg
  7. 0 0
      src/assets/Icons/base/module-common/theme-dark/1x/icon-refresh.svg
  8. 0 0
      src/assets/Icons/base/module-common/theme-dark/2x/icon-btn-confirm.svg
  9. 0 0
      src/assets/Icons/base/module-common/theme-dark/2x/icon-nav-back.svg
  10. 0 0
      src/assets/Icons/base/module-common/theme-dark/2x/icon-refresh.svg
  11. 0 0
      src/assets/Icons/base/module-common/theme-dark/3x/icon-btn-confirm.svg
  12. 0 0
      src/assets/Icons/base/module-common/theme-dark/3x/icon-nav-back.svg
  13. 0 0
      src/assets/Icons/base/module-common/theme-dark/3x/icon-refresh.svg
  14. 0 0
      src/assets/Icons/base/module-common/theme-default/1x/icon-btn-confirm.svg
  15. 0 0
      src/assets/Icons/base/module-common/theme-default/1x/icon-nav-back.svg
  16. 0 0
      src/assets/Icons/base/module-common/theme-default/1x/icon-refresh.svg
  17. 0 0
      src/assets/Icons/base/module-common/theme-default/2x/icon-btn-confirm.svg
  18. 0 0
      src/assets/Icons/base/module-common/theme-default/2x/icon-nav-back.svg
  19. 0 0
      src/assets/Icons/base/module-common/theme-default/2x/icon-refresh.svg
  20. 0 0
      src/assets/Icons/base/module-common/theme-default/3x/icon-btn-confirm.svg
  21. 0 0
      src/assets/Icons/base/module-common/theme-default/3x/icon-nav-back.svg
  22. 0 0
      src/assets/Icons/base/module-common/theme-default/3x/icon-refresh.svg
  23. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/1x/icon-config-save.svg
  24. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/1x/icon-config-setting.svg
  25. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/2x/icon-config-save.svg
  26. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/2x/icon-config-setting.svg
  27. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/3x/icon-config-save.svg
  28. 0 0
      src/assets/Icons/base/module-configuration/theme-dark/3x/icon-config-setting.svg
  29. 0 0
      src/assets/Icons/base/module-configuration/theme-default/1x/icon-config-save.svg
  30. 0 0
      src/assets/Icons/base/module-configuration/theme-default/1x/icon-config-setting.svg
  31. 0 0
      src/assets/Icons/base/module-configuration/theme-default/2x/icon-config-save.svg
  32. 0 0
      src/assets/Icons/base/module-configuration/theme-default/2x/icon-config-setting.svg
  33. 0 0
      src/assets/Icons/base/module-configuration/theme-default/3x/icon-config-save.svg
  34. 0 0
      src/assets/Icons/base/module-configuration/theme-default/3x/icon-config-setting.svg
  35. 0 0
      src/assets/Icons/base/module-device/theme-dark/1x/icon-device-connect.svg
  36. 0 0
      src/assets/Icons/base/module-device/theme-dark/1x/icon-device-status.svg
  37. 0 0
      src/assets/Icons/base/module-device/theme-dark/2x/icon-device-connect.svg
  38. 0 0
      src/assets/Icons/base/module-device/theme-dark/2x/icon-device-status.svg
  39. 0 0
      src/assets/Icons/base/module-device/theme-dark/3x/icon-device-connect.svg
  40. 0 0
      src/assets/Icons/base/module-device/theme-dark/3x/icon-device-status.svg
  41. 0 0
      src/assets/Icons/base/module-device/theme-default/1x/icon-device-connect.svg
  42. 0 0
      src/assets/Icons/base/module-device/theme-default/1x/icon-device-status.svg
  43. 0 0
      src/assets/Icons/base/module-device/theme-default/2x/icon-device-connect.svg
  44. 0 0
      src/assets/Icons/base/module-device/theme-default/2x/icon-device-status.svg
  45. 0 0
      src/assets/Icons/base/module-device/theme-default/3x/icon-device-connect.svg
  46. 0 0
      src/assets/Icons/base/module-device/theme-default/3x/icon-device-status.svg
  47. 0 0
      src/assets/Icons/base/module-exam/theme-dark/1x/icon-exam-result.svg
  48. 0 0
      src/assets/Icons/base/module-exam/theme-dark/1x/icon-exam-start.svg
  49. 0 0
      src/assets/Icons/base/module-exam/theme-dark/2x/icon-exam-result.svg
  50. 0 0
      src/assets/Icons/base/module-exam/theme-dark/2x/icon-exam-start.svg
  51. 0 0
      src/assets/Icons/base/module-exam/theme-dark/3x/icon-exam-result.svg
  52. 0 0
      src/assets/Icons/base/module-exam/theme-dark/3x/icon-exam-start.svg
  53. 0 0
      src/assets/Icons/base/module-exam/theme-default/1x/icon-exam-result.svg
  54. 0 0
      src/assets/Icons/base/module-exam/theme-default/1x/icon-exam-start.svg
  55. 0 0
      src/assets/Icons/base/module-exam/theme-default/2x/icon-exam-result.svg
  56. 0 0
      src/assets/Icons/base/module-exam/theme-default/2x/icon-exam-start.svg
  57. 0 0
      src/assets/Icons/base/module-exam/theme-default/3x/icon-exam-result.svg
  58. 0 0
      src/assets/Icons/base/module-exam/theme-default/3x/icon-exam-start.svg
  59. 0 0
      src/assets/Icons/base/module-output/theme-dark/1x/icon-output-export.svg
  60. 0 0
      src/assets/Icons/base/module-output/theme-dark/1x/icon-output-print.svg
  61. 0 0
      src/assets/Icons/base/module-output/theme-dark/2x/icon-output-export.svg
  62. 0 0
      src/assets/Icons/base/module-output/theme-dark/2x/icon-output-print.svg
  63. 0 0
      src/assets/Icons/base/module-output/theme-dark/3x/icon-output-export.svg
  64. 0 0
      src/assets/Icons/base/module-output/theme-dark/3x/icon-output-print.svg
  65. 0 0
      src/assets/Icons/base/module-output/theme-default/1x/icon-output-export.svg
  66. 0 0
      src/assets/Icons/base/module-output/theme-default/1x/icon-output-print.svg
  67. 0 0
      src/assets/Icons/base/module-output/theme-default/2x/icon-output-export.svg
  68. 0 0
      src/assets/Icons/base/module-output/theme-default/2x/icon-output-print.svg
  69. 0 0
      src/assets/Icons/base/module-output/theme-default/3x/icon-output-export.svg
  70. 0 0
      src/assets/Icons/base/module-output/theme-default/3x/icon-output-print.svg
  71. 0 0
      src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-add.svg
  72. 0 0
      src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-delete.svg
  73. 0 0
      src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-edit.svg
  74. 4 6
      src/assets/Icons/base/module-patient/theme-dark/1x/report.svg
  75. 0 0
      src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-add.svg
  76. 0 0
      src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-delete.svg
  77. 0 0
      src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-edit.svg
  78. 0 0
      src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-add.svg
  79. 0 0
      src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-delete.svg
  80. 0 0
      src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-edit.svg
  81. 0 0
      src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-add.svg
  82. 0 0
      src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-delete.svg
  83. 0 0
      src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-edit.svg
  84. 0 0
      src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-add.svg
  85. 0 0
      src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-delete.svg
  86. 0 0
      src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-edit.svg
  87. 0 0
      src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-add.svg
  88. 0 0
      src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-delete.svg
  89. 0 0
      src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-edit.svg
  90. 0 0
      src/assets/Icons/base/module-process/theme-dark/1x/icon-process-pause.svg
  91. 0 0
      src/assets/Icons/base/module-process/theme-dark/1x/icon-process-start.svg
  92. 0 0
      src/assets/Icons/base/module-process/theme-dark/2x/icon-process-pause.svg
  93. 0 0
      src/assets/Icons/base/module-process/theme-dark/2x/icon-process-start.svg
  94. 0 0
      src/assets/Icons/base/module-process/theme-dark/3x/icon-process-pause.svg
  95. 0 0
      src/assets/Icons/base/module-process/theme-dark/3x/icon-process-start.svg
  96. 0 0
      src/assets/Icons/base/module-process/theme-default/1x/icon-process-pause.svg
  97. 0 0
      src/assets/Icons/base/module-process/theme-default/1x/icon-process-start.svg
  98. 0 0
      src/assets/Icons/base/module-process/theme-default/2x/icon-process-pause.svg
  99. 0 0
      src/assets/Icons/base/module-process/theme-default/2x/icon-process-start.svg
  100. 0 0
      src/assets/Icons/base/module-process/theme-default/3x/icon-process-pause.svg

+ 34 - 1
CHANGELOG.md

@@ -2,6 +2,39 @@
 
 本项目的所有重要变更都将记录在此文件中。
 
+## [1.12.0] - 2025-12-18 09:25
+
+### 新增 (Added)
+- **SVG图标组件化并支持主题颜色** ([#svg-icon-componentization](config/index.ts))
+  - 在 config/index.ts 中配置 @svgr/webpack 支持 SVG 转 React 组件
+  - 在 package.json 中添加 @svgr/webpack 依赖
+  - 在 ActionPanel.tsx 中更新图标使用方式,支持主题颜色
+  - 修改 report.svg 使用 currentColor 以支持动态主题
+  - 清理未使用的图标文件,优化项目结构
+
+**核心改进:**
+- Webpack 配置增强:添加 @svgr/webpack loader,将 SVG 转换为 React 组件
+- 图标主题支持:使用 currentColor 实现动态主题颜色适配
+- 项目结构优化:删除 120+ 个未使用图标文件,减少项目体积
+- 组件化升级:图标使用 fontSize 和 Tailwind CSS 实现灵活样式控制
+
+**技术实现:**
+- 配置 webpack chain API 排除 SVG 被当作普通图片处理
+- 使用 @svgr/webpack 将 Icons 目录下的 SVG 转换为 React 组件
+- 在 ActionPanel 中引入 antd theme,使用 useToken 获取主题颜色
+- SVG 文件使用 fill="currentColor" 支持动态颜色
+- 删除多个模块的未使用图标:common、configuration、device、exam、output、patient、process、security
+
+**改动文件:**
+- config/index.ts
+- package.json (版本更新: 1.11.6 -> 1.12.0)
+- package-lock.json
+- src/pages/patient/components/ActionPanel.tsx
+- src/assets/Icons/base/module-patient/theme-dark/1x/report.svg
+- 删除 120+ 个未使用图标文件
+
+---
+
 ## [1.11.6] - 2025-12-17 15:20
 
 ### 新增 (Added)
@@ -294,7 +327,7 @@
 
 **技术实现:**
 - 使用 `getIpPort()` 获取当前服务器地址
-- 正则表达式 `/(https?:\/\/[^\/]+)/` 匹配 URL 中的服务器部分
+- 正则表达式 `/(https?:\\/\\/[^\\/]+)/` 匹配 URL 中的服务器部分
 - 更新 metadata.referencedImageId 和 metadata.referencedImageURI
 - 在 renderAnnotations 中调用 updateAnnotationUrls 处理每个注释
 

+ 85 - 32
config/index.ts

@@ -97,33 +97,86 @@ export default defineConfig<'webpack5'>(async (merge) => {
           },
         },
       },
-      // 2025.12.12 这一段解决的问题是在雷神模拟器上运行android时不支持es2020语法的问题
+
       webpackChain(chain) {
+        /* 1️⃣ 排除 svg(防止被 base64)这是为了把svg解析为组件 ,用于svg icon*/
+        if (chain.module.rules.has('image')) {
+          chain.module
+            .rule('image')
+            .exclude.add(/\.svg$/)
+        }
+
+        if (chain.module.rules.has('media')) {
+          chain.module
+            .rule('media')
+            .exclude.add(/\.svg$/)
+        }
+
+        if (chain.module.rules.has('asset')) {
+          chain.module
+            .rule('asset')
+            .exclude.add(/\.svg$/)
+        }
+
         chain.module
-        .rule('force-es5')
-        .test(/\.(js|mjs)$/)
-        .include.add([
-          /node_modules[\\/]ahooks/,
-          /node_modules[\\/]lodash-es/,
-          /node_modules[\\/]dayjs/,
-          /node_modules[\\/]antd-mobile/,
-          /node_modules[\\/]@ant-design/,
-          /node_modules[\\/]@cornerstonejs/,
-          /node_modules[\\/]react-query/,
-          // ↑ 把自己项目里报错或输出 const/let 的包加进来就行
-        ])
-        .end()
-        .use('babel-loader')
-        .loader('babel-loader')
-        .options({
-          presets: [
-            ['@babel/preset-env', {
-              targets: { chrome: '91' },    // 或者 "iOS >= 9, Android >= 5"
-              useBuiltIns: 'usage',
-              corejs: 3,
-            }]
-          ]
-        });
+          .rule('svgr-icons')
+          .before('image')
+          .test(/\.svg$/)
+          .include.add(
+            path.resolve(__dirname, '../src/assets/Icons')
+          )
+          .end()
+          .use('svgr')
+          .loader('@svgr/webpack')
+          .options({
+            dimensions: false,
+            icon: false,
+          });
+        // chain.module
+        //   .rule('svgr')
+        //   .test(/\.svg$/)
+        //   .include.add(
+        //     path.resolve(__dirname, '../src/assets/Icons')
+        //   )
+        //   .when(
+        //     true,
+        //     (rule) => {
+        //       rule
+        //         .loader('@svgr/webpack')
+        //         .options({
+        //           dimensions: false,
+        //           icon: false,
+        //         });
+        //     }
+        //   );
+
+
+        // 2025.12.12 这一段解决的问题是在雷神模拟器上运行android时不支持es2020语法的问题
+        chain.module
+          .rule('force-es5')
+          .test(/\.(js|mjs)$/)
+          .include.add([
+            /node_modules[\\/]ahooks/,
+            /node_modules[\\/]lodash-es/,
+            /node_modules[\\/]dayjs/,
+            /node_modules[\\/]antd-mobile/,
+            /node_modules[\\/]@ant-design/,
+            /node_modules[\\/]@cornerstonejs/,
+            /node_modules[\\/]react-query/,
+            // ↑ 把自己项目里报错或输出 const/let 的包加进来就行
+          ])
+          .end()
+          .use('babel-loader')
+          .loader('babel-loader')
+          .options({
+            presets: [
+              ['@babel/preset-env', {
+                targets: { chrome: '91' },    // 或者 "iOS >= 9, Android >= 5"
+                useBuiltIns: 'usage',
+                corejs: 3,
+              }]
+            ]
+          });
         // ✅ 优化:配置 Webpack 持久化缓存
         chain.cache({
           type: 'filesystem',
@@ -175,13 +228,13 @@ export default defineConfig<'webpack5'>(async (merge) => {
           .plugin('define-plugin')
           // eslint-disable-next-line
           .use(DefinePlugin as any, [{
-              'process.env.USE_MSW': JSON.stringify(
-                process.env.USE_MSW || 'false'
-              ),
-              'process.env.NODE_ENV': JSON.stringify(
-                process.env.NODE_ENV || 'production'
-              ),
-            },
+            'process.env.USE_MSW': JSON.stringify(
+              process.env.USE_MSW || 'false'
+            ),
+            'process.env.NODE_ENV': JSON.stringify(
+              process.env.NODE_ENV || 'production'
+            ),
+          },
           ]);
       },
     },

+ 408 - 3
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "zsis",
-  "version": "1.10.2",
+  "version": "1.11.6",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "zsis",
-      "version": "1.10.2",
+      "version": "1.11.6",
       "dependencies": {
         "@babel/runtime": "^7.24.4",
         "@cornerstonejs/core": "^3.28.0",
@@ -56,6 +56,7 @@
         "@babel/preset-react": "^7.24.1",
         "@cypress/webpack-preprocessor": "^7.0.0",
         "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
+        "@svgr/webpack": "^8.1.0",
         "@tarojs/cli": "4.1.1",
         "@tarojs/taro-loader": "4.1.1",
         "@tarojs/webpack5-runner": "4.1.1",
@@ -75,7 +76,7 @@
         "electron-builder": "^26.0.12",
         "eslint": "^9.28.0",
         "eslint-config-prettier": "^10.1.5",
-        "eslint-plugin-prettier": "^5.4.1",
+        "eslint-plugin-prettier": "^5.1.4",
         "globals": "^16.2.0",
         "husky": "^9.1.7",
         "lint-staged": "^16.1.0",
@@ -1309,6 +1310,22 @@
         "@babel/core": "^7.0.0-0"
       }
     },
+    "node_modules/@babel/plugin-transform-react-constant-elements": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz",
+      "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
     "node_modules/@babel/plugin-transform-react-display-name": {
       "version": "7.27.1",
       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz",
@@ -6110,6 +6127,374 @@
         "npm": ">=6.0.0"
       }
     },
+    "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
+      "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
+      "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
+      "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
+      "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
+      "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
+      "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
+      "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-plugin-transform-svg-component": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
+      "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/babel-preset": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
+      "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+        "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+        "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+        "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+        "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+        "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+        "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+        "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@svgr/core": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
+      "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/core": "^7.21.3",
+        "@svgr/babel-preset": "8.1.0",
+        "camelcase": "^6.2.0",
+        "cosmiconfig": "^8.1.3",
+        "snake-case": "^3.0.4"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      }
+    },
+    "node_modules/@svgr/core/node_modules/cosmiconfig": {
+      "version": "8.3.6",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+      "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "import-fresh": "^3.3.0",
+        "js-yaml": "^4.1.0",
+        "parse-json": "^5.2.0",
+        "path-type": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/d-fischer"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.9.5"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@svgr/core/node_modules/path-type": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@svgr/hast-util-to-babel-ast": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
+      "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.21.3",
+        "entities": "^4.4.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      }
+    },
+    "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/@svgr/plugin-jsx": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
+      "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/core": "^7.21.3",
+        "@svgr/babel-preset": "8.1.0",
+        "@svgr/hast-util-to-babel-ast": "8.0.0",
+        "svg-parser": "^2.0.4"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@svgr/core": "*"
+      }
+    },
+    "node_modules/@svgr/plugin-svgo": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
+      "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "cosmiconfig": "^8.1.3",
+        "deepmerge": "^4.3.1",
+        "svgo": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      },
+      "peerDependencies": {
+        "@svgr/core": "*"
+      }
+    },
+    "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": {
+      "version": "8.3.6",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+      "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "import-fresh": "^3.3.0",
+        "js-yaml": "^4.1.0",
+        "parse-json": "^5.2.0",
+        "path-type": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/d-fischer"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.9.5"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@svgr/plugin-svgo/node_modules/deepmerge": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+      "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/@svgr/plugin-svgo/node_modules/path-type": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@svgr/webpack": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
+      "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/core": "^7.21.3",
+        "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+        "@babel/preset-env": "^7.20.2",
+        "@babel/preset-react": "^7.18.6",
+        "@babel/preset-typescript": "^7.21.0",
+        "@svgr/core": "8.1.0",
+        "@svgr/plugin-jsx": "8.1.0",
+        "@svgr/plugin-svgo": "8.1.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge"
+      }
+    },
     "node_modules/@swc/core": {
       "version": "1.3.96",
       "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.96.tgz",
@@ -10135,6 +10520,19 @@
         "tslib": "^2.0.3"
       }
     },
+    "node_modules/camelcase": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
     "node_modules/camelcase-css": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@@ -28009,6 +28407,13 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/svg-parser": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
+      "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/svg-tags": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",

+ 2 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "zsis",
-  "version": "1.11.6",
+  "version": "1.12.0",
   "private": true,
   "description": "医学成像系统",
   "main": "main.js",
@@ -100,6 +100,7 @@
     "@babel/preset-react": "^7.24.1",
     "@cypress/webpack-preprocessor": "^7.0.0",
     "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
+    "@svgr/webpack": "^8.1.0",
     "@tarojs/cli": "4.1.1",
     "@tarojs/taro-loader": "4.1.1",
     "@tarojs/webpack5-runner": "4.1.1",

+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/1x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/1x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/1x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/2x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/2x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/2x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/3x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/3x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-dark/3x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/1x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/1x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/1x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/2x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/2x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/2x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/3x/icon-btn-confirm.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/3x/icon-nav-back.svg


+ 0 - 0
src/assets/Icons/base/module-common/theme-default/3x/icon-refresh.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/1x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/1x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/2x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/2x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/3x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-dark/3x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/1x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/1x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/2x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/2x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/3x/icon-config-save.svg


+ 0 - 0
src/assets/Icons/base/module-configuration/theme-default/3x/icon-config-setting.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/1x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/1x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/2x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/2x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/3x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-dark/3x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/1x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/1x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/2x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/2x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/3x/icon-device-connect.svg


+ 0 - 0
src/assets/Icons/base/module-device/theme-default/3x/icon-device-status.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/1x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/1x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/2x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/2x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/3x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-dark/3x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/1x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/1x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/2x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/2x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/3x/icon-exam-result.svg


+ 0 - 0
src/assets/Icons/base/module-exam/theme-default/3x/icon-exam-start.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/1x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/1x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/2x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/2x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/3x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-dark/3x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/1x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/1x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/2x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/2x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/3x/icon-output-export.svg


+ 0 - 0
src/assets/Icons/base/module-output/theme-default/3x/icon-output-print.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/1x/icon-patient-edit.svg


+ 4 - 6
src/assets/Icons/base/module-patient/theme-dark/1x/report.svg

@@ -22,8 +22,8 @@
      inkscape:cx="16"
      inkscape:cy="16"
      inkscape:window-width="1920"
-     inkscape:window-height="1009"
-     inkscape:window-x="1912"
+     inkscape:window-height="1017"
+     inkscape:window-x="-8"
      inkscape:window-y="-8"
      inkscape:window-maximized="1"
      inkscape:current-layer="icon" />
@@ -58,11 +58,9 @@
   <path
      d="M25,5H22V4a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V5H7A2,2,0,0,0,5,7V28a2,2,0,0,0,2,2H25a2,2,0,0,0,2-2V7A2,2,0,0,0,25,5ZM12,4h8V8H12ZM25,28H7V7h3v3H22V7h3Z"
      id="path3"
-     style="fill:#808000" />
+     fill="currentColor" />
   <rect
      id="_Transparent_Rectangle_"
      data-name="&lt;Transparent Rectangle&gt;"
-     class="cls-1"
-     width="32"
-     height="32" />
+     class="cls-1" />
 </svg>

+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/2x/icon-patient-edit.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-dark/3x/icon-patient-edit.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/1x/icon-patient-edit.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/2x/icon-patient-edit.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-add.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-delete.svg


+ 0 - 0
src/assets/Icons/base/module-patient/theme-default/3x/icon-patient-edit.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/1x/icon-process-pause.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/1x/icon-process-start.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/2x/icon-process-pause.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/2x/icon-process-start.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/3x/icon-process-pause.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-dark/3x/icon-process-start.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-default/1x/icon-process-pause.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-default/1x/icon-process-start.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-default/2x/icon-process-pause.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-default/2x/icon-process-start.svg


+ 0 - 0
src/assets/Icons/base/module-process/theme-default/3x/icon-process-pause.svg


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