| | |
| | | <template> |
| | | <PageWrapper v-loading="loadingRef" loading-tip="加载中..." title="Loading组件示例"> |
| | | <div ref="wrapEl"> |
| | | <a-alert message="组件方式" /> |
| | | <Alert message="组件方式" /> |
| | | <a-button class="my-4 mr-4" type="primary" @click="openCompFullLoading"> |
| | | 全屏 Loading |
| | | </a-button> |
| | | <a-button class="my-4" type="primary" @click="openCompAbsolute"> 容器内 Loading </a-button> |
| | | <Loading |
| | | :loading="loading" |
| | | :absolute="absolute" |
| | | :theme="theme" |
| | | :background="background" |
| | | :tip="tip" |
| | | :loading="compState.loading" |
| | | :absolute="compState.absolute" |
| | | :theme="compState.theme" |
| | | :background="compState.background" |
| | | :tip="compState.tip" |
| | | /> |
| | | |
| | | <a-alert message="函数方式" /> |
| | | <Alert message="函数方式" /> |
| | | |
| | | <a-button class="my-4 mr-4" type="primary" @click="openFnFullLoading"> |
| | | 全屏 Loading |
| | | </a-button> |
| | | <a-button class="my-4" type="primary" @click="openFnWrapLoading"> 容器内 Loading </a-button> |
| | | |
| | | <a-alert message="指令方式" /> |
| | | <Alert message="指令方式" /> |
| | | <a-button class="my-4 mr-4" type="primary" @click="openDirectiveLoading"> |
| | | 打开指令Loading |
| | | </a-button> |
| | | </div> |
| | | </PageWrapper> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { defineComponent, reactive, toRefs, ref } from 'vue'; |
| | | import { Loading, useLoading } from '/@/components/Loading'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | <script lang="ts" setup> |
| | | import { reactive, ref } from 'vue'; |
| | | import { Loading, useLoading } from '@/components/Loading'; |
| | | import { PageWrapper } from '@/components/Page'; |
| | | import { Alert } from 'ant-design-vue'; |
| | | |
| | | export default defineComponent({ |
| | | components: { Loading, PageWrapper, [Alert.name]: Alert }, |
| | | setup() { |
| | | const wrapEl = ref<ElRef>(null); |
| | | const wrapEl = ref<ElRef>(null); |
| | | |
| | | const loadingRef = ref(false); |
| | | const compState = reactive({ |
| | | absolute: false, |
| | | loading: false, |
| | | theme: 'dark', |
| | | background: 'rgba(111,111,111,.7)', |
| | | tip: '加载中...', |
| | | }); |
| | | const [openFullLoading, closeFullLoading] = useLoading({ |
| | | tip: '加载中...', |
| | | }); |
| | | const loadingRef = ref(false); |
| | | const compState = reactive<{ |
| | | absolute?: boolean; |
| | | loading?: boolean; |
| | | theme?: 'dark' | 'light'; |
| | | background?: string; |
| | | tip?: string; |
| | | }>({ |
| | | absolute: false, |
| | | loading: false, |
| | | theme: 'dark', |
| | | background: 'rgba(111,111,111,.7)', |
| | | tip: '加载中...', |
| | | }); |
| | | const [openFullLoading, closeFullLoading] = useLoading({ |
| | | tip: '加载中...', |
| | | }); |
| | | |
| | | const [openWrapLoading, closeWrapLoading] = useLoading({ |
| | | target: wrapEl, |
| | | props: { |
| | | tip: '加载中...', |
| | | absolute: true, |
| | | }, |
| | | }); |
| | | |
| | | function openLoading(absolute: boolean) { |
| | | compState.absolute = absolute; |
| | | compState.loading = true; |
| | | setTimeout(() => { |
| | | compState.loading = false; |
| | | }, 2000); |
| | | } |
| | | |
| | | function openCompFullLoading() { |
| | | openLoading(false); |
| | | } |
| | | |
| | | function openCompAbsolute() { |
| | | openLoading(true); |
| | | } |
| | | |
| | | function openFnFullLoading() { |
| | | openFullLoading(); |
| | | |
| | | setTimeout(() => { |
| | | closeFullLoading(); |
| | | }, 2000); |
| | | } |
| | | |
| | | function openFnWrapLoading() { |
| | | openWrapLoading(); |
| | | |
| | | setTimeout(() => { |
| | | closeWrapLoading(); |
| | | }, 2000); |
| | | } |
| | | |
| | | function openDirectiveLoading() { |
| | | loadingRef.value = true; |
| | | setTimeout(() => { |
| | | loadingRef.value = false; |
| | | }, 2000); |
| | | } |
| | | |
| | | return { |
| | | openCompFullLoading, |
| | | openFnFullLoading, |
| | | openFnWrapLoading, |
| | | openCompAbsolute, |
| | | wrapEl, |
| | | loadingRef, |
| | | openDirectiveLoading, |
| | | ...toRefs(compState), |
| | | }; |
| | | const [openWrapLoading, closeWrapLoading] = useLoading({ |
| | | target: wrapEl, |
| | | props: { |
| | | tip: '加载中...', |
| | | absolute: true, |
| | | }, |
| | | }); |
| | | |
| | | function openLoading(absolute: boolean) { |
| | | compState.absolute = absolute; |
| | | compState.loading = true; |
| | | setTimeout(() => { |
| | | compState.loading = false; |
| | | }, 2000); |
| | | } |
| | | |
| | | function openCompFullLoading() { |
| | | openLoading(false); |
| | | } |
| | | |
| | | function openCompAbsolute() { |
| | | openLoading(true); |
| | | } |
| | | |
| | | function openFnFullLoading() { |
| | | openFullLoading(); |
| | | |
| | | setTimeout(() => { |
| | | closeFullLoading(); |
| | | }, 2000); |
| | | } |
| | | |
| | | function openFnWrapLoading() { |
| | | openWrapLoading(); |
| | | |
| | | setTimeout(() => { |
| | | closeWrapLoading(); |
| | | }, 2000); |
| | | } |
| | | |
| | | function openDirectiveLoading() { |
| | | loadingRef.value = true; |
| | | setTimeout(() => { |
| | | loadingRef.value = false; |
| | | }, 2000); |
| | | } |
| | | </script> |