39 changed files with 72 additions and 207 deletions
@ -1,11 +1,7 @@ |
|||||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
|
||||
import AppLogo from './src/AppLogo.vue'; |
import AppLogo from './src/AppLogo.vue'; |
||||
import AppProvider from './src/AppProvider.vue'; |
import AppProvider from './src/AppProvider.vue'; |
||||
|
import AppSearch from './src/search/AppSearch.vue'; |
||||
export const AppLocalePicker = createAsyncComponent(() => import('./src/AppLocalePicker.vue')); |
import AppLocalePicker from './src/AppLocalePicker.vue'; |
||||
export const AppSearch = createAsyncComponent(() => import('./src/search/AppSearch.vue'), { |
|
||||
loading: true, |
|
||||
}); |
|
||||
|
|
||||
export { useAppProviderContext } from './src/useAppContext'; |
export { useAppProviderContext } from './src/useAppContext'; |
||||
export { AppLogo, AppProvider }; |
export { AppLogo, AppProvider, AppSearch, AppLocalePicker }; |
||||
|
|||||
@ -1,9 +1,5 @@ |
|||||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
|
||||
import BasicArrow from './src/BasicArrow.vue'; |
import BasicArrow from './src/BasicArrow.vue'; |
||||
import BasicTitle from './src/BasicTitle.vue'; |
import BasicTitle from './src/BasicTitle.vue'; |
||||
|
import BasicHelp from './src/BasicHelp.vue'; |
||||
|
|
||||
export { BasicArrow, BasicTitle }; |
export { BasicArrow, BasicTitle, BasicHelp }; |
||||
|
|
||||
// export const BasicArrow = createAsyncComponent(() => import('./src/BasicArrow.vue'));
|
|
||||
export const BasicHelp = createAsyncComponent(() => import('./src/BasicHelp.vue')); |
|
||||
// export const BasicTitle = createAsyncComponent(() => import('./src/BasicTitle.vue'));
|
|
||||
|
|||||
@ -1,9 +1,3 @@ |
|||||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|
||||
|
|
||||
import BasicMenu from './src/BasicMenu.vue'; |
import BasicMenu from './src/BasicMenu.vue'; |
||||
|
|
||||
// export const BasicMenu = createAsyncComponent(() => import('./src/BasicMenu.vue'));
|
|
||||
|
|
||||
// export const MenuTag = createAsyncComponent(() => import('./src/components/MenuItemTag.vue'));
|
|
||||
|
|
||||
export { BasicMenu }; |
export { BasicMenu }; |
||||
|
|||||
@ -1,4 +1 @@ |
|||||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|
||||
// export const ImagePreview = createAsyncComponent(() => import('./src/index.vue'));
|
|
||||
|
|
||||
export { default as ImagePreview } from './src/index.vue'; |
export { default as ImagePreview } from './src/index.vue'; |
||||
|
|||||
@ -1,4 +1 @@ |
|||||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|
||||
// export const BasicUpload = createAsyncComponent(() => import('./src/BasicUpload.vue'));
|
|
||||
|
|
||||
export { default as BasicUpload } from './src/BasicUpload.vue'; |
export { default as BasicUpload } from './src/BasicUpload.vue'; |
||||
|
|||||
@ -1,37 +0,0 @@ |
|||||
import { ref, Ref, unref } from 'vue'; |
|
||||
import { useEventListener } from '/@/hooks/event/useEventListener'; |
|
||||
import { isServer } from '/@/utils/is'; |
|
||||
export function useClickOutside<T extends HTMLElement>( |
|
||||
containerRef: Ref<T>, |
|
||||
onClickOutside: (e: MouseEvent | TouchEvent) => void, |
|
||||
eventName = 'click' |
|
||||
) { |
|
||||
if (isServer) return; |
|
||||
|
|
||||
const isTouchRef = ref(false); |
|
||||
|
|
||||
useEventListener({ |
|
||||
el: document, |
|
||||
name: 'touchend', |
|
||||
listener: handler, |
|
||||
options: true, |
|
||||
}); |
|
||||
useEventListener({ |
|
||||
el: document, |
|
||||
name: eventName, |
|
||||
listener: handler, |
|
||||
options: true, |
|
||||
}); |
|
||||
|
|
||||
function handler(e: MouseEvent | TouchEvent) { |
|
||||
if (e.type === 'touchend') { |
|
||||
isTouchRef.value = true; |
|
||||
} |
|
||||
if (e.type === 'click' && unref(isTouchRef)) return; |
|
||||
|
|
||||
const el = containerRef.value; |
|
||||
if (el && e.target && !el.contains(e.target as Node)) { |
|
||||
onClickOutside(e); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,45 +0,0 @@ |
|||||
import { |
|
||||
watch, |
|
||||
computed, |
|
||||
WatchSource, |
|
||||
getCurrentInstance, |
|
||||
onMounted, |
|
||||
onUnmounted, |
|
||||
nextTick, |
|
||||
reactive, |
|
||||
ComponentInternalInstance, |
|
||||
} from 'vue'; |
|
||||
import { error } from '../log'; |
|
||||
|
|
||||
export function explicitComputed<T, S>(source: WatchSource<S>, fn: () => T) { |
|
||||
const v = reactive<any>({ value: fn() }); |
|
||||
watch(source, () => (v.value = fn())); |
|
||||
return computed<T>(() => v.value); |
|
||||
} |
|
||||
|
|
||||
export function tryOnMounted(fn: () => void, sync = true) { |
|
||||
if (getCurrentInstance()) { |
|
||||
onMounted(fn); |
|
||||
} else if (sync) { |
|
||||
fn(); |
|
||||
} else { |
|
||||
nextTick(fn); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
export function tryOnUnmounted(fn: () => Promise<void> | void) { |
|
||||
getCurrentInstance() && onUnmounted(fn); |
|
||||
} |
|
||||
|
|
||||
export function tryTsxEmit<T extends any = ComponentInternalInstance>( |
|
||||
fn: (_instance: T) => Promise<void> | void |
|
||||
) { |
|
||||
const instance = getCurrentInstance() as any; |
|
||||
instance && fn.call(null, instance); |
|
||||
} |
|
||||
|
|
||||
export function isInSetup() { |
|
||||
if (!getCurrentInstance()) { |
|
||||
error('Please put useForm function in the setup function!'); |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue