foucui 1.0.1 → 1.0.2

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 (234) hide show
  1. package/dist/components/QiuCanvasKit/QiuCanvasEditor.vue.d.ts +3 -1
  2. package/dist/components/QiuCanvasKit/components/DataModulesPanel.vue.d.ts +1 -0
  3. package/dist/components/QiuTable/index.vue.d.ts +12 -12
  4. package/dist/foucui.css +1 -1
  5. package/dist/foucui.js +7476 -7373
  6. package/dist/foucui.umd.cjs +19 -19
  7. package/package.json +23 -13
  8. package/components/QiuAffix/index.vue +0 -186
  9. package/components/QiuAlert/index.vue +0 -208
  10. package/components/QiuAnchor/context.ts +0 -18
  11. package/components/QiuAnchor/index.vue +0 -180
  12. package/components/QiuAnchorLink/index.vue +0 -67
  13. package/components/QiuApp/index.vue +0 -9
  14. package/components/QiuAutocomplete/index.vue +0 -408
  15. package/components/QiuAvatar/index.vue +0 -140
  16. package/components/QiuBacktop/index.vue +0 -121
  17. package/components/QiuBadge/api/index.ts +0 -389
  18. package/components/QiuBadge/components/BadgeImagePickerDialog.vue +0 -243
  19. package/components/QiuBadge/components/BadgeLibraryManagerDialog.vue +0 -30
  20. package/components/QiuBadge/components/BadgeLibraryPanel.vue +0 -182
  21. package/components/QiuBadge/composables/useTableHostHeight.ts +0 -53
  22. package/components/QiuBadge/index.ts +0 -18
  23. package/components/QiuBadge/shared/BadgeTemplateRenderer.vue +0 -32
  24. package/components/QiuBadge/shared/assetUrl.ts +0 -26
  25. package/components/QiuBadge/shared/badgeTemplate.ts +0 -309
  26. package/components/QiuBadge/utils/chinaAreaData.ts +0 -44
  27. package/components/QiuBadge/utils/hostRegion.ts +0 -22
  28. package/components/QiuBadge/utils/pca-code.json +0 -1
  29. package/components/QiuBadge/utils/pdfFromElement.ts +0 -348
  30. package/components/QiuBadge/views/BadgeLibraryView.vue +0 -32
  31. package/components/QiuBadge/views/BadgeManageView.vue +0 -1364
  32. package/components/QiuBadge/views/BadgeTemplateEditorView.vue +0 -10
  33. package/components/QiuBadge/views/BadgeTemplateListView.vue +0 -229
  34. package/components/QiuBadge/views/DeskLabelTemplateListView.vue +0 -227
  35. package/components/QiuBadge/views/DeskLabelView.vue +0 -683
  36. package/components/QiuBadgeDot/index.vue +0 -87
  37. package/components/QiuButton/index.vue +0 -247
  38. package/components/QiuButtonGroup/index.vue +0 -63
  39. package/components/QiuCanvasKit/QiuCanvasEditor.vue +0 -5503
  40. package/components/QiuCanvasKit/QiuCanvasRenderer.vue +0 -348
  41. package/components/QiuCanvasKit/assetUrl.ts +0 -11
  42. package/components/QiuCanvasKit/components/DataModulesPanel.vue +0 -352
  43. package/components/QiuCanvasKit/export/html.ts +0 -132
  44. package/components/QiuCanvasKit/export/pdf.ts +0 -48
  45. package/components/QiuCanvasKit/export/png.ts +0 -50
  46. package/components/QiuCanvasKit/index.ts +0 -20
  47. package/components/QiuCanvasKit/modules/badgeCompat.ts +0 -84
  48. package/components/QiuCanvasKit/modules/dataRegistry.ts +0 -207
  49. package/components/QiuCanvasKit/modules/merge.ts +0 -71
  50. package/components/QiuCanvasKit/presets/badge.ts +0 -67
  51. package/components/QiuCanvasKit/presets/banner.ts +0 -79
  52. package/components/QiuCanvasKit/types.ts +0 -138
  53. package/components/QiuCard/index.vue +0 -104
  54. package/components/QiuCarousel/context.ts +0 -16
  55. package/components/QiuCarousel/index.vue +0 -343
  56. package/components/QiuCarouselItem/index.vue +0 -47
  57. package/components/QiuCascader/index.vue +0 -879
  58. package/components/QiuCascader/types.ts +0 -48
  59. package/components/QiuCheckbox/QiuCheckboxGroup.vue +0 -78
  60. package/components/QiuCheckbox/index.vue +0 -231
  61. package/components/QiuCheckbox/types.ts +0 -8
  62. package/components/QiuCode/index.vue +0 -64
  63. package/components/QiuCol/col.scss +0 -55
  64. package/components/QiuCol/index.vue +0 -64
  65. package/components/QiuCollapse/context.ts +0 -10
  66. package/components/QiuCollapse/index.vue +0 -70
  67. package/components/QiuCollapseItem/index.vue +0 -167
  68. package/components/QiuColorField/index.vue +0 -296
  69. package/components/QiuColorPicker/README.md +0 -118
  70. package/components/QiuColorPicker/index.vue +0 -60
  71. package/components/QiuColorfulCard/index.vue +0 -101
  72. package/components/QiuCombobox/index.vue +0 -277
  73. package/components/QiuConfigProvider/index.vue +0 -31
  74. package/components/QiuContextMenu/index.vue +0 -209
  75. package/components/QiuDate/index.vue +0 -1134
  76. package/components/QiuDescriptions/context.ts +0 -20
  77. package/components/QiuDescriptions/index.vue +0 -115
  78. package/components/QiuDescriptionsItem/index.vue +0 -103
  79. package/components/QiuDialog/index.vue +0 -828
  80. package/components/QiuDigitalCard/index.vue +0 -159
  81. package/components/QiuDivider/index.vue +0 -185
  82. package/components/QiuDot/index.vue +0 -83
  83. package/components/QiuDrawer/index.vue +0 -350
  84. package/components/QiuDropdown/QiuDropdownItem.vue +0 -74
  85. package/components/QiuDropdown/QiuDropdownMenu.vue +0 -22
  86. package/components/QiuDropdown/context.ts +0 -9
  87. package/components/QiuDropdown/index.vue +0 -189
  88. package/components/QiuEmpty/index.vue +0 -73
  89. package/components/QiuForm/index.vue +0 -172
  90. package/components/QiuForm/types.ts +0 -39
  91. package/components/QiuFormItem/index.vue +0 -276
  92. package/components/QiuFullscreen/index.vue +0 -11
  93. package/components/QiuGrid/index.vue +0 -408
  94. package/components/QiuHoverCard/index.vue +0 -192
  95. package/components/QiuIcon/index.vue +0 -117
  96. package/components/QiuIconPicker/iconify.libraries.ts +0 -182
  97. package/components/QiuIconPicker/icons.catalog.ts +0 -3072
  98. package/components/QiuIconPicker/index.vue +0 -488
  99. package/components/QiuImage/index.vue +0 -177
  100. package/components/QiuInput/index.vue +0 -328
  101. package/components/QiuInputNumber/index.vue +0 -295
  102. package/components/QiuInputOtp/index.vue +0 -190
  103. package/components/QiuKbd/index.vue +0 -57
  104. package/components/QiuLayoutContainer/index.vue +0 -50
  105. package/components/QiuLinkPreview/index.vue +0 -224
  106. package/components/QiuLoading/index.ts +0 -176
  107. package/components/QiuLoading/spinner.vue +0 -820
  108. package/components/QiuLoading/types.ts +0 -44
  109. package/components/QiuMention/index.vue +0 -299
  110. package/components/QiuMenu/QiuMenuRoot.vue +0 -241
  111. package/components/QiuMenu/components/QiuMenuItem.vue +0 -340
  112. package/components/QiuMenu/components/QiuSubMenu.vue +0 -504
  113. package/components/QiuMenu/context.ts +0 -21
  114. package/components/QiuMenu/index.vue +0 -43
  115. package/components/QiuMenuNav/QiuMenuNavItem.vue +0 -100
  116. package/components/QiuMenuNav/QiuMenuNavSub.vue +0 -120
  117. package/components/QiuMenuNav/context.ts +0 -14
  118. package/components/QiuMenuNav/index.vue +0 -148
  119. package/components/QiuMsg/QiuMsgItem.vue +0 -180
  120. package/components/QiuMsg/index.ts +0 -158
  121. package/components/QiuMsg/types.ts +0 -23
  122. package/components/QiuMsgBox/index.ts +0 -147
  123. package/components/QiuNotification/QiuNotificationItem.vue +0 -168
  124. package/components/QiuNotification/index.ts +0 -155
  125. package/components/QiuNotification/types.ts +0 -14
  126. package/components/QiuPage/index.vue +0 -12
  127. package/components/QiuPageHeader/index.vue +0 -115
  128. package/components/QiuPageMain/index.vue +0 -78
  129. package/components/QiuPagination/index.vue +0 -421
  130. package/components/QiuPasswordStrength/index.vue +0 -101
  131. package/components/QiuPopconfirm/index.vue +0 -196
  132. package/components/QiuPopover/index.vue +0 -277
  133. package/components/QiuProgress/index.vue +0 -235
  134. package/components/QiuQrcode/index.vue +0 -302
  135. package/components/QiuQueryForm/components/QiuQueryFormBottomPanel.vue +0 -13
  136. package/components/QiuQueryForm/components/QiuQueryFormLeftPanel.vue +0 -37
  137. package/components/QiuQueryForm/components/QiuQueryFormRightPanel.vue +0 -37
  138. package/components/QiuQueryForm/components/QiuQueryFormTopPanel.vue +0 -13
  139. package/components/QiuQueryForm/index.vue +0 -117
  140. package/components/QiuRadio/QiuRadioGroup.vue +0 -75
  141. package/components/QiuRadio/index.vue +0 -191
  142. package/components/QiuRadio/types.ts +0 -9
  143. package/components/QiuRate/index.vue +0 -184
  144. package/components/QiuRefresh/index.vue +0 -32
  145. package/components/QiuResult/index.vue +0 -103
  146. package/components/QiuRow/index.vue +0 -60
  147. package/components/QiuRow/types.ts +0 -5
  148. package/components/QiuScrollbar/index.vue +0 -107
  149. package/components/QiuSearchBar/index.vue +0 -154
  150. package/components/QiuSegmented/index.vue +0 -120
  151. package/components/QiuSelect/QiuOption.vue +0 -93
  152. package/components/QiuSelect/index.vue +0 -452
  153. package/components/QiuSelect/types.ts +0 -15
  154. package/components/QiuSkeleton/index.vue +0 -78
  155. package/components/QiuSlider/index.vue +0 -266
  156. package/components/QiuSpace/index.vue +0 -95
  157. package/components/QiuSparkline/index.vue +0 -92
  158. package/components/QiuStatistic/index.vue +0 -4
  159. package/components/QiuStatistics/index.vue +0 -123
  160. package/components/QiuStep/index.vue +0 -220
  161. package/components/QiuSteps/context.ts +0 -25
  162. package/components/QiuSteps/index.vue +0 -84
  163. package/components/QiuSwitch/index.vue +0 -145
  164. package/components/QiuTabBar/index.vue +0 -218
  165. package/components/QiuTabBar/types.ts +0 -19
  166. package/components/QiuTabPane/index.vue +0 -82
  167. package/components/QiuTable/columns.ts +0 -16
  168. package/components/QiuTable/export.ts +0 -102
  169. package/components/QiuTable/index.ts +0 -24
  170. package/components/QiuTable/index.vue +0 -3503
  171. package/components/QiuTable/registry.ts +0 -75
  172. package/components/QiuTable/styles/table.scss +0 -1230
  173. package/components/QiuTable/types.ts +0 -413
  174. package/components/QiuTable/useArea.ts +0 -202
  175. package/components/QiuTable/useColumns.ts +0 -325
  176. package/components/QiuTable/useEdit.ts +0 -136
  177. package/components/QiuTable/useExtras.ts +0 -115
  178. package/components/QiuTable/useHistory.ts +0 -77
  179. package/components/QiuTable/useMerge.ts +0 -105
  180. package/components/QiuTable/useResize.ts +0 -86
  181. package/components/QiuTable/useScrollSync.ts +0 -152
  182. package/components/QiuTable/useVirtual.ts +0 -97
  183. package/components/QiuTable/utils.ts +0 -165
  184. package/components/QiuTableColumn/index.vue +0 -101
  185. package/components/QiuTag/index.vue +0 -143
  186. package/components/QiuText/index.vue +0 -99
  187. package/components/QiuTime/index.vue +0 -548
  188. package/components/QiuTimeAgo/index.vue +0 -103
  189. package/components/QiuTimeline/index.vue +0 -54
  190. package/components/QiuTimelineItem/index.vue +0 -140
  191. package/components/QiuTips/index.vue +0 -323
  192. package/components/QiuTooltip/index.vue +0 -237
  193. package/components/QiuTransfer/index.vue +0 -277
  194. package/components/QiuTree/QiuTreeNode.vue +0 -146
  195. package/components/QiuTree/index.vue +0 -143
  196. package/components/QiuTree/types.ts +0 -30
  197. package/components/QiuTreeSelect/index.vue +0 -259
  198. package/components/QiuTrend/index.vue +0 -92
  199. package/components/QiuUpload/index.vue +0 -628
  200. package/components/QiuUploadCrop/index.vue +0 -1267
  201. package/components/QiuWatermark/index.vue +0 -121
  202. package/components/useBodyScrollLock.ts +0 -28
  203. package/dist/components/QiuBadge/utils/pca-code.json.d.ts +0 -3
  204. package/plugins/qiu.ts +0 -83
  205. package/plugins/shortcuts.ts +0 -69
  206. package/src/bridge/@/api/media.ts +0 -8
  207. package/src/bridge/@/api/notice.ts +0 -5
  208. package/src/bridge/@/config/index.ts +0 -38
  209. package/src/bridge/@/config/media.config.ts +0 -37
  210. package/src/bridge/@/config/security.config.ts +0 -8
  211. package/src/bridge/@/i18n/index.ts +0 -6
  212. package/src/bridge/@/store/modules/bing.ts +0 -9
  213. package/src/bridge/@/store/modules/errorLog.ts +0 -9
  214. package/src/bridge/@/store/modules/media.ts +0 -10
  215. package/src/bridge/@/store/modules/routes.ts +0 -10
  216. package/src/bridge/@/store/modules/settings.ts +0 -9
  217. package/src/bridge/@/store/modules/tabs.ts +0 -9
  218. package/src/bridge/@/store/modules/user.ts +0 -9
  219. package/src/bridge/@/utils/convertToCamelCase.ts +0 -11
  220. package/src/bridge/@/utils/index.ts +0 -9
  221. package/src/bridge/@/utils/pageTitle.ts +0 -4
  222. package/src/bridge/@/utils/routes.ts +0 -14
  223. package/src/bridge/@/utils/validate.ts +0 -17
  224. package/src/bridge/@qiu/plugins/shortcuts.ts +0 -3
  225. package/src/i18n.ts +0 -8
  226. package/src/icons/qiu-logo.svg +0 -1
  227. package/styles/dark.scss +0 -194
  228. package/styles/normalize.css +0 -349
  229. package/styles/plain.scss +0 -423
  230. package/styles/qiu-tokens.scss +0 -40
  231. package/styles/qiu.scss +0 -1149
  232. package/styles/technology.scss +0 -452
  233. package/styles/var.scss +0 -382
  234. package/styles/variables.scss +0 -77
@@ -1,154 +0,0 @@
1
- <template>
2
- <div class="qiu-search-bar" :class="[`qiu-search-bar--${size}`]">
3
- <qiu-icon icon="search-line" class="qiu-search-bar__icon" />
4
- <input
5
- class="qiu-search-bar__input"
6
- :value="modelValue"
7
- :placeholder="placeholder"
8
- :disabled="disabled"
9
- @input="onInput"
10
- @keydown.enter="onSearch"
11
- />
12
- <button v-if="modelValue" type="button" class="qiu-search-bar__clear" aria-label="清除" @click="onClear">
13
- ×
14
- </button>
15
- <button v-if="showButton" type="button" class="qiu-search-bar__btn" @click="onSearch">
16
- <slot name="button">搜索</slot>
17
- </button>
18
- </div>
19
- </template>
20
-
21
- <script lang="ts" setup>
22
- defineOptions({ name: 'QiuSearchBar' })
23
-
24
- const props = withDefaults(
25
- defineProps<{
26
- modelValue?: string
27
- placeholder?: string
28
- size?: 'small' | 'default' | 'large'
29
- disabled?: boolean
30
- showButton?: boolean
31
- }>(),
32
- {
33
- modelValue: '',
34
- placeholder: '请输入关键词',
35
- size: 'default',
36
- disabled: false,
37
- showButton: false,
38
- }
39
- )
40
-
41
- const emit = defineEmits<{
42
- 'update:modelValue': [string]
43
- search: [string]
44
- clear: []
45
- }>()
46
-
47
- const onInput = (e: Event) => {
48
- emit('update:modelValue', (e.target as HTMLInputElement).value)
49
- }
50
-
51
- const onSearch = () => {
52
- emit('search', props.modelValue)
53
- }
54
-
55
- const onClear = () => {
56
- emit('update:modelValue', '')
57
- emit('clear')
58
- }
59
- </script>
60
-
61
- <style lang="scss" scoped>
62
- .qiu-search-bar {
63
- display: inline-flex;
64
- align-items: center;
65
- box-sizing: border-box;
66
- width: 100%;
67
- max-width: 100%;
68
- background: var(--qiu-bg-color, #fff);
69
- border: 1px solid var(--qiu-border-color, #dcdfe6);
70
- border-radius: 999px;
71
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
72
-
73
- &:focus-within {
74
- border-color: var(--qiu-color-primary, #409eff);
75
- box-shadow: 0 0 0 1px color-mix(in srgb, var(--qiu-color-primary, #409eff) 25%, transparent);
76
- }
77
- }
78
-
79
- .qiu-search-bar__icon {
80
- flex-shrink: 0;
81
- margin-left: 12px;
82
- color: var(--qiu-text-color-placeholder, #a8abb2);
83
- }
84
-
85
- .qiu-search-bar__input {
86
- flex: 1;
87
- min-width: 0;
88
- height: 100%;
89
- padding: 0 8px;
90
- font-size: 14px;
91
- color: var(--qiu-text-color-primary, #303133);
92
- background: transparent;
93
- border: 0;
94
- outline: none;
95
-
96
- &::placeholder {
97
- color: var(--qiu-text-color-placeholder, #a8abb2);
98
- }
99
- }
100
-
101
- .qiu-search-bar__clear {
102
- display: inline-flex;
103
- align-items: center;
104
- justify-content: center;
105
- width: 18px;
106
- height: 18px;
107
- margin-right: 4px;
108
- padding: 0;
109
- font-size: 14px;
110
- color: var(--qiu-text-color-placeholder, #a8abb2);
111
- cursor: pointer;
112
- background: transparent;
113
- border: 0;
114
- border-radius: 50%;
115
-
116
- &:hover {
117
- color: var(--qiu-text-color-regular, #606266);
118
- background: var(--qiu-fill-color-light, #f5f7fa);
119
- }
120
- }
121
-
122
- .qiu-search-bar__btn {
123
- flex-shrink: 0;
124
- height: 100%;
125
- margin-left: 4px;
126
- padding: 0 16px;
127
- font-size: 14px;
128
- color: #fff;
129
- cursor: pointer;
130
- background: var(--qiu-color-primary, #409eff);
131
- border: 0;
132
- border-radius: 999px;
133
-
134
- &:hover {
135
- opacity: 0.92;
136
- }
137
- }
138
-
139
- .qiu-search-bar--small {
140
- height: 30px;
141
- font-size: 13px;
142
- .qiu-search-bar__btn { padding: 0 12px; font-size: 13px; }
143
- }
144
-
145
- .qiu-search-bar--default {
146
- height: 36px;
147
- }
148
-
149
- .qiu-search-bar--large {
150
- height: 42px;
151
- font-size: 15px;
152
- .qiu-search-bar__btn { padding: 0 20px; font-size: 15px; }
153
- }
154
- </style>
@@ -1,120 +0,0 @@
1
- <template>
2
- <div
3
- class="qiu-segmented"
4
- :class="[`qiu-segmented--${size}`, { 'is-block': block }]"
5
- role="tablist"
6
- >
7
- <button
8
- v-for="opt in options"
9
- :key="String(opt.value)"
10
- type="button"
11
- role="tab"
12
- class="qiu-segmented__item"
13
- :class="{ 'is-active': modelValue === opt.value, 'is-disabled': opt.disabled }"
14
- :disabled="opt.disabled"
15
- @click="onSelect(opt)"
16
- >
17
- <qiu-icon v-if="opt.icon" class="qiu-segmented__icon" :icon="opt.icon" />
18
- <span>{{ opt.label }}</span>
19
- </button>
20
- </div>
21
- </template>
22
-
23
- <script lang="ts" setup>
24
- export interface QiuSegmentedOption {
25
- label: string
26
- value: string | number
27
- disabled?: boolean
28
- icon?: string
29
- }
30
-
31
- defineOptions({ name: 'QiuSegmented' })
32
-
33
- const props = withDefaults(
34
- defineProps<{
35
- modelValue?: string | number
36
- options?: QiuSegmentedOption[]
37
- size?: 'large' | 'default' | 'small'
38
- block?: boolean
39
- }>(),
40
- {
41
- modelValue: '',
42
- options: () => [],
43
- size: 'default',
44
- block: false,
45
- }
46
- )
47
-
48
- const emit = defineEmits<{
49
- 'update:modelValue': [string | number]
50
- change: [string | number]
51
- }>()
52
-
53
- const onSelect = (opt: QiuSegmentedOption) => {
54
- if (opt.disabled || opt.value === props.modelValue) return
55
- emit('update:modelValue', opt.value)
56
- emit('change', opt.value)
57
- }
58
- </script>
59
-
60
- <style lang="scss" scoped>
61
- .qiu-segmented {
62
- display: inline-flex;
63
- padding: 3px;
64
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
65
- border-radius: 6px;
66
-
67
- &.is-block {
68
- display: flex;
69
- width: 100%;
70
-
71
- .qiu-segmented__item {
72
- flex: 1;
73
- }
74
- }
75
-
76
- &--large .qiu-segmented__item {
77
- padding: 8px 16px;
78
- font-size: 15px;
79
- }
80
-
81
- &--small .qiu-segmented__item {
82
- padding: 4px 10px;
83
- font-size: 12px;
84
- }
85
- }
86
-
87
- .qiu-segmented__item {
88
- display: inline-flex;
89
- gap: 6px;
90
- align-items: center;
91
- justify-content: center;
92
- padding: 6px 14px;
93
- font-size: 14px;
94
- color: var(--qiu-text-color-regular, var(--qiu-text-color-regular, #606266));
95
- cursor: pointer;
96
- background: transparent;
97
- border: 0;
98
- border-radius: 4px;
99
- transition: color 0.15s, background 0.15s, box-shadow 0.15s;
100
-
101
- &:hover:not(.is-disabled):not(.is-active) {
102
- color: var(--qiu-color-primary, var(--qiu-color-primary, #0f766e));
103
- }
104
-
105
- &.is-active {
106
- color: var(--qiu-color-primary, var(--qiu-color-primary, #0f766e));
107
- background: var(--qiu-bg-color, var(--qiu-bg-color, #fff));
108
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
109
- }
110
-
111
- &.is-disabled {
112
- cursor: not-allowed;
113
- opacity: 0.5;
114
- }
115
- }
116
-
117
- .qiu-segmented__icon {
118
- font-size: 1.1em;
119
- }
120
- </style>
@@ -1,93 +0,0 @@
1
- <template>
2
- <div
3
- class="qiu-option"
4
- :class="{
5
- 'is-selected': isSelected,
6
- 'is-disabled': disabled,
7
- 'is-hover': isHover,
8
- }"
9
- @mouseenter="onHover"
10
- @click="onClick"
11
- >
12
- <slot>{{ label }}</slot>
13
- </div>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import type { QiuSelectContext } from './types'
18
-
19
- defineOptions({ name: 'QiuOption' })
20
-
21
- const props = withDefaults(
22
- defineProps<{
23
- value: string | number | boolean
24
- label?: string | number
25
- disabled?: boolean
26
- }>(),
27
- {
28
- disabled: false,
29
- }
30
- )
31
-
32
- const selectCtx = inject<QiuSelectContext>('qiuSelect', null)
33
-
34
- const isHover = ref(false)
35
-
36
- const isSelected = computed(() => selectCtx?.modelValue.value === props.value)
37
-
38
- const onHover = () => {
39
- if (props.disabled) return
40
- isHover.value = true
41
- selectCtx?.setHoverOption(props.value)
42
- }
43
-
44
- const onClick = () => {
45
- if (props.disabled || !selectCtx) return
46
- selectCtx.selectOption(props.value, props.label ?? String(props.value))
47
- }
48
-
49
- onMounted(() => {
50
- selectCtx?.registerOption({
51
- value: props.value,
52
- label: props.label ?? String(props.value),
53
- disabled: props.disabled,
54
- })
55
- })
56
-
57
- onUnmounted(() => {
58
- selectCtx?.unregisterOption(props.value)
59
- })
60
- </script>
61
-
62
- <style lang="scss" scoped>
63
- .qiu-option {
64
- height: 34px;
65
- padding: 0 12px;
66
- overflow: hidden;
67
- line-height: 34px;
68
- color: var(--qiu-text-color-regular, var(--qiu-text-color-regular, #606266));
69
- text-overflow: ellipsis;
70
- white-space: nowrap;
71
- cursor: pointer;
72
- transition: background 0.15s ease, color 0.15s ease;
73
-
74
- &:hover,
75
- &.is-hover {
76
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
77
- }
78
-
79
- &.is-selected {
80
- font-weight: 600;
81
- color: var(--qiu-color-primary, var(--qiu-color-primary));
82
- }
83
-
84
- &.is-disabled {
85
- color: var(--qiu-text-color-placeholder, var(--qiu-text-color-placeholder, #a8abb2));
86
- cursor: not-allowed;
87
-
88
- &:hover {
89
- background: transparent;
90
- }
91
- }
92
- }
93
- </style>