UNPKG

nly-adminlte-vue

Version:
243 lines (194 loc) 5.28 kB
# Spinner > spinner 微调是一个可以显示元素或者组件某些特殊状态的者组件, 比如显示加载状态 spinner 组件可以插入大部分元素和组件,比如 `nly-button` (按钮), `nly-card` (卡片加载状态), `nly-table` (表格) 的 busy slot, `nly-overlay` (罩层)等 ```html <div class="text-center"> <nly-spinner label="Spinning"></nly-spinner> <nly-spinner type="grow" label="Spinning"></nly-spinner> <nly-spinner variant="primary" label="Spinning"></nly-spinner> <nly-spinner variant="pink" type="grow" label="Spinning"></nly-spinner> <nly-spinner variant="yellow" label="Spinning"></nly-spinner> <nly-spinner variant="success" type="grow" label="Spinning"></nly-spinner> </div> <!-- spinner.name --> <!-- spinner.vue --> ``` ## 类型 spinner 有两种类型,默认类型是 `border`, 即空心圆圈。我们可以设置 prop `type` 为 `border` 和 `grow` 来修改 spinner 的类型 ### border 空心圈圈 `border` 类型是默认类型,一个旋转的空心圆圈 ```html <div class="text-center"> <nly-spinner label="Spinning"></nly-spinner> </div> <!-- border.name --> <!-- border.vue --> ``` ### grow 增大圆点 `grow` 是一个变大圆点类型, `grow` spinner 会反复增大来显示需要展示的状态 ```html <div class="text-center"> <nly-spinner label="Spinning" type="grow"></nly-spinner> </div> <!-- grow.name --> <!-- grow.vue --> ``` ## variant 颜色 spinner 实际上完全由 css 完成渲染,所以跟 `text` 本质是一样的,同样可以接受一些 `text-*` 类的 css spinner 默认颜色是黑色,设置 `variant` 来改变 spinner 的颜色。`variant` prop 会给 spinner 添加 `text-*` 类颜色,比如 `text-danger`。 ```html <template> <div> <div class="text-center mb-3 d-flex justify-content-between"> <nly-spinner v-for="variant in variants" :variant="variant" :key="variant" ></nly-spinner> </div> <div class="text-center d-flex justify-content-between"> <nly-spinner v-for="variant in variants" :variant="variant" :key="variant" type="grow" ></nly-spinner> </div> </div> </template> <script> export default { data() { return { variants: [ "primary", "secondary", "info", "success", "danger", "indigo", "purple", "pink", "navy", "light", "warning", "lightblue", "olive", "lime", "fuchsia", "maroon", "blue", "orange", "teal", "white", "gray", "dark" ] }; } }; </script> <!-- varaint.name --> <!-- variant.vue --> ``` ## 大小 可以设置 `sm` prop 渲染小型的 spinner ```html <div> <nly-spinner sm label="Small Spinner"></nly-spinner> <nly-spinner sm label="Small Spinner" type="grow"></nly-spinner> </div> <!-- sm.name --> <!-- sm.vue --> ``` 也可以设置 `style` 属性来渲染 spinner 的大小 ```html <div> <nly-spinner style="width: 3rem; height: 3rem;" label="Large Spinner" ></nly-spinner> <nly-spinner style="width: 6rem; height: 6rem;" label="Large Spinner" type="grow" ></nly-spinner> </div> <!-- size.name --> <!-- size.vue --> ``` ## 位置 ### 边距 可以设置 `m-*`, `mr-*`, `mt-*`, `ml-*` 等 css 类来调整 spinner 的边距 ```html <div> <nly-spinner class="m-5" label="Busy"></nly-spinner> </div> <!-- 边距.name --> <!-- margin.vue --> ``` ### flex ```html <div> <div class="d-flex justify-content-center mb-3"> <nly-spinner label="Loading..."></nly-spinner> </div> <div class="d-flex align-items-center"> <strong>Loading...</strong> <nly-spinner class="ml-auto"></nly-spinner> </div> </div> <!-- flex.name --> <!-- flex.vue --> ``` ### float ```html <div class="clearfix"> <nly-spinner class="float-right" label="Floated Right"></nly-spinner> </div> <!-- float.name --> <!-- float.vue --> ``` ### center ```html <div class="text-center"> <nly-spinner variant="primary" label="Text Centered"></nly-spinner> </div> <!-- center.name --> <!-- center.vue --> ``` ## 按钮 spinner ```html <template> <div> <nly-button variant="primary" disabled> <nly-spinner sm></nly-spinner> <span class="sr-only">Loading...</span> </nly-button> <nly-button variant="primary" disabled> <nly-spinner sm type="grow"></nly-spinner> Loading... </nly-button> <nly-button variant="primary" @click="status =!status" :disabled="status"> <div v-show="status"> <nly-spinner sm type="grow"></nly-spinner> loading </div> <div v-show="!status"> 提交 </div> </nly-button> </div> </template> <script> export default { data() { return { status: false }; } }; </script> <!-- 按钮.name --> <!-- button spinner.vue --> ```