52 changed files with 260 additions and 385 deletions
@ -1,6 +1,10 @@ |
|||||
import AppLocalePickerLib from './src/AppLocalePicker.vue'; |
import AppLocalePicker from './src/AppLocalePicker.vue'; |
||||
import AppLogoLib from './src/AppLogo.vue'; |
import AppLogo from './src/AppLogo.vue'; |
||||
|
import AppProvider from './src/AppProvider.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const AppLocalePicker = withInstall(AppLocalePickerLib); |
withInstall(AppLocalePicker, AppLogo, AppProvider); |
||||
export const AppLogo = withInstall(AppLogoLib); |
|
||||
|
export { useAppProviderContext } from './src/useAppContext'; |
||||
|
|
||||
|
export { AppLocalePicker, AppLogo, AppProvider }; |
||||
|
|||||
@ -0,0 +1,24 @@ |
|||||
|
<template> |
||||
|
<slot /> |
||||
|
</template> |
||||
|
<script lang="ts"> |
||||
|
import type { PropType } from 'vue'; |
||||
|
import { defineComponent, toRefs } from 'vue'; |
||||
|
|
||||
|
import { createAppProviderContext } from './useAppContext'; |
||||
|
export default defineComponent({ |
||||
|
name: 'AppProvider', |
||||
|
inheritAttrs: false, |
||||
|
props: { |
||||
|
prefixCls: { |
||||
|
type: String as PropType<string>, |
||||
|
default: 'vben', |
||||
|
}, |
||||
|
}, |
||||
|
setup(props) { |
||||
|
const { prefixCls } = toRefs(props); |
||||
|
createAppProviderContext({ prefixCls }); |
||||
|
return {}; |
||||
|
}, |
||||
|
}); |
||||
|
</script> |
||||
@ -0,0 +1,16 @@ |
|||||
|
import { InjectionKey, Ref } from 'vue'; |
||||
|
import { createContext, useContext } from '/@/hooks/core/useContext'; |
||||
|
|
||||
|
export interface AppProviderContextProps { |
||||
|
prefixCls: Ref<string>; |
||||
|
} |
||||
|
|
||||
|
const key: InjectionKey<AppProviderContextProps> = Symbol(); |
||||
|
|
||||
|
export function createAppProviderContext(context: AppProviderContextProps) { |
||||
|
return createContext<AppProviderContextProps>(context, key); |
||||
|
} |
||||
|
|
||||
|
export function useAppProviderContext() { |
||||
|
return useContext<AppProviderContextProps>(key); |
||||
|
} |
||||
@ -1,5 +1,7 @@ |
|||||
import AuthorityLib from './src/index.vue'; |
import Authority from './src/index.vue'; |
||||
|
|
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const Authority = withInstall(AuthorityLib); |
withInstall(Authority); |
||||
|
|
||||
|
export { Authority }; |
||||
|
|||||
@ -1,9 +1,9 @@ |
|||||
import BasicArrowLib from './src/BasicArrow.vue'; |
import BasicArrow from './src/BasicArrow.vue'; |
||||
import BasicHelpLib from './src/BasicHelp.vue'; |
import BasicHelp from './src/BasicHelp.vue'; |
||||
import BasicTitleLib from './src/BasicTitle.vue'; |
import BasicTitle from './src/BasicTitle.vue'; |
||||
|
|
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const BasicArrow = withInstall(BasicArrowLib); |
withInstall(BasicArrow, BasicHelp, BasicTitle); |
||||
export const BasicHelp = withInstall(BasicHelpLib); |
|
||||
export const BasicTitle = withInstall(BasicTitleLib); |
export { BasicArrow, BasicHelp, BasicTitle }; |
||||
|
|||||
@ -1,4 +1,6 @@ |
|||||
import ButtonLib from './src/BasicButton.vue'; |
import Button from './src/BasicButton.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const Button = withInstall(ButtonLib); |
withInstall(Button); |
||||
|
|
||||
|
export { Button }; |
||||
|
|||||
@ -1,4 +1,6 @@ |
|||||
import ClickOutSideLib from './src/index.vue'; |
import ClickOutSide from './src/index.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const ClickOutSide = withInstall(ClickOutSideLib); |
withInstall(ClickOutSide); |
||||
|
|
||||
|
export { ClickOutSide }; |
||||
|
|||||
@ -1,10 +1,10 @@ |
|||||
import ScrollContainerLib from './src/ScrollContainer.vue'; |
import ScrollContainer from './src/ScrollContainer.vue'; |
||||
import CollapseContainerLib from './src/collapse/CollapseContainer.vue'; |
import CollapseContainer from './src/collapse/CollapseContainer.vue'; |
||||
import LazyContainerLib from './src/LazyContainer.vue'; |
import LazyContainer from './src/LazyContainer.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(ScrollContainer, CollapseContainer, LazyContainer); |
||||
|
|
||||
export * from './src/types'; |
export * from './src/types'; |
||||
|
|
||||
export const ScrollContainer = withInstall(ScrollContainerLib); |
export { ScrollContainer, CollapseContainer, LazyContainer }; |
||||
export const CollapseContainer = withInstall(CollapseContainerLib); |
|
||||
export const LazyContainer = withInstall(LazyContainerLib); |
|
||||
|
|||||
@ -1,6 +1,7 @@ |
|||||
// Transform vue-count-to to support vue3 version
|
// Transform vue-count-to to support vue3 version
|
||||
|
|
||||
import CountToLib from './src/index.vue'; |
import CountTo from './src/index.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const CountTo = withInstall(CountToLib); |
withInstall(CountTo); |
||||
|
export { CountTo }; |
||||
|
|||||
@ -1,8 +1,9 @@ |
|||||
import DescriptionLib from './src/index'; |
import Description from './src/index'; |
||||
|
|
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(Description); |
||||
|
|
||||
export * from './src/types'; |
export * from './src/types'; |
||||
export { useDescription } from './src/useDescription'; |
export { useDescription } from './src/useDescription'; |
||||
|
export { Description }; |
||||
export const Description = withInstall(DescriptionLib); |
|
||||
|
|||||
@ -1,6 +1,7 @@ |
|||||
import BasicDrawerLib from './src/BasicDrawer'; |
import BasicDrawer from './src/BasicDrawer'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(BasicDrawer); |
||||
export * from './src/types'; |
export * from './src/types'; |
||||
export { useDrawer, useDrawerInner } from './src/useDrawer'; |
export { useDrawer, useDrawerInner } from './src/useDrawer'; |
||||
export const BasicDrawer = withInstall(BasicDrawerLib); |
export { BasicDrawer }; |
||||
|
|||||
@ -1,6 +1,7 @@ |
|||||
import DropdownLib from './src/Dropdown'; |
import Dropdown from './src/Dropdown'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(Dropdown); |
||||
export * from './src/types'; |
export * from './src/types'; |
||||
|
|
||||
export const Dropdown = withInstall(DropdownLib); |
export { Dropdown }; |
||||
|
|||||
@ -1,11 +1,12 @@ |
|||||
import ImportExcelLib from './src/ImportExcel.vue'; |
import ImportExcel from './src/ImportExcel.vue'; |
||||
import ExportExcelModelLib from './src/ExportExcelModel.vue'; |
import ExportExcelModel from './src/ExportExcelModel.vue'; |
||||
|
|
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(ImportExcel, ExportExcelModel); |
||||
|
|
||||
export * from './src/types'; |
export * from './src/types'; |
||||
|
|
||||
export { jsonToSheetXlsx, aoaToSheetXlsx } from './src/Export2Excel'; |
export { jsonToSheetXlsx, aoaToSheetXlsx } from './src/Export2Excel'; |
||||
|
|
||||
export const ImportExcel = withInstall(ImportExcelLib); |
export { ImportExcel, ExportExcelModel }; |
||||
export const ExportExcelModel = withInstall(ExportExcelModelLib); |
|
||||
|
|||||
@ -1,10 +1,12 @@ |
|||||
import BasicFormLib from './src/BasicForm.vue'; |
import BasicForm from './src/BasicForm.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(BasicForm); |
||||
|
|
||||
export * from './src/types/form'; |
export * from './src/types/form'; |
||||
export * from './src/types/formItem'; |
export * from './src/types/formItem'; |
||||
|
|
||||
export { useComponentRegister } from './src/hooks/useComponentRegister'; |
export { useComponentRegister } from './src/hooks/useComponentRegister'; |
||||
export { useForm } from './src/hooks/useForm'; |
export { useForm } from './src/hooks/useForm'; |
||||
|
|
||||
export const BasicForm = withInstall(BasicFormLib); |
export { BasicForm }; |
||||
|
|||||
@ -1,8 +1,9 @@ |
|||||
import './src/indicator'; |
import './src/indicator'; |
||||
import LoadingLib from './src/index.vue'; |
import Loading from './src/index.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(Loading); |
||||
export { useLoading } from './src/useLoading'; |
export { useLoading } from './src/useLoading'; |
||||
export { createLoading } from './src/createLoading'; |
export { createLoading } from './src/createLoading'; |
||||
|
|
||||
export const Loading = withInstall(LoadingLib); |
export { Loading }; |
||||
|
|||||
@ -1,7 +1,9 @@ |
|||||
import MarkDownLib from './src/index.vue'; |
import MarkDown from './src/index.vue'; |
||||
|
|
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(MarkDown); |
||||
|
|
||||
export * from './src/types'; |
export * from './src/types'; |
||||
|
|
||||
export const MarkDown = withInstall(MarkDownLib); |
export { MarkDown }; |
||||
|
|||||
@ -1,4 +1,5 @@ |
|||||
import BasicMenuLib from './src/BasicMenu'; |
import BasicMenu from './src/BasicMenu'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const BasicMenu = withInstall(BasicMenuLib); |
withInstall(BasicMenu); |
||||
|
export { BasicMenu }; |
||||
|
|||||
@ -0,0 +1,11 @@ |
|||||
|
<template> |
||||
|
<div> </div> |
||||
|
</template> |
||||
|
<script lang="ts"> |
||||
|
import { defineComponent } from 'vue'; |
||||
|
export default defineComponent({ |
||||
|
setup() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}); |
||||
|
</script> |
||||
@ -1,116 +0,0 @@ |
|||||
<template> |
|
||||
<section class="menu-search-input" @Click="handleClick" :class="searchClass"> |
|
||||
<a-input-search |
|
||||
:placeholder="t('component.menu.search')" |
|
||||
class="menu-search-input__search" |
|
||||
allowClear |
|
||||
@change="handleChange" |
|
||||
/> |
|
||||
</section> |
|
||||
</template> |
|
||||
<script lang="ts"> |
|
||||
import type { PropType } from 'vue'; |
|
||||
import { defineComponent, computed } from 'vue'; |
|
||||
import { ThemeEnum } from '/@/enums/appEnum'; |
|
||||
// hook |
|
||||
import { useDebounce } from '/@/hooks/core/useDebounce'; |
|
||||
import { useI18n } from '/@/hooks/web/useI18n'; |
|
||||
// |
|
||||
export default defineComponent({ |
|
||||
name: 'BasicMenuSearchInput', |
|
||||
props: { |
|
||||
// Whether to expand, used in the left menu |
|
||||
collapsed: { |
|
||||
type: Boolean as PropType<boolean>, |
|
||||
default: true, |
|
||||
}, |
|
||||
theme: { |
|
||||
type: String as PropType<ThemeEnum>, |
|
||||
}, |
|
||||
}, |
|
||||
setup(props, { emit }) { |
|
||||
const { t } = useI18n(); |
|
||||
|
|
||||
const [debounceEmitChange] = useDebounce(emitChange, 200); |
|
||||
|
|
||||
function emitChange(value?: string): void { |
|
||||
emit('change', value); |
|
||||
} |
|
||||
|
|
||||
function handleChange(e: ChangeEvent): void { |
|
||||
const { collapsed } = props; |
|
||||
if (collapsed) return; |
|
||||
debounceEmitChange(e.target.value); |
|
||||
} |
|
||||
|
|
||||
function handleClick(): void { |
|
||||
emit('click'); |
|
||||
} |
|
||||
|
|
||||
const searchClass = computed(() => { |
|
||||
const cls: string[] = []; |
|
||||
cls.push(props.theme ? `menu-search-input__search--${props.theme}` : ''); |
|
||||
cls.push(props.collapsed ? 'hide-search-icon' : ''); |
|
||||
return cls; |
|
||||
}); |
|
||||
|
|
||||
return { handleClick, searchClass, handleChange, t }; |
|
||||
}, |
|
||||
}); |
|
||||
</script> |
|
||||
<style lang="less"> |
|
||||
@import (reference) '../../../design/index.less'; |
|
||||
// 输入框背景颜色 深 |
|
||||
@input-dark-bg-color: #516085; |
|
||||
|
|
||||
@icon-color: #c0c4cc; |
|
||||
|
|
||||
.menu-search-input { |
|
||||
margin: 12px 8px; |
|
||||
|
|
||||
&.hide-search-icon { |
|
||||
.ant-input, |
|
||||
.ant-input-suffix { |
|
||||
opacity: 0; |
|
||||
transition: all 0.5s; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
&__search--dark { |
|
||||
.ant-input-affix-wrapper, |
|
||||
.ant-input { |
|
||||
.set-bg(); |
|
||||
} |
|
||||
|
|
||||
.ant-input-search-icon, |
|
||||
.ant-input-clear-icon { |
|
||||
color: rgba(255, 255, 255, 0.4) !important; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
&__search--light { |
|
||||
.ant-input-affix-wrapper, |
|
||||
.ant-input { |
|
||||
color: @text-color-base; |
|
||||
background: #fff; |
|
||||
outline: none; |
|
||||
} |
|
||||
|
|
||||
.ant-input-search-icon { |
|
||||
color: @icon-color; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.set-bg() { |
|
||||
color: #fff; |
|
||||
background: @sider-dark-lighten-1-bg-color; |
|
||||
border: 0; |
|
||||
outline: none; |
|
||||
} |
|
||||
.hide-outline() { |
|
||||
border: none; |
|
||||
outline: none; |
|
||||
box-shadow: none; |
|
||||
} |
|
||||
</style> |
|
||||
@ -1,58 +0,0 @@ |
|||||
import type { Menu as MenuType } from '/@/router/types'; |
|
||||
import type { MenuState } from '../types'; |
|
||||
import type { Ref } from 'vue'; |
|
||||
|
|
||||
import { isString } from '/@/utils/is'; |
|
||||
import { unref } from 'vue'; |
|
||||
import { es6Unique } from '/@/utils'; |
|
||||
import { getAllParentPath } from '/@/router/helper/menuHelper'; |
|
||||
|
|
||||
interface UseSearchInputOptions { |
|
||||
menuState: MenuState; |
|
||||
flatMenusRef: Ref<MenuType[]>; |
|
||||
emit: EmitType; |
|
||||
handleMenuChange: Fn; |
|
||||
} |
|
||||
export function useSearchInput({ |
|
||||
menuState, |
|
||||
flatMenusRef, |
|
||||
handleMenuChange, |
|
||||
emit, |
|
||||
}: UseSearchInputOptions) { |
|
||||
/** |
|
||||
* @description: 输入框搜索 |
|
||||
*/ |
|
||||
function handleInputChange(value?: string): void { |
|
||||
if (!isString(value)) { |
|
||||
value = (value as any).target.value; |
|
||||
} |
|
||||
if (!value) { |
|
||||
handleMenuChange && handleMenuChange(); |
|
||||
} |
|
||||
|
|
||||
menuState.searchValue = value || ''; |
|
||||
if (!value) { |
|
||||
menuState.openKeys = []; |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
const flatMenus = unref(flatMenusRef); |
|
||||
let openKeys: string[] = []; |
|
||||
for (const menu of flatMenus) { |
|
||||
const { name, path } = menu; |
|
||||
if (!name.includes(value)) { |
|
||||
continue; |
|
||||
} |
|
||||
openKeys = openKeys.concat(getAllParentPath(flatMenus, path)); |
|
||||
} |
|
||||
openKeys = es6Unique(openKeys); |
|
||||
menuState.openKeys = openKeys; |
|
||||
} |
|
||||
|
|
||||
// 搜索框点击
|
|
||||
function handleInputClick(e: any): void { |
|
||||
emit('clickSearchInput', e); |
|
||||
} |
|
||||
|
|
||||
return { handleInputChange, handleInputClick }; |
|
||||
} |
|
||||
@ -1,8 +1,10 @@ |
|||||
import './src/index.less'; |
import './src/index.less'; |
||||
import BasicModalLib from './src/BasicModal'; |
import BasicModal from './src/BasicModal'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(BasicModal); |
||||
|
|
||||
export { useModalContext } from './src/useModalContext'; |
export { useModalContext } from './src/useModalContext'; |
||||
export { useModal, useModalInner } from './src/useModal'; |
export { useModal, useModalInner } from './src/useModal'; |
||||
export * from './src/types'; |
export * from './src/types'; |
||||
export const BasicModal = withInstall(BasicModalLib); |
export { BasicModal }; |
||||
|
|||||
@ -1,4 +1,5 @@ |
|||||
import PageFooterLib from './src/PageFooter.vue'; |
import PageFooter from './src/PageFooter.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const PageFooter = withInstall(PageFooterLib); |
withInstall(PageFooter); |
||||
|
export { PageFooter }; |
||||
|
|||||
@ -1,4 +1,5 @@ |
|||||
import StrengthMeterLib from './src/index'; |
import StrengthMeter from './src/index'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const StrengthMeter = withInstall(StrengthMeterLib); |
withInstall(StrengthMeter); |
||||
|
export { StrengthMeter }; |
||||
|
|||||
@ -1,4 +1,5 @@ |
|||||
import TinymceLib from './src/Editor.vue'; |
import Tinymce from './src/Editor.vue'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const Tinymce = withInstall(TinymceLib); |
withInstall(Tinymce); |
||||
|
export { Tinymce }; |
||||
|
|||||
@ -1,8 +1,5 @@ |
|||||
import type { App } from 'vue'; |
|
||||
import BasicUpload from './src/BasicUpload.vue'; |
import BasicUpload from './src/BasicUpload.vue'; |
||||
|
import { withInstall } from '../util'; |
||||
|
|
||||
export default (app: App): void => { |
withInstall(BasicUpload); |
||||
app.component(BasicUpload.name, BasicUpload); |
|
||||
}; |
|
||||
|
|
||||
export { BasicUpload }; |
export { BasicUpload }; |
||||
|
|||||
@ -1,8 +1,9 @@ |
|||||
import BasicDragVerifyLib from './src/DragVerify'; |
import BasicDragVerify from './src/DragVerify'; |
||||
import RotateDragVerifyLib from './src/ImgRotate'; |
import RotateDragVerify from './src/ImgRotate'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
|
withInstall(BasicDragVerify, RotateDragVerify); |
||||
|
|
||||
export * from './src/types'; |
export * from './src/types'; |
||||
|
|
||||
export const RotateDragVerify = withInstall(RotateDragVerifyLib); |
export { BasicDragVerify, RotateDragVerify }; |
||||
export const BasicDragVerify = withInstall(BasicDragVerifyLib); |
|
||||
|
|||||
@ -1,4 +1,5 @@ |
|||||
import VirtualScrollLib from './src/index'; |
import VirtualScroll from './src/index'; |
||||
import { withInstall } from '../util'; |
import { withInstall } from '../util'; |
||||
|
|
||||
export const VirtualScroll = withInstall(VirtualScrollLib); |
withInstall(VirtualScroll); |
||||
|
export { VirtualScroll }; |
||||
|
|||||
@ -1,21 +1,54 @@ |
|||||
import { InjectionKey, provide, inject, reactive, readonly } from 'vue'; |
import { |
||||
|
InjectionKey, |
||||
|
provide, |
||||
|
inject, |
||||
|
reactive, |
||||
|
readonly as defineReadonly, |
||||
|
defineComponent, |
||||
|
UnwrapRef, |
||||
|
} from 'vue'; |
||||
|
|
||||
export const createContext = <T>( |
export interface CreateContextOptions { |
||||
context: any, |
readonly?: boolean; |
||||
contextInjectKey: InjectionKey<T> = Symbol(), |
createProvider?: boolean; |
||||
_readonly = true |
} |
||||
) => { |
|
||||
const state = reactive({ ...context }); |
|
||||
|
|
||||
const provideData = _readonly ? readonly(state) : state; |
type ShallowUnwrap<T> = { |
||||
provide(contextInjectKey, provideData); |
[P in keyof T]: UnwrapRef<T[P]>; |
||||
}; |
}; |
||||
|
|
||||
|
export function createContext<T>( |
||||
|
context: any, |
||||
|
key: InjectionKey<T> = Symbol(), |
||||
|
options: CreateContextOptions = {} |
||||
|
) { |
||||
|
const { readonly = true, createProvider = false } = options; |
||||
|
|
||||
|
const state = reactive(context); |
||||
|
|
||||
|
const provideData = readonly ? defineReadonly(state) : state; |
||||
|
!createProvider && provide(key, provideData); |
||||
|
|
||||
|
const Provider = createProvider |
||||
|
? defineComponent({ |
||||
|
name: 'Provider', |
||||
|
inheritAttrs: false, |
||||
|
setup(_, { slots }) { |
||||
|
provide(key, provideData); |
||||
|
return () => slots.default?.(); |
||||
|
}, |
||||
|
}) |
||||
|
: null; |
||||
|
|
||||
|
return { Provider, state }; |
||||
|
} |
||||
|
|
||||
export const useContext = <T>( |
export const useContext = <T>( |
||||
contextInjectKey: InjectionKey<T> = Symbol(), |
key: InjectionKey<T> = Symbol(), |
||||
defaultValue?: any, |
defaultValue?: any, |
||||
_readonly = true |
readonly = false |
||||
): T => { |
): ShallowUnwrap<T> => { |
||||
const state = inject(contextInjectKey, defaultValue || {}); |
const state = inject(key, defaultValue || {}); |
||||
return _readonly ? readonly(state) : state; |
|
||||
|
return readonly ? defineReadonly(state) : state; |
||||
}; |
}; |
||||
|
|||||
@ -0,0 +1,19 @@ |
|||||
|
import { useAppProviderContext } from '/@/components/Application'; |
||||
|
import { computed } from 'vue'; |
||||
|
// import { useCssModule, reactive } from 'vue';
|
||||
|
export function useDesign(scope: string) { |
||||
|
const values = useAppProviderContext(); |
||||
|
// const style = cssModule ? useCssModule() : {};
|
||||
|
|
||||
|
// if (cssModule) {
|
||||
|
// Object.keys(style).forEach((key) => {
|
||||
|
// const moduleCls = style[key];
|
||||
|
// style[key] = `${cls}-${moduleCls}`;
|
||||
|
// });
|
||||
|
// }
|
||||
|
return { |
||||
|
prefixCls: computed(() => `${values.prefixCls}-${scope}`), |
||||
|
prefixVar: values.prefixCls, |
||||
|
// style,
|
||||
|
}; |
||||
|
} |
||||
Loading…
Reference in new issue