vue2-client 1.12.93 → 1.12.94

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.12.93",
3
+ "version": "1.12.94",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -1,247 +1,247 @@
1
- <template>
2
- <div>
3
- <a-collapse
4
- :activeKey="activeKey"
5
- @change="handleChange"
6
- >
7
- <a-collapse-panel
8
- v-for="(panel, panelIndex) in config.showData"
9
- :key="panelIndex.toString()"
10
- :show-arrow="false"
11
- :disabled="config.collapsible"
12
- >
13
- <template #header>
14
- <div class="header-content">
15
- <span
16
- class="header-text"
17
- :style="config.titleStyle"
18
- >
19
- {{ panel.title }}
20
- </span>
21
- <!-- 当有 title2 数据时显示信息项 -->
22
- <template v-if="panel.title2 && panel.title2.length">
23
- <span
24
- v-for="(item, headerIndex) in panel.title2"
25
- :key="headerIndex"
26
- class="info-item"
27
- :style="config.title2Style"
28
- >
29
- <!-- 根据showTitle是否显示键名 -->
30
- <span v-if="config.showTitle">{{ item.key }}:</span>
31
- <span>{{ item.value }}</span>
32
- </span>
33
- </template>
34
- <!-- 当有 title3 数据时显示时间项 -->
35
- <span
36
- v-if="panel.title3"
37
- class="time-item"
38
- :style="config.title3Style"
39
- >
40
- {{ panel.title3 }}
41
- </span>
42
- <!-- 修改搜索框的显示条件 -->
43
- <a-input-search
44
- v-if="panel.search"
45
- v-model="searchText[panelIndex]"
46
- :placeholder="panel.searchPlace"
47
- class="search-input"
48
- @search="(value) => onSearch(value, panelIndex)"
49
- @click.stop
50
- />
51
- </div>
52
- </template>
53
- <!-- 根据类型显示不同内容 -->
54
- <template v-if="panel.type === 'picture'">
55
- <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
56
- </template>
57
- <template v-else-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio'].includes(panel.type)">
58
- <component
59
- :is="getComponentName(panel.type)"
60
- :ref="`dynamicComponent_${ panel.type }`"
61
- serverName="af-his"
62
- :queryParamsName="panel.configName"
63
- :countVisible="false"
64
- :env="env"
65
- @listClick="listClick"
66
- />
67
- </template>
68
- </a-collapse-panel>
69
- </a-collapse>
70
- </div>
71
- </template>
72
-
73
- <script>
74
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
75
-
76
- export default {
77
- name: 'XCollapse',
78
- components: {
79
- XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
80
- XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
81
- XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
82
- XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
83
- XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
84
- XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
85
- XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
86
- XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
87
- XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
88
- XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
89
- XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
90
- XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
91
- XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
92
- XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
93
- XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
94
- XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
95
- XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
96
- XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
97
- XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue')
98
- },
99
- data () {
100
- return {
101
- activeKey: [],
102
- config: {},
103
- configName: '',
104
- searchText: {}
105
- }
106
- },
107
- props: {
108
- // 环境
109
- env: {
110
- type: String,
111
- default: 'prod'
112
- },
113
- // json名
114
- queryParamsName: {
115
- type: Object,
116
- default: 'openPrescriptionConfig'
117
- },
118
- parameter: {
119
- type: Object,
120
- default: () => {
121
- return {}
122
- }
123
- }
124
- },
125
- created () {
126
- this.getData(this.queryParamsName, this.parameter)
127
- },
128
- beforeDestroy () {
129
- },
130
- methods: {
131
- getComponentName (componentName) {
132
- return componentName
133
- },
134
- listClick (data) {
135
- this.$emit('listClick', data)
136
- },
137
- getConfigByName (componentName) {
138
- const refKey = `dynamicComponent_${componentName}`
139
- return this.$refs[refKey]
140
- },
141
- async getData (config, parameter) {
142
- this.configName = config
143
- getConfigByName(config, 'af-his', res => {
144
- this.config = res
145
- console.warn(this.config)
146
- runLogic(res.mainLogic, parameter, 'af-his').then(result => {
147
- this.config.showData = result
148
- // 更具timeType更改时间类型
149
- if (this.config.timeType && this.config.timeType === '.') {
150
- this.config.showData.forEach(panel => {
151
- if (panel.title3) {
152
- panel.title3 = this.convertToCustomFormat(panel.title3)
153
- }
154
- })
155
- this.$forceUpdate()
156
- }
157
- this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
158
- })
159
- })
160
- },
161
- refreshXCollapse () {
162
- this.getData(this.queryParamsName, this.parameter)
163
- },
164
- convertToCustomFormat (dateString) {
165
- // 创建一个新的 Date 对象
166
- const date = new Date(dateString)
167
- // 获取年、月、日
168
- const year = date.getFullYear()
169
- const month = date.getMonth() + 1 // 月份从0开始,所以需要加1
170
- const day = date.getDate()
171
- // 返回格式化后的字符串
172
- return `${year}.${month}.${day}`
173
- },
174
- handleChange (keys) {
175
- this.activeKey = keys
176
- },
177
- onSearch (value, panelIndex) {
178
- console.log('搜索内容:', value, '面板索引:', panelIndex)
179
- },
180
- },
181
- watch: {
182
- queryParamsName: {
183
- handler (newValue) {
184
- this.getData(newValue, this.parameter)
185
- },
186
- deep: true
187
- }
188
- }
189
- }
190
- </script>
191
-
192
- <style scoped>
193
- .header-content {
194
- display: flex;
195
- align-items: center;
196
- gap: 24px;
197
- white-space: nowrap;
198
- overflow: hidden;
199
- }
200
-
201
- .header-text {
202
- margin-right: 16px;
203
- font-size: 16px;
204
- font-weight: 800;
205
- flex-shrink: 0;
206
- }
207
-
208
- .info-item {
209
- display: inline-flex;
210
- align-items: center;
211
- gap: 4px;
212
- font-size: 12px;
213
- color: #888888;
214
- flex-shrink: 0;
215
- }
216
-
217
- .time-item {
218
- margin-left: auto;
219
- text-align: right;
220
- flex-shrink: 0;
221
- }
222
-
223
- :deep(.ant-collapse-header) {
224
- position: relative;
225
- border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
226
- align-items: center !important;
227
- }
228
-
229
- :deep(.ant-collapse-header-text) {
230
- flex: 1;
231
- }
232
-
233
- :deep(.ant-collapse-content > .ant-collapse-content-box) {
234
- padding: 0;
235
- }
236
-
237
- :deep(.ant-card-body) {
238
- padding: 8px;
239
- }
240
- .search-input {
241
- margin-left: auto;
242
- width: 100%;
243
- }
244
- :deep(.ant-collapse-item-disabled > .ant-collapse-header) {
245
- cursor: default !important;
246
- }
247
- </style>
1
+ <template>
2
+ <div>
3
+ <a-collapse
4
+ :activeKey="activeKey"
5
+ @change="handleChange"
6
+ >
7
+ <a-collapse-panel
8
+ v-for="(panel, panelIndex) in config.showData"
9
+ :key="panelIndex.toString()"
10
+ :show-arrow="false"
11
+ :disabled="config.collapsible"
12
+ >
13
+ <template #header>
14
+ <div class="header-content">
15
+ <span
16
+ class="header-text"
17
+ :style="config.titleStyle"
18
+ >
19
+ {{ panel.title }}
20
+ </span>
21
+ <!-- 当有 title2 数据时显示信息项 -->
22
+ <template v-if="panel.title2 && panel.title2.length">
23
+ <span
24
+ v-for="(item, headerIndex) in panel.title2"
25
+ :key="headerIndex"
26
+ class="info-item"
27
+ :style="config.title2Style"
28
+ >
29
+ <!-- 根据showTitle是否显示键名 -->
30
+ <span v-if="config.showTitle">{{ item.key }}:</span>
31
+ <span>{{ item.value }}</span>
32
+ </span>
33
+ </template>
34
+ <!-- 当有 title3 数据时显示时间项 -->
35
+ <span
36
+ v-if="panel.title3"
37
+ class="time-item"
38
+ :style="config.title3Style"
39
+ >
40
+ {{ panel.title3 }}
41
+ </span>
42
+ <!-- 修改搜索框的显示条件 -->
43
+ <a-input-search
44
+ v-if="panel.search"
45
+ v-model="searchText[panelIndex]"
46
+ :placeholder="panel.searchPlace"
47
+ class="search-input"
48
+ @search="(value) => onSearch(value, panelIndex)"
49
+ @click.stop
50
+ />
51
+ </div>
52
+ </template>
53
+ <!-- 根据类型显示不同内容 -->
54
+ <template v-if="panel.type === 'picture'">
55
+ <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
56
+ </template>
57
+ <template v-else-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio'].includes(panel.type)">
58
+ <component
59
+ :is="getComponentName(panel.type)"
60
+ :ref="`dynamicComponent_${ panel.type }`"
61
+ serverName="af-his"
62
+ :queryParamsName="panel.configName"
63
+ :countVisible="false"
64
+ :env="env"
65
+ @listClick="listClick"
66
+ />
67
+ </template>
68
+ </a-collapse-panel>
69
+ </a-collapse>
70
+ </div>
71
+ </template>
72
+
73
+ <script>
74
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
75
+
76
+ export default {
77
+ name: 'XCollapse',
78
+ components: {
79
+ XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
80
+ XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
81
+ XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
82
+ XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
83
+ XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
84
+ XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
85
+ XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
86
+ XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
87
+ XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
88
+ XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
89
+ XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
90
+ XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
91
+ XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
92
+ XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
93
+ XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
94
+ XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
95
+ XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
96
+ XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
97
+ XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue')
98
+ },
99
+ data () {
100
+ return {
101
+ activeKey: [],
102
+ config: {},
103
+ configName: '',
104
+ searchText: {}
105
+ }
106
+ },
107
+ props: {
108
+ // 环境
109
+ env: {
110
+ type: String,
111
+ default: 'prod'
112
+ },
113
+ // json名
114
+ queryParamsName: {
115
+ type: Object,
116
+ default: null
117
+ },
118
+ parameter: {
119
+ type: Object,
120
+ default: () => {
121
+ return {}
122
+ }
123
+ }
124
+ },
125
+ created () {
126
+ this.getData(this.queryParamsName, this.parameter)
127
+ },
128
+ beforeDestroy () {
129
+ },
130
+ methods: {
131
+ getComponentName (componentName) {
132
+ return componentName
133
+ },
134
+ listClick (data) {
135
+ this.$emit('listClick', data)
136
+ },
137
+ getConfigByName (componentName) {
138
+ const refKey = `dynamicComponent_${componentName}`
139
+ return this.$refs[refKey]
140
+ },
141
+ async getData (config, parameter) {
142
+ this.configName = config
143
+ getConfigByName(config, 'af-his', res => {
144
+ this.config = res
145
+ console.warn(this.config)
146
+ runLogic(res.mainLogic, parameter, 'af-his').then(result => {
147
+ this.config.showData = result
148
+ // 更具timeType更改时间类型
149
+ if (this.config.timeType && this.config.timeType === '.') {
150
+ this.config.showData.forEach(panel => {
151
+ if (panel.title3) {
152
+ panel.title3 = this.convertToCustomFormat(panel.title3)
153
+ }
154
+ })
155
+ this.$forceUpdate()
156
+ }
157
+ this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
158
+ })
159
+ })
160
+ },
161
+ refreshXCollapse () {
162
+ this.getData(this.queryParamsName, this.parameter)
163
+ },
164
+ convertToCustomFormat (dateString) {
165
+ // 创建一个新的 Date 对象
166
+ const date = new Date(dateString)
167
+ // 获取年、月、日
168
+ const year = date.getFullYear()
169
+ const month = date.getMonth() + 1 // 月份从0开始,所以需要加1
170
+ const day = date.getDate()
171
+ // 返回格式化后的字符串
172
+ return `${year}.${month}.${day}`
173
+ },
174
+ handleChange (keys) {
175
+ this.activeKey = keys
176
+ },
177
+ onSearch (value, panelIndex) {
178
+ console.log('搜索内容:', value, '面板索引:', panelIndex)
179
+ },
180
+ },
181
+ watch: {
182
+ queryParamsName: {
183
+ handler (newValue) {
184
+ this.getData(newValue, this.parameter)
185
+ },
186
+ deep: true
187
+ }
188
+ }
189
+ }
190
+ </script>
191
+
192
+ <style scoped>
193
+ .header-content {
194
+ display: flex;
195
+ align-items: center;
196
+ gap: 24px;
197
+ white-space: nowrap;
198
+ overflow: hidden;
199
+ }
200
+
201
+ .header-text {
202
+ margin-right: 16px;
203
+ font-size: 16px;
204
+ font-weight: 800;
205
+ flex-shrink: 0;
206
+ }
207
+
208
+ .info-item {
209
+ display: inline-flex;
210
+ align-items: center;
211
+ gap: 4px;
212
+ font-size: 12px;
213
+ color: #888888;
214
+ flex-shrink: 0;
215
+ }
216
+
217
+ .time-item {
218
+ margin-left: auto;
219
+ text-align: right;
220
+ flex-shrink: 0;
221
+ }
222
+
223
+ :deep(.ant-collapse-header) {
224
+ position: relative;
225
+ border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
226
+ align-items: center !important;
227
+ }
228
+
229
+ :deep(.ant-collapse-header-text) {
230
+ flex: 1;
231
+ }
232
+
233
+ :deep(.ant-collapse-content > .ant-collapse-content-box) {
234
+ padding: 0;
235
+ }
236
+
237
+ :deep(.ant-card-body) {
238
+ padding: 8px;
239
+ }
240
+ .search-input {
241
+ margin-left: auto;
242
+ width: 100%;
243
+ }
244
+ :deep(.ant-collapse-item-disabled > .ant-collapse-header) {
245
+ cursor: default !important;
246
+ }
247
+ </style>
@@ -1,128 +1,126 @@
1
- <template>
2
- <div class="list-wrapper">
3
- <a-list size="large" :data-source="data" itemLayout="horizontal" class="list-container" ref="listRef">
4
- <a-list-item slot="renderItem" slot-scope="item, index" class="list-item" @click="handleClick(index)">
5
- <i
6
- v-if="icon"
7
- class="icon-menu"
8
- :style="getIconStyle(item)"
9
- ></i>
10
- <span
11
- class="item-text">
12
- {{ item.number }} {{ item.name }}
13
- </span>
14
- <a-button v-if="button" type="link" class="confirm-btn" @click.stop="click(index)">{{ buttonName }}</a-button>
15
- </a-list-item>
16
- </a-list>
17
- </div>
18
- </template>
19
-
20
- <script>
21
-
22
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
23
-
24
- export default {
25
- name: 'XList',
26
- props: {
27
- queryParamsName: {
28
- type: Object,
29
- default: 'outpatientWaitConfig'
30
- }
31
- },
32
- inject: ['getComponentByName'],
33
- data () {
34
- return {
35
- data: [],
36
- button: false,
37
- icon: false,
38
- buttonName: ''
39
- }
40
- },
41
- created () {
42
- this.getData(this.queryParamsName)
43
- },
44
- methods: {
45
- async getData (config) {
46
- getConfigByName(config, 'af-his', res => {
47
- this.button = res.button
48
- this.icon = res.icon
49
- this.buttonName = res.buttonName
50
- runLogic(res.mainSource, {}, 'af-his').then(resData => {
51
- this.data = resData
52
- })
53
- })
54
- },
55
- handleClick (index) {
56
- this.$emit('listClick', this.data[index])
57
- },
58
- refreshList () {
59
- this.getData(this.queryParamsName)
60
- },
61
- click (index) {
62
- this.$emit('click', this.data[index + 1])
63
- },
64
- getIconStyle (item) {
65
- return item.picture
66
- ? { backgroundImage: `url(${item.picture})` }
67
- : {}
68
- }
69
- }
70
- }
71
- </script>
72
-
73
- <style scoped>
74
- .list-wrapper {
75
- max-height: 240px;
76
- overflow-y: auto;
77
- padding-right: 2px;
78
- }
79
-
80
- .list-container {
81
- width: 100%;
82
- }
83
-
84
- .list-item {
85
- height: 35px;
86
- border-radius: 6px;
87
- background-color: #F4F4F4;
88
- padding: 8px 15px;
89
- font-size: 16px;
90
- display: flex;
91
- align-items: center;
92
- width: 100%;
93
- border: 1px solid #D9D9D9;
94
- box-sizing: border-box;
95
- margin-bottom: 8px !important;
96
- }
97
-
98
- .icon-menu {
99
- display: inline-block;
100
- width: 20px;
101
- height: 20px;
102
- background-color: #ccc;
103
- margin-right: 8px;
104
- }
105
-
106
- .item-text {
107
- flex: 1;
108
- }
109
-
110
- .confirm-btn {
111
- margin-left: auto;
112
- padding: 0 8px;
113
- }
114
-
115
- /* 自定义滚动条样式 */
116
- .list-wrapper::-webkit-scrollbar {
117
- width: 6px;
118
- }
119
-
120
- .list-wrapper::-webkit-scrollbar-thumb {
121
- background-color: #d9d9d9;
122
- border-radius: 3px;
123
- }
124
-
125
- .list-wrapper::-webkit-scrollbar-track {
126
- background-color: #f0f0f0;
127
- }
128
- </style>
1
+ <template>
2
+ <div class="list-wrapper">
3
+ <a-list size="large" :data-source="data" itemLayout="horizontal" class="list-container" ref="listRef">
4
+ <a-list-item slot="renderItem" slot-scope="item, index" class="list-item" @click="handleClick(index)">
5
+ <i
6
+ v-if="icon"
7
+ class="icon-menu"
8
+ :style="getIconStyle(item)"
9
+ ></i>
10
+ <span
11
+ class="item-text">
12
+ {{ item.number }} {{ item.name }}
13
+ </span>
14
+ <a-button v-if="button" type="link" class="confirm-btn" @click.stop="click(index)">{{ buttonName }}</a-button>
15
+ </a-list-item>
16
+ </a-list>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+
22
+ import { runLogic } from '@vue2-client/services/api/common'
23
+
24
+ export default {
25
+ name: 'XList',
26
+ props: {
27
+ queryParamsName: {
28
+ type: Object,
29
+ default: null
30
+ }
31
+ },
32
+ inject: ['getComponentByName'],
33
+ data () {
34
+ return {
35
+ data: [],
36
+ button: false,
37
+ icon: false,
38
+ buttonName: ''
39
+ }
40
+ },
41
+ created () {
42
+ this.getData(this.queryParamsName)
43
+ },
44
+ methods: {
45
+ async getData (config) {
46
+ runLogic(config, {}, 'af-his').then(res => {
47
+ this.button = res.button
48
+ this.icon = res.icon
49
+ this.buttonName = res.buttonName
50
+ this.data = res.data
51
+ })
52
+ },
53
+ handleClick (index) {
54
+ this.$emit('listClick', this.data[index])
55
+ },
56
+ refreshList () {
57
+ this.getData(this.queryParamsName)
58
+ },
59
+ click (index) {
60
+ this.$emit('click', this.data[index + 1])
61
+ },
62
+ getIconStyle (item) {
63
+ return item.picture
64
+ ? { backgroundImage: `url(${item.picture})` }
65
+ : {}
66
+ }
67
+ }
68
+ }
69
+ </script>
70
+
71
+ <style scoped>
72
+ .list-wrapper {
73
+ max-height: 240px;
74
+ overflow-y: auto;
75
+ padding-right: 2px;
76
+ }
77
+
78
+ .list-container {
79
+ width: 100%;
80
+ }
81
+
82
+ .list-item {
83
+ height: 35px;
84
+ border-radius: 6px;
85
+ background-color: #F4F4F4;
86
+ padding: 8px 15px;
87
+ font-size: 16px;
88
+ display: flex;
89
+ align-items: center;
90
+ width: 100%;
91
+ border: 1px solid #D9D9D9;
92
+ box-sizing: border-box;
93
+ margin-bottom: 8px !important;
94
+ }
95
+
96
+ .icon-menu {
97
+ display: inline-block;
98
+ width: 20px;
99
+ height: 20px;
100
+ background-color: #ccc;
101
+ margin-right: 8px;
102
+ }
103
+
104
+ .item-text {
105
+ flex: 1;
106
+ }
107
+
108
+ .confirm-btn {
109
+ margin-left: auto;
110
+ padding: 0 8px;
111
+ }
112
+
113
+ /* 自定义滚动条样式 */
114
+ .list-wrapper::-webkit-scrollbar {
115
+ width: 6px;
116
+ }
117
+
118
+ .list-wrapper::-webkit-scrollbar-thumb {
119
+ background-color: #d9d9d9;
120
+ border-radius: 3px;
121
+ }
122
+
123
+ .list-wrapper::-webkit-scrollbar-track {
124
+ background-color: #f0f0f0;
125
+ }
126
+ </style>