base6-ui 1.1.1 → 1.1.3

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 (126) hide show
  1. package/dist/index.css +1 -0
  2. package/dist/index.umd.js +1 -0
  3. package/es/components/BaseDataTable/index.vue.mjs +2 -2
  4. package/es/components/BaseDataTable/index.vue2.mjs +18 -15
  5. package/es/components/BaseDialog/options.mjs +2 -2
  6. package/es/components/BaseSwitch/index.vue.mjs +2 -2
  7. package/es/components/BaseSwitch/index.vue2.mjs +15 -15
  8. package/es/index.css +1 -1
  9. package/lib/components/BaseDataTable/index.vue.js +1 -1
  10. package/lib/components/BaseDataTable/index.vue2.js +1 -1
  11. package/lib/components/BaseDialog/options.js +1 -1
  12. package/lib/components/BaseSwitch/index.vue.js +1 -1
  13. package/lib/components/BaseSwitch/index.vue2.js +1 -1
  14. package/lib/index.css +1 -1
  15. package/package.json +16 -4
  16. package/CHANGELOG.md +0 -13
  17. package/build/plugins.ts +0 -31
  18. package/build/unPlugin.ts +0 -37
  19. package/eslint.config.js +0 -114
  20. package/src/components/AppProvider/index.ts +0 -1
  21. package/src/components/AppProvider/index.vue +0 -38
  22. package/src/components/BaseButton/index.ts +0 -1
  23. package/src/components/BaseButton/index.vue +0 -21
  24. package/src/components/BaseDataTable/index.ts +0 -1
  25. package/src/components/BaseDataTable/index.vue +0 -120
  26. package/src/components/BaseDialog/index.ts +0 -2
  27. package/src/components/BaseDialog/index.vue +0 -104
  28. package/src/components/BaseDialog/options.ts +0 -25
  29. package/src/components/BaseDialog/type.ts +0 -30
  30. package/src/components/BaseInputNumber/index.ts +0 -1
  31. package/src/components/BaseInputNumber/index.vue +0 -188
  32. package/src/components/BaseLayout/ASide/index.vue +0 -104
  33. package/src/components/BaseLayout/ASide/type.ts +0 -11
  34. package/src/components/BaseLayout/index.ts +0 -1
  35. package/src/components/BaseProgress/index.ts +0 -99
  36. package/src/components/BaseRadio/index.ts +0 -1
  37. package/src/components/BaseRadio/index.vue +0 -45
  38. package/src/components/BaseSelect/index.ts +0 -1
  39. package/src/components/BaseSelect/index.vue +0 -59
  40. package/src/components/BaseSlider/index.ts +0 -1
  41. package/src/components/BaseSlider/index.vue +0 -114
  42. package/src/components/BaseSwitch/index.ts +0 -1
  43. package/src/components/BaseSwitch/index.vue +0 -69
  44. package/src/components/index.ts +0 -11
  45. package/src/components/types/themes/extendThemes.ts +0 -50
  46. package/src/config/index.ts +0 -1
  47. package/src/config/themes/color/dark.ts +0 -60
  48. package/src/config/themes/color/index.ts +0 -2
  49. package/src/config/themes/color/light.ts +0 -59
  50. package/src/config/themes/common.ts +0 -50
  51. package/src/config/themes/components/alert/common.ts +0 -13
  52. package/src/config/themes/components/alert/dark.ts +0 -23
  53. package/src/config/themes/components/alert/light.ts +0 -18
  54. package/src/config/themes/components/baseComponent/dark.ts +0 -189
  55. package/src/config/themes/components/baseComponent/light.ts +0 -297
  56. package/src/config/themes/components/button/common.ts +0 -20
  57. package/src/config/themes/components/button/dark.ts +0 -127
  58. package/src/config/themes/components/button/light.ts +0 -102
  59. package/src/config/themes/components/card/dark.ts +0 -13
  60. package/src/config/themes/components/card/light.ts +0 -13
  61. package/src/config/themes/components/charts/dark.ts +0 -425
  62. package/src/config/themes/components/charts/light.ts +0 -424
  63. package/src/config/themes/components/checkbox/common.ts +0 -7
  64. package/src/config/themes/components/checkbox/dark.ts +0 -23
  65. package/src/config/themes/components/checkbox/light.ts +0 -22
  66. package/src/config/themes/components/dataTable/dark.ts +0 -14
  67. package/src/config/themes/components/dataTable/light.ts +0 -14
  68. package/src/config/themes/components/datePicker/dark.ts +0 -10
  69. package/src/config/themes/components/datePicker/light.ts +0 -10
  70. package/src/config/themes/components/dialog/common.ts +0 -8
  71. package/src/config/themes/components/dialog/dark.ts +0 -14
  72. package/src/config/themes/components/dialog/light.ts +0 -13
  73. package/src/config/themes/components/dropdown/dark.ts +0 -7
  74. package/src/config/themes/components/dropdown/light.ts +0 -7
  75. package/src/config/themes/components/form/dark.ts +0 -7
  76. package/src/config/themes/components/form/light.ts +0 -7
  77. package/src/config/themes/components/input/common.ts +0 -13
  78. package/src/config/themes/components/input/dark.ts +0 -25
  79. package/src/config/themes/components/input/light.ts +0 -24
  80. package/src/config/themes/components/inputNumber/common.ts +0 -14
  81. package/src/config/themes/components/inputNumber/dark.ts +0 -24
  82. package/src/config/themes/components/inputNumber/light.ts +0 -20
  83. package/src/config/themes/components/layout/dark.ts +0 -8
  84. package/src/config/themes/components/layout/light.ts +0 -9
  85. package/src/config/themes/components/menu/dark.ts +0 -18
  86. package/src/config/themes/components/menu/light.ts +0 -17
  87. package/src/config/themes/components/progress/dark.ts +0 -25
  88. package/src/config/themes/components/progress/light.ts +0 -25
  89. package/src/config/themes/components/radio/dark.ts +0 -20
  90. package/src/config/themes/components/radio/light.ts +0 -21
  91. package/src/config/themes/components/select/dark.ts +0 -42
  92. package/src/config/themes/components/select/light.ts +0 -38
  93. package/src/config/themes/components/slider/dark.ts +0 -16
  94. package/src/config/themes/components/slider/light.ts +0 -16
  95. package/src/config/themes/components/switch/common.ts +0 -17
  96. package/src/config/themes/components/switch/dark.ts +0 -17
  97. package/src/config/themes/components/switch/light.ts +0 -17
  98. package/src/config/themes/components/tag/dark.ts +0 -40
  99. package/src/config/themes/components/tag/light.ts +0 -39
  100. package/src/config/themes/components/transfer/dark.ts +0 -8
  101. package/src/config/themes/components/transfer/light.ts +0 -8
  102. package/src/config/themes/dark.ts +0 -61
  103. package/src/config/themes/index.ts +0 -12
  104. package/src/config/themes/light.ts +0 -61
  105. package/src/config/themes/token/dark.ts +0 -32
  106. package/src/config/themes/token/index.ts +0 -2
  107. package/src/config/themes/token/light.ts +0 -11
  108. package/src/globalMethods/index.ts +0 -8
  109. package/src/globalMethods/modules/confirmTip.ts +0 -49
  110. package/src/globalMethods/modules/message.ts +0 -20
  111. package/src/hooks/useNaiveConfigProvideContext.ts +0 -10
  112. package/src/index.ts +0 -8
  113. package/src/style/index.scss +0 -63
  114. package/src/svg-icons/add.svg +0 -1
  115. package/src/svg-icons/arrow/down.svg +0 -1
  116. package/src/svg-icons/arrow/top.svg +0 -1
  117. package/src/svg-icons/logo.svg +0 -4
  118. package/src/svg-icons/operate/add.svg +0 -1
  119. package/src/svg-icons/operate/close.svg +0 -1
  120. package/src/svg-icons/operate/minus.svg +0 -1
  121. package/src/svg-icons/progress-default.svg +0 -3
  122. package/src/types/themes/extendThemes.ts +0 -50
  123. package/tsconfig.json +0 -38
  124. package/typing/components.d.ts +0 -38
  125. package/typing/global.d.ts +0 -19
  126. package/vite.config.ts +0 -61
@@ -1,188 +0,0 @@
1
- <template>
2
- <div class="base-input-number" :class="[`base-input-number--${size}`]" :style="[extendStyle, style]">
3
- <n-button v-if="!controlsInner" :style="extendButtonStyle" :ghost="!disabledMinus" class="outer-controls minus-btn"
4
- v-bind="$attrs" :disabled="disabledMinus" :size="size" @click="handleMinus">
5
- <svg-icon icon="operate-minus" />
6
- </n-button>
7
- <n-input-number v-bind="$attrs" ref="inputNumberRef" :show-button="false" :size="size" :disabled="disabled"
8
- :min="min" :max="max" v-model:value="currentValue">
9
- <template v-if="$slots.prefix || prefixIcon" #prefix>
10
- <slot v-if="$slots.prefix" name="prefix" />
11
- <svg-icon v-else :icon="prefixIcon" />
12
- </template>
13
- <template #suffix>
14
- <template v-if="$slots.suffix || suffixIcon">
15
- <slot v-if="$slots.suffix" name="suffix" />
16
- <svg-icon v-else :icon="suffixIcon" />
17
- </template>
18
- <div class="inner-controls" v-if="controlsInner">
19
- <div class="add" :class="[disabledAdd ? 'is-disabled' : '']" @click="handleAdd">
20
- <svg-icon icon="arrow-top" />
21
- </div>
22
- <div class="minus" :class="[disabledMinus ? 'is-disabled' : '']" @click="handleMinus">
23
- <svg-icon icon="arrow-down" />
24
- </div>
25
- </div>
26
- </template>
27
- </n-input-number>
28
- <n-button v-if="!controlsInner" :size="size" :ghost="!disabledAdd" :style="extendButtonStyle"
29
- class="outer-controls add-btn" v-bind="$attrs" :disabled="disabledAdd" @click="handleAdd">
30
- <svg-icon icon="operate-add" />
31
- </n-button>
32
- </div>
33
- </template>
34
-
35
- <script lang="ts" setup>
36
- import { computed, CSSProperties, ref, shallowRef, watch } from 'vue'
37
- import useNaiveConfigProvideContext from '../../hooks/useNaiveConfigProvideContext'
38
-
39
- type PropsType = {
40
- style?: CSSProperties;
41
- prefixIcon?: string;
42
- suffixIcon?: string;
43
- addIcon?: string;
44
- minusIcon?: string;
45
- controlsInner?: boolean
46
- disabled?: boolean
47
- min?: number
48
- max?: number
49
- value: number
50
- size?: 'small' | 'medium' | 'large'
51
- }
52
- const props = withDefaults(defineProps<PropsType>(), { prefixIcon: '', suffixIcon: '', addIcon: '', minusIcon: '', size: 'medium' })
53
-
54
- defineOptions({
55
- name: 'BaseInputNumber'
56
- })
57
- const emits = defineEmits(['update:value'])
58
-
59
- const { mergedThemeOverridesRef } = useNaiveConfigProvideContext()
60
- const extendStyle = shallowRef({})
61
- const extendButtonStyle = shallowRef({})
62
- const inputNumberRef = ref()
63
- const currentValue = computed({
64
- get() { return props.value },
65
- set(value) { emits('update:value', value) }
66
- })
67
- const disabledAdd = computed(() => props.disabled || !inputNumberRef.value?.addable)
68
- const disabledMinus = computed(() => props.disabled || !inputNumberRef.value?.minusable)
69
-
70
- const handleAdd = () => {
71
- if (!inputNumberRef.value || disabledAdd.value) return
72
- inputNumberRef.value.handleAddClick()
73
- }
74
- const handleMinus = () => {
75
- if (!inputNumberRef.value || disabledMinus.value) return
76
- inputNumberRef.value.handleMinusClick()
77
- }
78
-
79
- watch(
80
- () => mergedThemeOverridesRef?.value?.InputNumber,
81
- (curVal) => {
82
- extendStyle.value = {
83
- '--n-input-number-controls-color': curVal.controlsFontColor,
84
- '--n-input-number-controls-color-disabled': curVal.controlFontColorDisabled,
85
- '--n-input-number-inner-controls-width-large': curVal.innerControlsLargeWidth,
86
- '--n-input-number-inner-controls-width-medium': curVal.innerControlsMediumWidth,
87
- '--n-input-number-inner-controls-width-small': curVal.innerControlsSmallWidth,
88
- '--n-input-number-inner-controls-height-large': curVal.innerControlsLargeHeight,
89
- '--n-input-number-inner-controls-height-medium': curVal.innerControlsMediumHeight,
90
- '--n-input-number-inner-controls-height-small': curVal.innerControlsSmallHeight,
91
- '--n-input-number-inner-controls-background': curVal.innerControlsBackground,
92
- '--n-input-number-inner-controls-background-disabled': curVal.innerControlsDisabledBackground,
93
- '--n-input-number-inner-controls-border-radius-large': curVal.innerControlsLargeBorderRadius,
94
- '--n-input-number-inner-controls-border-radius-medium': curVal.innerControlsMediumBorderRadius,
95
- '--n-input-number-inner-controls-border-radius-small': curVal.innerControlsSmallBorderRadius
96
- }
97
- extendButtonStyle.value = {
98
- '--n-border': curVal.outerControlsBorderStyle,
99
- '--n-border-disabled': curVal.outerControlsBorderStyleDisabled,
100
- '--n-text-color': curVal.controlsFontColor,
101
- '--n-text-color-disabled': curVal.controlFontColorDisabled,
102
- '--n-color': curVal.outerControlsBackground,
103
- '--n-color-disabled': curVal.outerControlsBackgroundDisabled,
104
- '--n-opacity-disabled': curVal.outerControlsOpacityDisabled
105
-
106
- }
107
- },
108
- {
109
- immediate: true
110
- }
111
- )
112
- </script>
113
-
114
- <style lang="scss" scoped>
115
- .base-input-number {
116
- display: flex;
117
- align-items: center;
118
-
119
- &.base-input-number--large {
120
- .inner-controls>div {
121
- width: var(--n-input-number-inner-controls-width-large);
122
- height: var(--n-input-number-inner-controls-height-large);
123
- border-radius: var(--n-input-number-inner-controls-border-radius-large);
124
- }
125
- }
126
-
127
- &.base-input-number--medium {
128
- .inner-controls>div {
129
- width: var(--n-input-number-inner-controls-width-medium);
130
- height: var(--n-input-number-inner-controls-height-medium);
131
- border-radius: var(--n-input-number-inner-controls-border-radius-medium);
132
- }
133
- }
134
-
135
- &.base-input-number--small {
136
- .inner-controls>div {
137
- width: var(--n-input-number-inner-controls-width-small);
138
- height: var(--n-input-number-inner-controls-height-small);
139
- border-radius: var(--n-input-number-inner-controls-border-radius-small);
140
- }
141
- }
142
-
143
- .inner-controls {
144
- display: flex;
145
- flex-direction: column;
146
-
147
- .add {
148
- margin-bottom: 2px;
149
- }
150
-
151
- .add,
152
- .minus {
153
- background-color: var(--n-input-number-inner-controls-background);
154
- cursor: pointer;
155
- color: var(--n-input-number-controls-color);
156
- display: flex;
157
- justify-content: center;
158
- align-items: center;
159
-
160
- &.is-disabled {
161
- cursor: not-allowed;
162
- background-color: var(--n-input-number-inner-controls-background-disabled);
163
- color: var(--n-input-number-controls-color-disabled);
164
- }
165
-
166
- &:hover {
167
- scale: 1.1;
168
- }
169
- }
170
- }
171
-
172
- .minus-btn,
173
- .add-btn {
174
- border-radius: 10px;
175
- padding: 0;
176
- width: var(--n-height);
177
- }
178
-
179
- .minus-btn {
180
- margin-right: 4px;
181
- }
182
-
183
- .add-btn {
184
- margin-left: 4px;
185
- }
186
-
187
- }
188
- </style>
@@ -1,104 +0,0 @@
1
- <template>
2
- <aside
3
- class="h-full w-full flex-col-stretch base-layout-aside"
4
- :style="extendStyle"
5
- v-bind="$attrs"
6
- >
7
- <div
8
- :class="['base-layout-aside-logo-wrap', logoClass]"
9
- :style="[extendLogoStyle, logoStyle]"
10
- >
11
- <slot name="header"></slot>
12
- </div>
13
- <div class="flex-1 overflow-hidden">
14
- <n-scrollbar>
15
- <slot name="default" />
16
- </n-scrollbar>
17
- </div>
18
- <div
19
- :class="['base-layout-aside-footer', footerClass]"
20
- :style="[footerLogoStyle, footerStyle]"
21
- >
22
- <slot name="footer"></slot>
23
- </div>
24
- </aside>
25
- </template>
26
- <script lang="ts" setup>
27
- import { shallowRef, watch } from 'vue'
28
- import useNaiveConfigProvideContext from '../../../hooks/useNaiveConfigProvideContext'
29
- import { BaseLayoutASidePropsType } from './type'
30
- const { mergedThemeOverridesRef } = useNaiveConfigProvideContext()
31
-
32
- withDefaults(defineProps<BaseLayoutASidePropsType>(), { })
33
-
34
- const extendStyle = shallowRef({})
35
- const extendLogoStyle = shallowRef({})
36
- const footerLogoStyle = shallowRef({})
37
-
38
- watch(
39
- () => mergedThemeOverridesRef?.value?.Layout,
40
- (curVal) => {
41
- if (!curVal) return
42
- extendStyle.value = {
43
- '--n-color': curVal.siderColor || undefined
44
- }
45
- // extendLogoStyle.value = {
46
- // '--n-icon-color': curVal.siderIconColor || '#0151FF'
47
- // }
48
- // const menu = mergedThemeOverridesRef?.value?.Menu
49
- // footerLogoStyle.value = {
50
- // '--n-icon-color': menu.itemIconColorCollapsed || '#56647A',
51
- // '--n-icon-bg-color': curVal.siderFooterIconBgColor || '#4C4C4F'
52
- // }
53
- },
54
- {
55
- immediate: true
56
- }
57
- )
58
- </script>
59
- <style lang="scss" scoped>
60
- .base-layout-aside {
61
- background-color: var(--n-color);
62
- padding: 24px 0;
63
-
64
- &-logo-wrap {
65
- display: flex;
66
- justify-content: center;
67
- color: var(--n-icon-color);
68
- padding-bottom: 32px;
69
- }
70
-
71
- &-footer {}
72
-
73
- :deep(.n-menu.n-menu--vertical.n-menu--collapsed) {
74
- .n-menu-item {
75
- height: 56px;
76
- &-content {
77
- display: flex;
78
- flex-direction: column;
79
- align-items: center;
80
- justify-content: center;
81
- height: 100%;
82
- padding: 0 20px !important;
83
- overflow: hidden;
84
- &::before {
85
- left: 16px;
86
- right: 16px;
87
- }
88
- &__icon {
89
- margin: 0 !important;
90
- }
91
- &-header {
92
- opacity: 1;
93
- width: 100%;
94
- overflow: hidden;
95
- text-align: center;
96
- }
97
- &__arrow {
98
- display: none;
99
- }
100
- }
101
- }
102
- }
103
- }
104
- </style>
@@ -1,11 +0,0 @@
1
- import { CSSProperties } from 'vue'
2
-
3
- export type BaseLayoutASidePropsType = {
4
- logoClass?: string;
5
- logoStyle?: CSSProperties;
6
- // logoSize?: number;
7
-
8
- footerClass?: string;
9
- footerStyle?: CSSProperties;
10
- // footerIconSize?: number
11
- }
@@ -1 +0,0 @@
1
- export { default as BaseLayoutAside } from './ASide/index.vue'
@@ -1,99 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable max-lines-per-function */
3
- import { defineComponent, h, PropType, shallowRef, watch } from 'vue'
4
- import { progressProps, NProgress } from 'naive-ui'
5
- import { SvgIcon } from 'lib-materials'
6
- import useNaiveConfigProvideContext from '../../hooks/useNaiveConfigProvideContext'
7
-
8
- export type Size = 'medium' | 'large'
9
-
10
- const baseProgressProps = {
11
- ...progressProps,
12
- circleSize: {
13
- type: String as PropType<Size>,
14
- default: 'medium'
15
- },
16
- tip: String
17
- } as const
18
-
19
- export default defineComponent({
20
- name: 'BaseProgress',
21
- props: baseProgressProps,
22
- setup(props, { slots }) {
23
- const clsPrefix = 'base-progress-'
24
- const { mergedThemeOverridesRef } = useNaiveConfigProvideContext()
25
- const extendStyle = shallowRef({})
26
-
27
- const renderDashBoardContent = () => h(
28
- 'div',
29
- {
30
- class: `${clsPrefix}dashboard-content`
31
- },
32
- [
33
- h(
34
- 'div',
35
- {
36
- class: `${clsPrefix}dashboard-content-logo`,
37
- style: 'height:24px;width:24px'
38
- },
39
- slots.icon ? slots.icon() : h(SvgIcon, { icon: 'progress-default', size: '18' })
40
- ),
41
- h(
42
- 'div',
43
- {
44
- class: `${clsPrefix}dashboard-content-title`
45
- },
46
- [
47
- h('span', {}, `${props.percentage}`),
48
- h('span', {}, '%')
49
- ]
50
- ),
51
- props.tip ? h(
52
- 'div',
53
- {
54
- class: `${clsPrefix}dashboard-content-tip`
55
- },
56
- props.tip
57
- ) : undefined
58
- ]
59
- )
60
- const renderDefault = () => {
61
- if (slots.default) return () => (slots as any).default()
62
- if (props.type === 'dashboard') return renderDashBoardContent
63
- return undefined
64
- // if (props.type === 'dashboard') return renderDashBoardContent
65
- // return slots.default ? () => (slots as any).default() : undefined
66
- }
67
-
68
- watch(
69
- () => mergedThemeOverridesRef?.value?.Progress,
70
- (curVal) => {
71
- const fontSize = props.circleSize === 'medium' ? curVal.fontSizeCircleMedium : curVal.fontSizeCircleLarge
72
- const width = props.circleSize === 'medium' ? curVal.circleWidthMedium : curVal.circleWidthLarge
73
- extendStyle.value = {
74
- '--n-tip-color-circle': curVal.tipColorCircle || '#56647A',
75
- '--n-tip-font-size-circle': curVal.tipFontSizeCircle || '14px',
76
- '--n-content-font-size': fontSize || 'var(--n-font-size)',
77
- '--n-circle-width': width || '120px'
78
- }
79
- },
80
- {
81
- immediate: true
82
- }
83
- )
84
-
85
- return () => (
86
- h(
87
- NProgress,
88
- {
89
- ...props,
90
- class: 'base-progress',
91
- style: extendStyle.value
92
- },
93
- {
94
- default: renderDefault()
95
- }
96
- )
97
- )
98
- }
99
- })
@@ -1 +0,0 @@
1
- export { default as BaseRadio } from './index.vue'
@@ -1,45 +0,0 @@
1
- <template>
2
- <n-radio v-bind="$attrs" :class="['base-radio', className]" :style="[extendStyle, style]">
3
- <template v-for="(item,keys) in $slots" v-slot:[keys]>
4
- <slot :name="keys"></slot>
5
- </template>
6
- </n-radio>
7
- </template>
8
- <script lang="ts" setup>
9
- import { CSSProperties, shallowRef, watch } from 'vue'
10
- import useNaiveConfigProvideContext from '../../hooks/useNaiveConfigProvideContext'
11
- type PropsType = {
12
- className?: string;
13
- style?: CSSProperties;
14
- }
15
- withDefaults(defineProps<PropsType>(), { className: '', style: () => ({}) })
16
- defineOptions({
17
- name: 'BaseRadio'
18
- })
19
- const { mergedThemeOverridesRef } = useNaiveConfigProvideContext()
20
- const extendStyle = shallowRef({})
21
-
22
- watch(
23
- () => mergedThemeOverridesRef?.value?.Radio,
24
- (curVal) => {
25
- if (!curVal) return
26
- extendStyle.value = {
27
- '--n-box-shadow-active-disabled': curVal.boxShadowActiveDisabled || curVal.boxShadowDisabled,
28
- '--n-color-active-disabled': curVal.colorActiveDisabled || curVal.boxShadowDisabled
29
- }
30
- },
31
- {
32
- immediate: true
33
- }
34
- )
35
- </script>
36
- <style lang="scss" scoped>
37
- .base-radio {
38
- &.n-radio--disabled.n-radio--checked {
39
- :deep(.n-radio__dot--checked) {
40
- box-shadow: var(--n-box-shadow-active-disabled);
41
- background-color: var(--n-color-active-disabled);
42
- }
43
- }
44
- }
45
- </style>
@@ -1 +0,0 @@
1
- export { default as BaseSelect } from './index.vue'
@@ -1,59 +0,0 @@
1
- <template>
2
- <n-select
3
- class="base-select"
4
- :renderTag="multiple ? renderMultipleTag : undefined"
5
- :render-label="multiple ? renderMultipleLabel : undefined"
6
- :multiple="multiple"
7
- v-bind="$attrs"
8
- >
9
- <template v-for="(item, keys) in $slots" v-slot:[keys]>
10
- <slot :name="keys"></slot>
11
- </template>
12
- </n-select>
13
- </template>
14
- <script lang="ts" setup>
15
- import { h, type VNodeChild } from 'vue'
16
- import { NCheckbox, NTag, type SelectOption, type SelectRenderTag } from 'naive-ui'
17
- type PropsType = {
18
- multiple?: boolean
19
- }
20
- withDefaults(defineProps<PropsType>(), { multiple: false })
21
- const renderMultipleLabel = (option: SelectOption, selected: boolean): VNodeChild => {
22
- return [
23
- h(
24
- NCheckbox,
25
- {
26
- checked: selected,
27
- disabled: option.disabled
28
- },
29
- {
30
- default: () => option.label
31
- }
32
- )
33
- ]
34
- }
35
-
36
- const renderMultipleTag: SelectRenderTag = ({ option, handleClose }) => {
37
- return h(
38
- NTag,
39
- {
40
- type: 'default',
41
- closable: true,
42
- bordered: false,
43
- onMousedown: (e: FocusEvent) => {
44
- e.preventDefault()
45
- },
46
- onClose: (e: MouseEvent) => {
47
- e.stopPropagation()
48
- handleClose()
49
- }
50
- },
51
- { default: () => option.label }
52
- )
53
- }
54
-
55
- defineOptions({
56
- name: 'BaseSelect'
57
- })
58
-
59
- </script>
@@ -1 +0,0 @@
1
- export { default as BaseSlider } from './index.vue'
@@ -1,114 +0,0 @@
1
- <template>
2
- <div class="base-slider" :style="[extendStyle, style]">
3
- <div class="slider-content">
4
- <n-slider v-bind="$attrs" v-model:value="currentValue" :min="min" :max="max" :range="range" />
5
- <div v-if="showExtremeValueText" class="extreme-value-text">
6
- <div>{{ min }}</div>
7
- <div>{{ max }}</div>
8
- </div>
9
- </div>
10
- <div class="slider-input" v-if="showInput">
11
- <n-input-number v-if="!range && typeof currentValue === 'number'" :show-button="false" placeholder="" :size="size"
12
- v-model:value="currentValue" :min="min" :max="max" :precision="precision" />
13
- <template v-else-if="range && typeof currentValue !== 'number'">
14
- <n-input-number :show-button="false" placeholder="" :size="size" v-model:value="currentValue[0]" :min="min"
15
- :max="max" :precision="precision" />
16
- <div class="line"></div>
17
- <n-input-number :show-button="false" placeholder="" :size="size" v-model:value="currentValue[1]" :min="min"
18
- :max="max" :precision="precision" />
19
- </template>
20
- </div>
21
- </div>
22
- </template>
23
-
24
- <script lang="ts" setup>
25
- import { computed, CSSProperties, shallowRef, watch } from 'vue'
26
- import useNaiveConfigProvideContext from '../../hooks/useNaiveConfigProvideContext'
27
- type PropsType = {
28
- style?: CSSProperties;
29
- showInput?: boolean;
30
- size?: 'small' | 'medium';
31
- value: number | number[],
32
- min?: number,
33
- max?: number,
34
- range?: boolean,
35
- showExtremeValueText?: boolean
36
- precision?: number
37
- }
38
- const props = withDefaults(defineProps<PropsType>(), {
39
- style: () => ({}), showInput: false, size: 'medium',
40
- min: 0, max: 100, range: false, showExtremeValueText: false,
41
- precision: 0
42
- })
43
- defineOptions({
44
- name: 'BaseSlider'
45
- })
46
- const { mergedThemeOverridesRef } = useNaiveConfigProvideContext()
47
- const extendStyle = shallowRef({})
48
-
49
- const emits = defineEmits(['update:value'])
50
- const currentValue = computed({
51
- get() { return props.value },
52
- set(value) { emits('update:value', value) }
53
- })
54
-
55
- watch(
56
- () => mergedThemeOverridesRef?.value?.Slider,
57
- (curVal) => {
58
- if (!curVal) return
59
- extendStyle.value = {
60
- '--n-slider-handler-border': curVal.handleBorderStyle,
61
- '--n-slider-input-width': curVal.inputWidth,
62
- '--n-slider-range-input-line-color': curVal.rangeInputLineColor,
63
- '--n-slider-extreme-value-text-color': curVal.extremeValueTextColor
64
- }
65
- },
66
- {
67
- immediate: true
68
- }
69
- )
70
- </script>
71
-
72
- <style lang="scss" scoped>
73
- .base-slider {
74
- display: flex;
75
- align-items: center;
76
-
77
- :deep(.n-slider-handle) {
78
- border: var(--n-slider-handler-border)
79
- }
80
-
81
- .slider-content {
82
- flex: 1;
83
- position: relative;
84
-
85
- .extreme-value-text {
86
- position: absolute;
87
- display: flex;
88
- justify-content: space-between;
89
- align-items: center;
90
- width: 100%;
91
- font-size: 12px;
92
- color: var(--n-slider-extreme-value-text-color);
93
- }
94
-
95
- }
96
-
97
- .slider-input {
98
- margin-left: 16px;
99
- display: flex;
100
- align-items: center;
101
-
102
- .line {
103
- margin: 0 8px;
104
- width: 10px;
105
- height: 1px;
106
- background: var(--n-slider-range-input-line-color);
107
- }
108
-
109
- :deep(.n-input-number) {
110
- width: var(--n-slider-input-width);
111
- }
112
- }
113
- }
114
- </style>
@@ -1 +0,0 @@
1
- export { default as BaseSwitch } from './index.vue'