vue2-client 1.15.61 → 1.15.63

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 (134) hide show
  1. package/package.json +110 -110
  2. package/src/base-client/components/common/XButtons/XButtons.vue +3 -12
  3. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  4. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  5. package/src/components/FileImageItem/FileItem.vue +321 -305
  6. package/src/pages/WorkflowDetail/WorkflowDetail.vue +391 -379
  7. package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -0
  8. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  9. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  10. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  11. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  12. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  13. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  14. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  15. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  16. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  17. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  18. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  19. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  20. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  21. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  22. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  23. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  24. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  25. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  26. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  27. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  28. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  29. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  30. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  31. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  32. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  33. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  34. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  35. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  36. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  37. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  38. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  39. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  40. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  41. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  42. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  65. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  66. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  67. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  68. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  69. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  70. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  71. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  72. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  73. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  74. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  75. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  76. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  77. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  78. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  79. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  80. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  81. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  82. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  83. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  84. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  85. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  86. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  87. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  88. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  89. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  90. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  91. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  92. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  93. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  94. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  95. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  96. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  97. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  98. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  99. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  100. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  101. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +0 -495
  102. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +0 -495
  103. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +0 -494
  104. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +0 -494
  105. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +0 -494
  106. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +0 -495
  107. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +0 -495
  108. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +0 -492
  109. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +0 -492
  110. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +0 -485
  111. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +0 -485
  112. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +0 -488
  113. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +0 -222
  114. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +0 -183
  115. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +0 -183
  116. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +0 -183
  117. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +0 -206
  118. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +0 -209
  119. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +0 -242
  120. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +0 -242
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +0 -242
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +0 -251
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +0 -251
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +0 -250
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +0 -250
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +0 -250
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +0 -250
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140844.vue +0 -238
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140910.vue +0 -238
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140912.vue +0 -238
  131. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  132. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  133. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  134. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
@@ -1,494 +0,0 @@
1
- <template>
2
- <!-- 列表卡片模式 listMode: card -->
3
- <div v-if="listMode"
4
- class="demo-infinite-container"
5
- ref="listRef">
6
- <a-list :grid="{ gutter: 16, xs: 1, sm: 2, md: 2, lg: 3, xl: 3, xxl: 4 }"
7
- :data-source="localData">
8
- <a-list-item slot="renderItem" slot-scope="item, index">
9
- <div class="card-a-col">
10
- <a-row class="card-row">
11
- <a-col class="id-a-col" :span="4" v-for="(detail,idx) in item.filter(d => d.label == label)" :key="idx">
12
- {{detail.value}}<span style="font-size: 16px;font-weight: 400 !important;">床</span>
13
- </a-col>
14
- <a-col :span="20" class="id-a-col-2">
15
- <template v-for="(detail,idx) in item">
16
- <span class="describe-list-a-col" :class="{name: detail.bold}" :key="idx" v-if="detail.type == 'title'">{{detail.value}}</span>
17
- <span :key="idx" class="component-a-col" v-else-if="detail.type == 'component' && detail.label != label">
18
- {{`${detail.label}:`}}
19
- <component
20
- :is="detail.slotType"
21
- :key="idx"
22
- :ref="`dynamicComponent_${ idx.slotType || idx}_${idx}`"
23
- :serviceName="serviceName"
24
- v-on="forwardAllEvents"
25
- :queryParamsName="detail.value"
26
- :countVisible="false"
27
- />
28
- </span>
29
- <span :key="idx" class="component-a-col" v-else-if="detail.type == 'date'">
30
- {{`${detail.label}:`}}
31
- <a-date-picker @change="onChange" />
32
- </span>
33
- <span class="describe-list-a-col" :class="{name: detail.bold}" :key="idx" v-else-if="detail.label != label">{{`${detail.label}:${detail.value}`}}</span>
34
- </template>
35
- <a-button v-for="(btn, i) in buttonNames"
36
- :key="i"
37
- icon="search"
38
- class="button-a-col"
39
- @click.stop="click(item, index)">
40
- {{btn}}
41
- </a-button>
42
- </a-col>
43
- </a-row>
44
- </div>
45
- </a-list-item>
46
- <div v-if="loading" class="demo-loading-container">
47
- <a-spin />
48
- </div>
49
- <div v-if="allLoaded">
50
- <div class="demo-infinite-list-bottom">
51
- 已经显示全部数据
52
- </div>
53
- </div>
54
- </a-list>
55
- </div>
56
-
57
- <!-- 默认标签模式 -->
58
- <div class="list-wrapper" v-else>
59
- <a-list size="large" :data-source="data" itemLayout="horizontal" class="list-container" ref="listRef">
60
- <a-list-item slot="renderItem"
61
- slot-scope="item, index"
62
- class="list-item"
63
- @click="handleClick(index)"
64
- @mouseenter="enableHoverOptions && handleMouseEnter(index)"
65
- @mouseleave="handleMouseLeave"
66
- :class="{ 'hover-active': enableHoverOptions && hoveredIndex === index }">
67
- <i v-if="icon"
68
- class="icon-menu"
69
- :style="getIconStyle(item)">
70
- </i>
71
- <span
72
- class="item-text">
73
- {{ item.number }} {{ item.name }}
74
- </span>
75
-
76
- <div v-if="button" class="button-group">
77
- <a-button
78
- v-for="(name, idx) in buttonNames"
79
- :key="idx"
80
- type="link"
81
- :class="['confirm-btn', buttonMode ? 'hover-btn' : '']"
82
- @click.stop="click(index, idx)">
83
- <span :class="{ 'hover-active': enableHoverOptions && hoveredIndex === index }">{{ name }}</span>
84
- </a-button>
85
- </div>
86
-
87
- <!-- 悬浮选项框 -->
88
- <div v-show="enableHoverOptions && hoveredIndex === index"
89
- class="hover-options"
90
- @mouseenter="handleOptionsEnter"
91
- @mouseleave="handleOptionsLeave">
92
- <div class="hover-options-content">
93
- <div v-for="(item, idx) in select_options"
94
- :key="idx"
95
- class="option-item"
96
- @click="handleOptionClick(index, item)">
97
- {{ item }}
98
- </div>
99
- </div>
100
- </div>
101
- </a-list-item>
102
- </a-list>
103
- </div>
104
- </template>
105
-
106
- <script>
107
-
108
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
109
-
110
- export default {
111
- name: 'XList',
112
- components: {
113
- XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
114
- XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
115
- XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
116
- XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
117
- XTimeSelect: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelect.vue'),
118
- XCheckbox: () => import('@vue2-client/base-client/components/his/XCheckbox/XCheckbox.vue'),
119
- XTitle: () => import('@vue2-client/base-client/components/his/XTitle/XTitle.vue'),
120
- XSelect: () => import('@vue2-client/base-client/components/his/XSelect/XSelect.vue')
121
- },
122
- props: {
123
- queryParamsName: {
124
- type: Object,
125
- default: null
126
- },
127
- fixedQueryForm: {
128
- type: Object,
129
- default: { condition: '1=1' }
130
- },
131
- enableHoverOptions: {
132
- type: Boolean,
133
- default: true
134
- },
135
- serviceName: {
136
- type: String,
137
- default: 'af-his'
138
- }
139
- },
140
- inject: ['getComponentByName'],
141
- data () {
142
- return {
143
- data: [], // 数据源
144
- localData: [], // 本地数据源
145
- loading: false, // 加载中
146
- busy: false, // 繁忙状态
147
- button: false,
148
- icon: false,
149
- buttonNames: [],
150
- listMode: undefined, // 列表模式
151
- buttonMode: true,
152
- hoveredIndex: -1, // 当前悬浮的索引
153
- isOptionsHovered: false, // 悬浮选项框是否悬浮
154
- hoverTimer: null, // 悬浮选项框定时器
155
- leaveTimer: null, // 离开选项框定时器
156
- select_options: [], // 悬浮选项框
157
- logicName: '',
158
- nowPage: 0, // 当前页
159
- pageSize: 12,
160
- allLoaded: false,
161
- label: 'id'
162
- }
163
- },
164
- created () {
165
- this.getData(this.queryParamsName, this.fixedQueryForm)
166
- },
167
- mounted () {
168
- this.$nextTick(() => {
169
- const ref = this.$refs.listRef
170
- if (ref && ref.addEventListener) {
171
- ref.addEventListener('scroll', this.handleInfiniteOnLoad)
172
- }
173
- })
174
- },
175
- computed: {
176
- forwardAllEvents () {
177
- return {
178
- // 监听所有事件并转发给父组件
179
- '*': (eventName, ...payload) => {
180
- this.$emit(eventName, ...payload)
181
- }
182
- }
183
- }
184
- },
185
- methods: {
186
- onChange (date, dateString) {
187
- this.$emit('dateChange', date, dateString)
188
- },
189
- handleInfiniteOnLoad (event) {
190
- const container = event.target // 获取列表容器元素
191
- const scrollTop = container.scrollTop // 获取滚动条的当前位置
192
- const scrollHeight = container.scrollHeight // 获取列表容器的总高度
193
- const clientHeight = container.clientHeight // 获取列表容器的可见高度
194
- const bottomOffset = 20
195
- // 判断是否滚动到底部
196
- if (scrollTop + clientHeight >= scrollHeight - bottomOffset) {
197
- if (this.busy || this.allLoaded) return // 防止重复加载
198
- this.busy = true
199
- this.loading = true
200
- try {
201
- this.nowPage = this.nowPage + this.pageSize
202
- this.fixedQueryForm.condition = `Limit ${this.nowPage}, ${this.pageSize}`
203
- runLogic(this.logicName, this.fixedQueryForm, 'af-his').then(async (res) => {
204
- this.localData = [...this.localData, ...res]
205
- // 如果返回的数据长度小于每页的记录数,则认为已经加载完所有数据
206
- if (res.length < this.pageSize) {
207
- this.allLoaded = true
208
- }
209
- })
210
- } catch (e) {
211
- this.$message.error(e.message)
212
- } finally {
213
- this.loading = false
214
- this.busy = false
215
- }
216
- }
217
- },
218
- async getData (config, param) {
219
- const that = this
220
- getConfigByName(config, 'af-his', async (res) => {
221
- that.listMode = await res.listMode == 'card'
222
- that.logicName = await res.data
223
- that.button = await res.button // 按钮
224
- that.icon = await res.icon // 图标
225
- that.label = await res.label // 标签
226
- that.buttonNames = await res.buttonNames || []// 按钮文本
227
- that.buttonMode = await res.buttonMode || false// 按钮模式
228
- this.enableHoverOptions = await res.enableHoverOptions || false// 悬浮选项框
229
- if (this.enableHoverOptions) {
230
- this.select_options = await res.select_options
231
- }
232
- if (that.listMode) { param.condition = `Limit ${that.nowPage}, ${that.pageSize}` }
233
- runLogic(res.data, param, 'af-his').then(result => {
234
- that.data = result
235
- if (that.nowPage == 0) { this.localData = result }
236
- })
237
- })
238
- },
239
- // 点击列表项
240
- handleClick (index) {
241
- this.$emit('listClick', this.data[index])
242
- },
243
- refreshList (param) {
244
- this.getData(this.queryParamsName, param)
245
- },
246
- click (index, buttonIndex) {
247
- this.$emit('click', { data: this.data[index], name: this.buttonNames[buttonIndex] })
248
- },
249
- getIconStyle (item) {
250
- return item.picture
251
- ? { backgroundImage: `url(${item.picture})` }
252
- : {}
253
- },
254
- filterData (par) {
255
- runLogic(this.queryParamsName, par, 'af-his').then(res => {
256
- this.data = res.data
257
- })
258
- },
259
- // 鼠标进入列表项
260
- handleMouseEnter (index) {
261
- this.clearAllTimers()
262
- this.hoveredIndex = index
263
- this.isOptionsHovered = true
264
- },
265
- // 鼠标离开列表项
266
- handleMouseLeave () {
267
- this.clearAllTimers()
268
- this.leaveTimer = setTimeout(() => {
269
- this.isOptionsHovered = false
270
- this.hoveredIndex = -1
271
- }, 100)
272
- },
273
- // 鼠标进入悬浮选项框
274
- handleOptionsEnter () {
275
- this.clearAllTimers()
276
- this.isOptionsHovered = true
277
- },
278
- // 鼠标离开悬浮选项框
279
- handleOptionsLeave () {
280
- this.clearAllTimers()
281
- this.leaveTimer = setTimeout(() => {
282
- this.isOptionsHovered = false
283
- this.hoveredIndex = -1
284
- }, 100)
285
- },
286
- // 清除所有定时器
287
- clearAllTimers () {
288
- if (this.hoverTimer) {
289
- clearTimeout(this.hoverTimer)
290
- this.hoverTimer = null
291
- }
292
- if (this.leaveTimer) {
293
- clearTimeout(this.leaveTimer)
294
- this.leaveTimer = null
295
- }
296
- },
297
- // 选项框点击
298
- handleOptionClick (index, action) {
299
- this.$emit('optionClick', { data: this.data[index], action })
300
- }
301
- },
302
- watch: {
303
- fixedQueryForm: {
304
- deep: true,
305
- handler (val) {
306
- this.refreshList(val)
307
- }
308
- }
309
- },
310
- beforeDestroy () {
311
- const ref = this.$refs.listRef
312
- if (ref && ref.removeEventListener) {
313
- ref.removeEventListener('scroll', this.handleInfiniteOnLoad)
314
- }
315
- this.clearAllTimers()
316
- }
317
- }
318
- </script>
319
-
320
- <style scoped>
321
- .list-wrapper {
322
- max-height: 240px;
323
- overflow-y: auto;
324
- padding-right: 2px;
325
- }
326
-
327
- .list-container {
328
- width: 100%;
329
- }
330
-
331
- .list-item {
332
- height: 35px;
333
- border-radius: 6px;
334
- background-color: #F4F4F4;
335
- padding: 8px 15px;
336
- font-size: 16px;
337
- display: flex;
338
- align-items: center;
339
- width: 100%;
340
- border: 1px solid #D9D9D9;
341
- box-sizing: border-box;
342
- margin-bottom: 8px !important;
343
- position: relative;
344
- transition: background-color 0.3s ease;
345
- }
346
-
347
- .icon-menu {
348
- display: inline-block;
349
- width: 20px;
350
- height: 20px;
351
- background-color: #ccc;
352
- margin-right: 8px;
353
- }
354
-
355
- .item-text {
356
- flex: 1;
357
- }
358
-
359
- .confirm-btn {
360
- margin-left: auto;
361
- padding: 0 8px;
362
- }
363
-
364
- .confirm-btn.hover-btn {
365
- opacity: 0;
366
- transition: opacity 0.3s ease;
367
- }
368
-
369
- .button-group {
370
- display: flex;
371
- gap: 2px; /* 按钮之间的间距 */
372
- }
373
-
374
- .list-item:hover .confirm-btn.hover-btn {
375
- opacity: 1;
376
- }
377
-
378
- /* 自定义滚动条样式 */
379
- .list-wrapper::-webkit-scrollbar {
380
- width: 6px;
381
- }
382
-
383
- .list-wrapper::-webkit-scrollbar-thumb {
384
- background-color: #d9d9d9;
385
- border-radius: 3px;
386
- }
387
-
388
- .list-wrapper::-webkit-scrollbar-track {
389
- background-color: #f0f0f0;
390
- }
391
-
392
- .hover-active {
393
- color: white;
394
- }
395
-
396
- .list-item.hover-active {
397
- background-color: rgb(0, 87, 254) !important;
398
- color: white;
399
- border: 1px solid black;
400
- }
401
-
402
- .hover-options {
403
- position: absolute;
404
- left: 0;
405
- right: 0;
406
- top: 100%;
407
- background: white;
408
- border: 1px solid #d9d9d9;
409
- border-radius: 4px;
410
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
411
- z-index: 1000;
412
- margin-top: 4px;
413
- width: 100%;
414
- box-sizing: border-box;
415
- pointer-events: auto;
416
- }
417
-
418
- .hover-options-content {
419
- padding: 4px 0;
420
- display: flex;
421
- flex-direction: column;
422
- width: 100%;
423
- }
424
-
425
- .option-item {
426
- padding: 8px 12px;
427
- cursor: pointer;
428
- transition: all 0.3s ease;
429
- color: #333;
430
- font-size: 14px;
431
- display: flex;
432
- align-items: center;
433
- }
434
-
435
- .option-item:hover {
436
- background-color: #f5f5f5;
437
- color: #1890ff;
438
- }
439
-
440
- .option-item:active {
441
- background-color: #e6f7ff;
442
- }
443
-
444
- .demo-loading-container {
445
- position: absolute;
446
- bottom: 40px;
447
- width: 100%;
448
- text-align: center;
449
- }
450
-
451
- .demo-infinite-container{
452
- overflow-x: hidden;
453
- overflow-y: auto;
454
- height: 80vh;
455
- }
456
- .card-row{
457
- height: 100%;
458
- width: 100%;
459
- border-radius: 6px;
460
- padding: 6px;
461
- }
462
- .id-a-col{
463
- font-size: 22px;
464
- font-weight: 700;
465
- display: flex;
466
- justify-content: space-evenly;
467
- align-items: center;
468
- }
469
- .id-a-col-2{}
470
- .describe-list-a-col{
471
- display: block;
472
- font-size: 16px;
473
- }
474
- .name{
475
- font-size: 18px;
476
- font-weight: 700;
477
- }
478
- .component-a-col{
479
- display: flex;
480
- align-items: center;
481
- }
482
- .button-a-col{
483
- position: absolute;
484
- top: 245px;
485
- left: 225px;
486
- }
487
- .card-a-col{
488
- background-color: rgba(247, 249, 252);
489
- height: 297px;
490
- width: auto;
491
- border-radius: 6px;
492
- border: 1px solid #E5E9F0;
493
- }
494
- </style>