12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <!--
- * @Author: colpu ycg520520@qq.com
- * @Date: 2024-07-30 10:45:32
- * @LastEditors: colpu ycg520520@qq.com
- * @LastEditTime: 2024-07-30 10:45:57
- * @FilePath: components/placeholder.vue
- * @Description:
- -->
- <template>
- <view class="colpu__placeholder-wrap" :style="styles">
- <view class="colpu__placeholder-img">
- <image :style="imageStyle" lazy-load="true" :src="src"></image>
- </view>
- <rich-text
- class="colpu__placeholder-desc"
- v-if="desc.length"
- :nodes="desc"
- ></rich-text>
- <view class="colpu__placeholder-slot" :style="`margin-bottom:${offset}`">
- <slot></slot>
- </view>
- </view>
- </template>
- <script setup>
- defineProps({
- src: {
- type: String,
- default: "/static/svgs/noinfo.svg",
- },
- desc: {
- type: String,
- default: "空空如也!",
- },
- styles: {
- type: [Object, String],
- default: "",
- },
- imageStyle: {
- type: [Object, String],
- default: () => ({
- width: "96px",
- height: "96px",
- }),
- },
- offset: { type: String, default: "0" },
- });
- </script>
- <script>
- export default {
- options: {
- virtualHost: true,
- },
- };
- </script>
- <style lang="scss" scoped>
- $lead: '.colpu__';
- #{$lead}placeholder {
- &-wrap {
- text-align: center;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- flex: 1;
- height: 100%;
- }
- &-img {
- }
- &-desc {
- display: inline-block;
- text-align: center;
- font-size: 24rpx;
- color: #ccc;
- }
- &-slot {
- display: inline-block;
- }
- }
- </style>
|