vue2-client 1.22.19 → 1.22.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.env.his +19 -19
  2. package/.env.message +19 -19
  3. package/.history/.eslintrc_20260521171150.js +74 -0
  4. package/.history/.eslintrc_20260521171213.js +74 -0
  5. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154443.vue +726 -0
  6. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154700.vue +478 -0
  7. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175435.vue +706 -0
  8. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175450.vue +694 -0
  9. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260611152602.vue +755 -0
  10. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513145941.vue +524 -0
  11. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513153133.vue +731 -0
  12. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513160316.vue +525 -0
  13. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260601144150.vue +1046 -0
  14. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310142713.vue +512 -0
  15. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310145118.vue +511 -0
  16. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260311094834.vue +696 -0
  17. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260320143028.vue +693 -0
  18. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260409101450.vue +677 -0
  19. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260625173703.vue +767 -0
  20. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260626112425.vue +803 -0
  21. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140637.vue +1455 -0
  22. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140935.vue +1441 -0
  23. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513150818.vue +1441 -0
  24. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153119.vue +1442 -0
  25. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153126.vue +1486 -0
  26. package/.history/src/base-client/components/common/XForm/XFormItem_20260513140854.vue +1607 -0
  27. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140403.vue +643 -0
  28. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140829.vue +628 -0
  29. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519142824.vue +104 -0
  30. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519143155.vue +102 -0
  31. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171231.vue +1241 -0
  32. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171441.vue +1223 -0
  33. package/.history/src/base-client/components/his/HAi/HAi_20260612174826.vue +472 -0
  34. package/.history/src/base-client/components/his/HAi/HAi_20260612175839.vue +538 -0
  35. package/.history/src/base-client/components/his/HAi/HAi_20260615103331.vue +650 -0
  36. package/.history/src/base-client/components/his/HAi/HAi_20260618140214.vue +1396 -0
  37. package/.history/src/base-client/components/his/HAi/HAi_20260618140556.vue +1396 -0
  38. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260424134504.vue +1469 -0
  39. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171133.vue +788 -0
  40. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171151.vue +780 -0
  41. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511170841.vue +585 -0
  42. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511171138.vue +787 -0
  43. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260512141830.vue +739 -0
  44. package/.history/src/components/STable/index_20260409155138.js +806 -0
  45. package/.history/src/components/STable/index_20260409155218.js +814 -0
  46. package/.history/src/expression/core/Expression_20260305164427.js +1371 -0
  47. package/.history/src/expression/core/Expression_20260305170258.js +1358 -0
  48. package/.history/src/expression/core/Program_20260305111830.js +944 -0
  49. package/.history/src/expression/core/Program_20260305112041.js +931 -0
  50. package/.history/src/logic/LogicRunner_20260304154306.js +170 -0
  51. package/.history/src/logic/LogicRunner_20260304155553.js +112 -0
  52. package/.history/src/logic/LogicRunner_20260305105834.js +112 -0
  53. package/.history/src/logic/LogicRunner_20260305112718.js +129 -0
  54. package/.history/src/logic/LogicRunner_20260305182436.js +133 -0
  55. package/.history/src/logic/LogicRunner_20260306151301.js +213 -0
  56. package/.history/src/logic/LogicRunner_20260306152419.js +213 -0
  57. package/.history/src/logic/plugins/common/DateTools_20260305154159.js +61 -0
  58. package/.history/src/logic/plugins/common/DateTools_20260305154217.js +44 -0
  59. package/.history/src/logic/plugins/common/DateTools_20260305161014.js +44 -0
  60. package/.history/src/logic/plugins/common/HttpTools_20260305164352.js +80 -0
  61. package/.history/src/logic/plugins/common/HttpTools_20260305170258.js +75 -0
  62. package/.history/src/logic/plugins/common/HttpTools_20260305171634.js +75 -0
  63. package/.history/src/logic/plugins/common/HttpTools_20260306152419.js +72 -0
  64. package/.history/src/services/api/restTools_20260427142149.js +245 -0
  65. package/.history/src/services/api/restTools_20260427142853.js +230 -0
  66. package/.history/src/services/api/restTools_20260519135558.js +230 -0
  67. package/.history/src/services/api/restTools_20260519140825.js +230 -0
  68. package/.history/src/services/api/restTools_20260519151223.js +230 -0
  69. package/.history/src/utils/indexedDB_20260306150918.js +593 -0
  70. package/.history/src/utils/indexedDB_20260306151301.js +586 -0
  71. package/.idea/af-vue2-client.iml +4 -7
  72. package/.idea/codeStyles/Project.xml +62 -0
  73. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  74. package/.idea/misc.xml +6 -0
  75. package/CHANGELOG.md +837 -837
  76. package/package.json +117 -117
  77. package/preview-input-box.html +180 -0
  78. package/src/base-client/components/common/HIS/HForm/HForm.vue +1186 -1186
  79. package/src/base-client/components/common/HIS/HTab/HTab.vue +790 -757
  80. package/src/base-client/components/common/ImagePreviewModal/index.js +3 -3
  81. package/src/base-client/components/common/XMarkdownViewer/demo.vue +102 -102
  82. package/src/base-client/components/his/HAi/HAi.vue +159 -30
  83. package/src/base-client/components/his/XTransfer/index.md +327 -327
  84. package/src/components/MarkdownEditor/demo.vue +300 -300
  85. package/src/components/MarkdownEditor/index.vue +590 -590
  86. package/src/router/async/router.map.js +141 -141
  87. package/src/services/api/restTools.js +1 -1
  88. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
package/package.json CHANGED
@@ -1,117 +1,117 @@
1
- {
2
- "name": "vue2-client",
3
- "version": "1.22.19",
4
- "private": false,
5
- "scripts": {
6
- "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
- "serve:gaslink": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode gaslink",
8
- "serve:revenue": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode revenue",
9
- "serve:liuli": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode liuli",
10
- "serve:scada": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode scada",
11
- "serve:iot": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode iot",
12
- "serve:his": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode his",
13
- "serve:runtime": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode runtime",
14
- "serve:message": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode message",
15
- "serve:apply": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode apply",
16
- "mac-serve": "vue-cli-service serve --no-eslint --mode his",
17
- "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
18
- "test:unit": "vue-cli-service test:unit",
19
- "lint": "vue-cli-service lint",
20
- "build:preview": "vue-cli-service build --mode preview",
21
- "lint:nofix": "vue-cli-service lint --no-fix",
22
- "test": "jest"
23
- },
24
- "dependencies": {
25
- "@afwenming123/vue-easy-tree": "^1.0.1",
26
- "@afwenming123/vue-plugin-hiprint": "^0.0.70",
27
- "@amap/amap-jsapi-loader": "^1.0.1",
28
- "@antv/data-set": "^0.11.8",
29
- "@antv/g2plot": "^2.4.31",
30
- "@hufe921/canvas-editor": "^0.9.49",
31
- "@microsoft/fetch-event-source": "^2.0.1",
32
- "@vue/babel-preset-jsx": "^1.4.0",
33
- "animate.css": "^4.1.1",
34
- "ant-design-vue": "npm:@afwenming123/ant-design-vue@1.7.16",
35
- "axios": "^0.27.2",
36
- "clipboard": "^2.0.11",
37
- "core-js": "^3.33.0",
38
- "crypto-js": "^4.1.1",
39
- "date-fns": "^2.29.3",
40
- "default-passive-events": "^2.0.0",
41
- "dotenv": "^16.3.1",
42
- "echarts": "^5.5.0",
43
- "enquire.js": "^2.1.6",
44
- "file-saver": "^2.0.5",
45
- "highlight.js": "^11.7.0",
46
- "html-to-image": "^1.11.13",
47
- "html2canvas": "^1.4.1",
48
- "js-base64": "^3.7.5",
49
- "js-cookie": "^2.2.1",
50
- "jsencrypt": "^3.3.2",
51
- "jspdf": "^2.5.1",
52
- "lodash.clonedeep": "^4.5.0",
53
- "lodash.debounce": "^4",
54
- "lodash.get": "^4.4.2",
55
- "marked": "^4",
56
- "mavon-editor": "2.10.4",
57
- "mockjs": "^1.1.0",
58
- "nprogress": "^0.2.0",
59
- "ol": "10.3.1",
60
- "qs": "^6.11.2",
61
- "regenerator-runtime": "^0.14.0",
62
- "splitpanes": "^2.4.1",
63
- "videojs-contrib-hls": "^5.15.0",
64
- "viser-vue": "^2.4.8",
65
- "vue": "^2.7.14",
66
- "vue-codemirror": "4.0.6",
67
- "vue-color": "2.7.0",
68
- "vue-draggable-resizable": "^2.3.0",
69
- "vue-i18n": "^8.28.2",
70
- "vue-json-viewer": "^2.2.22",
71
- "vue-router": "^3.6.5",
72
- "vue-video-player": "^5.0.2",
73
- "vue-virtual-scroller": "^1.1.2",
74
- "vue3-sfc-loader": "^0.9.5",
75
- "vuedraggable": "^2.24.3",
76
- "vuex": "^3.6.2",
77
- "xlsx": "0.18.5"
78
- },
79
- "devDependencies": {
80
- "@ant-design/colors": "^7.0.0",
81
- "@babel/core": "^7.22.20",
82
- "@babel/eslint-parser": "^7.22.15",
83
- "@babel/preset-env": "^7.22.20",
84
- "@vue/cli-plugin-babel": "^5.0.8",
85
- "@vue/cli-plugin-eslint": "^5.0.8",
86
- "@vue/cli-service": "^5.0.8",
87
- "@vue/eslint-config-standard": "^8.0.1",
88
- "@vue/test-utils": "^1.3.6",
89
- "babel-plugin-transform-remove-console": "^6.9.4",
90
- "compression-webpack-plugin": "^10.0.0",
91
- "css-minimizer-webpack-plugin": "^5.0.1",
92
- "deepmerge": "^4.3.1",
93
- "eslint": "^8.51.0",
94
- "eslint-config-prettier": "^10.1.8",
95
- "eslint-plugin-vue": "^9.17.0",
96
- "fast-deep-equal": "^3.1.3",
97
- "ignore-loader": "^0.1.2",
98
- "jest": "^29.7.0",
99
- "jest-environment-jsdom": "^29.7.0",
100
- "jest-transform-stub": "^2.0.0",
101
- "less-loader": "^6.2.0",
102
- "script-loader": "^0.7.2",
103
- "style-resources-loader": "^1.5.0",
104
- "vue-cli-plugin-style-resources-loader": "^0.1.5",
105
- "vue-jest": "^4.0.1",
106
- "vue-template-compiler": "^2.7.14",
107
- "webpack": "^5.88.2",
108
- "webpack-theme-color-replacer": "^1.4.7",
109
- "whatwg-fetch": "^3.6.19"
110
- },
111
- "browserslist": [
112
- "> 1%",
113
- "last 2 versions",
114
- "not dead",
115
- "not ie 11"
116
- ]
117
- }
1
+ {
2
+ "name": "vue2-client",
3
+ "version": "1.22.21",
4
+ "private": false,
5
+ "scripts": {
6
+ "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
+ "serve:gaslink": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode gaslink",
8
+ "serve:revenue": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode revenue",
9
+ "serve:liuli": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode liuli",
10
+ "serve:scada": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode scada",
11
+ "serve:iot": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode iot",
12
+ "serve:his": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode his",
13
+ "serve:runtime": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode runtime",
14
+ "serve:message": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode message",
15
+ "serve:apply": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode apply",
16
+ "mac-serve": "vue-cli-service serve --no-eslint --mode his",
17
+ "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
18
+ "test:unit": "vue-cli-service test:unit",
19
+ "lint": "vue-cli-service lint",
20
+ "build:preview": "vue-cli-service build --mode preview",
21
+ "lint:nofix": "vue-cli-service lint --no-fix",
22
+ "test": "jest"
23
+ },
24
+ "dependencies": {
25
+ "@afwenming123/vue-easy-tree": "^1.0.1",
26
+ "@afwenming123/vue-plugin-hiprint": "^0.0.70",
27
+ "@amap/amap-jsapi-loader": "^1.0.1",
28
+ "@antv/data-set": "^0.11.8",
29
+ "@antv/g2plot": "^2.4.31",
30
+ "@hufe921/canvas-editor": "^0.9.49",
31
+ "@microsoft/fetch-event-source": "^2.0.1",
32
+ "@vue/babel-preset-jsx": "^1.4.0",
33
+ "animate.css": "^4.1.1",
34
+ "ant-design-vue": "npm:@afwenming123/ant-design-vue@1.7.16",
35
+ "axios": "^0.27.2",
36
+ "clipboard": "^2.0.11",
37
+ "core-js": "^3.33.0",
38
+ "crypto-js": "^4.1.1",
39
+ "date-fns": "^2.29.3",
40
+ "default-passive-events": "^2.0.0",
41
+ "dotenv": "^16.3.1",
42
+ "echarts": "^5.5.0",
43
+ "enquire.js": "^2.1.6",
44
+ "file-saver": "^2.0.5",
45
+ "highlight.js": "^11.7.0",
46
+ "html-to-image": "^1.11.13",
47
+ "html2canvas": "^1.4.1",
48
+ "js-base64": "^3.7.5",
49
+ "js-cookie": "^2.2.1",
50
+ "jsencrypt": "^3.3.2",
51
+ "jspdf": "^2.5.1",
52
+ "lodash.clonedeep": "^4.5.0",
53
+ "lodash.debounce": "^4",
54
+ "lodash.get": "^4.4.2",
55
+ "marked": "^4",
56
+ "mavon-editor": "2.10.4",
57
+ "mockjs": "^1.1.0",
58
+ "nprogress": "^0.2.0",
59
+ "ol": "10.3.1",
60
+ "qs": "^6.11.2",
61
+ "regenerator-runtime": "^0.14.0",
62
+ "splitpanes": "^2.4.1",
63
+ "videojs-contrib-hls": "^5.15.0",
64
+ "viser-vue": "^2.4.8",
65
+ "vue": "^2.7.14",
66
+ "vue-codemirror": "4.0.6",
67
+ "vue-color": "2.7.0",
68
+ "vue-draggable-resizable": "^2.3.0",
69
+ "vue-i18n": "^8.28.2",
70
+ "vue-json-viewer": "^2.2.22",
71
+ "vue-router": "^3.6.5",
72
+ "vue-video-player": "^5.0.2",
73
+ "vue-virtual-scroller": "^1.1.2",
74
+ "vue3-sfc-loader": "^0.9.5",
75
+ "vuedraggable": "^2.24.3",
76
+ "vuex": "^3.6.2",
77
+ "xlsx": "0.18.5"
78
+ },
79
+ "devDependencies": {
80
+ "@ant-design/colors": "^7.0.0",
81
+ "@babel/core": "^7.22.20",
82
+ "@babel/eslint-parser": "^7.22.15",
83
+ "@babel/preset-env": "^7.22.20",
84
+ "@vue/cli-plugin-babel": "^5.0.8",
85
+ "@vue/cli-plugin-eslint": "^5.0.8",
86
+ "@vue/cli-service": "^5.0.8",
87
+ "@vue/eslint-config-standard": "^8.0.1",
88
+ "@vue/test-utils": "^1.3.6",
89
+ "babel-plugin-transform-remove-console": "^6.9.4",
90
+ "compression-webpack-plugin": "^10.0.0",
91
+ "css-minimizer-webpack-plugin": "^5.0.1",
92
+ "deepmerge": "^4.3.1",
93
+ "eslint": "^8.51.0",
94
+ "eslint-config-prettier": "^10.1.8",
95
+ "eslint-plugin-vue": "^9.17.0",
96
+ "fast-deep-equal": "^3.1.3",
97
+ "ignore-loader": "^0.1.2",
98
+ "jest": "^29.7.0",
99
+ "jest-environment-jsdom": "^29.7.0",
100
+ "jest-transform-stub": "^2.0.0",
101
+ "less-loader": "^6.2.0",
102
+ "script-loader": "^0.7.2",
103
+ "style-resources-loader": "^1.5.0",
104
+ "vue-cli-plugin-style-resources-loader": "^0.1.5",
105
+ "vue-jest": "^4.0.1",
106
+ "vue-template-compiler": "^2.7.14",
107
+ "webpack": "^5.88.2",
108
+ "webpack-theme-color-replacer": "^1.4.7",
109
+ "whatwg-fetch": "^3.6.19"
110
+ },
111
+ "browserslist": [
112
+ "> 1%",
113
+ "last 2 versions",
114
+ "not dead",
115
+ "not ie 11"
116
+ ]
117
+ }
@@ -0,0 +1,180 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>输入框整体样式预览</title>
6
+ <style>
7
+ * { box-sizing: border-box; margin: 0; padding: 0; }
8
+ body {
9
+ font-family: 'Source Han Sans', 'Microsoft YaHei', sans-serif;
10
+ background: #f5f5f5;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ min-height: 100vh;
15
+ padding: 40px;
16
+ }
17
+ .preview-card {
18
+ width: 782px;
19
+ background: #fff;
20
+ border-radius: 8px;
21
+ box-shadow: 0 2px 8px rgba(0,0,0,0.08);
22
+ padding: 20px;
23
+ }
24
+ .preview-title {
25
+ font-size: 14px;
26
+ color: #666;
27
+ margin-bottom: 16px;
28
+ text-align: center;
29
+ }
30
+
31
+ /* 统一整体:只有外层一个边框 */
32
+ .input-container {
33
+ width: 100%;
34
+ height: 249px;
35
+ border: 1px solid #E5E9F0;
36
+ border-radius: 6px;
37
+ background: #FFFFFF;
38
+ display: flex;
39
+ flex-direction: column;
40
+ padding: 12px;
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ /* 上部分:输入区域(无边框) */
45
+ .input-textarea-area {
46
+ flex: 1 1 auto;
47
+ min-height: 0;
48
+ margin-bottom: 12px;
49
+ }
50
+ .bottom-input {
51
+ width: 100%;
52
+ height: 100%;
53
+ border: none;
54
+ padding: 0;
55
+ font-family: 'Source Han Sans', 'Microsoft YaHei', sans-serif;
56
+ font-size: 16px;
57
+ color: #313131;
58
+ resize: none;
59
+ outline: none;
60
+ background: transparent;
61
+ line-height: 1.6;
62
+ }
63
+ .bottom-input::placeholder {
64
+ color: #999;
65
+ }
66
+
67
+ /* 下部分:按钮区域 */
68
+ .input-controls {
69
+ flex-shrink: 0;
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: space-between;
73
+ padding-top: 8px;
74
+ border-top: 1px solid #f0f0f0;
75
+ }
76
+ .input-controls-left {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 8px;
80
+ }
81
+ .upload-btn {
82
+ width: 173px;
83
+ height: 32px;
84
+ border-radius: 6px;
85
+ background: #FFFFFF;
86
+ border: 1px solid #9499A0;
87
+ color: #313131;
88
+ font-family: Source Han Sans;
89
+ font-size: 16px;
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ gap: 6px;
94
+ cursor: pointer;
95
+ }
96
+ .upload-icon {
97
+ font-size: 18px;
98
+ color: #94979E;
99
+ }
100
+ .input-controls-right {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 8px;
104
+ }
105
+ .enter-tip {
106
+ font-size: 14px;
107
+ color: #9E9E9E;
108
+ padding: 4px 8px;
109
+ }
110
+ .send-btn {
111
+ width: 30px;
112
+ height: 30px;
113
+ background: #0057FE;
114
+ border: none;
115
+ border-radius: 50%;
116
+ color: #fff;
117
+ font-size: 14px;
118
+ cursor: pointer;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ }
123
+ .send-icon {
124
+ font-weight: bold;
125
+ }
126
+
127
+ /* 标注说明 */
128
+ .annotation {
129
+ margin-top: 20px;
130
+ padding: 12px;
131
+ background: #f0f7ff;
132
+ border-left: 3px solid #0057FE;
133
+ border-radius: 4px;
134
+ font-size: 13px;
135
+ color: #333;
136
+ line-height: 1.8;
137
+ }
138
+ .annotation strong {
139
+ color: #0057FE;
140
+ }
141
+ </style>
142
+ </head>
143
+ <body>
144
+ <div class="preview-card">
145
+ <div class="preview-title">样式预览:统一整体输入框</div>
146
+
147
+ <!-- 整体只有一个外部边框 -->
148
+ <div class="input-container">
149
+ <!-- 上部分:输入区域(无边框) -->
150
+ <div class="input-textarea-area">
151
+ <textarea class="bottom-input" placeholder="医生补充信息或提问..."></textarea>
152
+ </div>
153
+
154
+ <!-- 下部分:按钮区域 -->
155
+ <div class="input-controls">
156
+ <div class="input-controls-left">
157
+ <button class="upload-btn">
158
+ <span class="upload-icon">+</span>
159
+ <span>上传(报告、图片)</span>
160
+ </button>
161
+ </div>
162
+ <div class="input-controls-right">
163
+ <span class="enter-tip">Enter</span>
164
+ <button class="send-btn">
165
+ <span class="send-icon">↑</span>
166
+ </button>
167
+ </div>
168
+ </div>
169
+ </div>
170
+
171
+ <div class="annotation">
172
+ <strong>设计说明:</strong><br>
173
+ 1. 整个输入框组件只有一个外部边框(蓝色框线)<br>
174
+ 2. 上部分是输入区域,<strong>无边框</strong>,直接填充在整体内部<br>
175
+ 3. 下部分是按钮区域,包含上传按钮和发送按钮<br>
176
+ 4. 输入区域和按钮区域在同一个带边框的容器内,视觉上是一个整体
177
+ </div>
178
+ </div>
179
+ </body>
180
+ </html>