mirror of
https://gitee.com/wot-design-uni/wot-design-uni.git
synced 2025-12-07 17:48:34 +08:00
feat: ✨ 优化缺省状态组件StautsTip,增加支持自定义url和图片大小
This commit is contained in:
parent
069ce639cc
commit
f463d3258a
@ -4,26 +4,44 @@
|
|||||||
|
|
||||||
一般用于兜底占位展示。
|
一般用于兜底占位展示。
|
||||||
|
|
||||||
> 若图片显示安全域名问题,需将 img11.360buyimg.com 域名添加为业务域名。
|
> 本组件使用图片均为外链,推荐将图片下载到开发者的服务器后通过自定义图片`URL`使用。
|
||||||
|
|
||||||
|
|
||||||
## 基本用法
|
## 基本用法
|
||||||
|
|
||||||
设置 `type` 修改展示缺省图片类型,默认为 'network',可选值 'search', 'network', 'content', 'collect', 'comment', 'halo', 'message'。可设置 `tip` 来控制展示提示文案。
|
设置 `image` 修改展示缺省图片类型,默认为 `network`,可选值 `search`, `network`, `content`, `collect`, `comment`, `halo`, `message`。可设置 `tip` 来控制展示提示文案。
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<wd-status-tip type="search" tip="当前搜索无结果"/>
|
<wd-status-tip image="search" tip="当前搜索无结果"/>
|
||||||
<wd-status-tip type="network" tip="该页面暂时无法访问"/>
|
<wd-status-tip image="network" tip="该页面暂时无法访问"/>
|
||||||
<wd-status-tip type="content" tip="暂无内容"/>
|
<wd-status-tip image="content" tip="暂无内容"/>
|
||||||
<wd-status-tip type="collect" tip="暂无收藏"/>
|
<wd-status-tip image="collect" tip="暂无收藏"/>
|
||||||
<wd-status-tip type="comment" tip="当前没有联系人名单哦~"/>
|
<wd-status-tip image="comment" tip="当前没有联系人名单哦~"/>
|
||||||
<wd-status-tip type="halo" tip="支付失败,请重新订购"/>
|
<wd-status-tip image="halo" tip="支付失败,请重新订购"/>
|
||||||
<wd-status-tip type="message" tip="已订阅全部消息"/>
|
<wd-status-tip image="message" tip="已订阅全部消息"/>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 自定义大小
|
||||||
|
|
||||||
|
通过 `image-size` 属性图片的大小。
|
||||||
|
|
||||||
|
```html
|
||||||
|
<wd-status-tip image-size="100" image="search" tip="当前搜索无结果" />
|
||||||
|
```
|
||||||
|
|
||||||
|
## 自定义图片
|
||||||
|
|
||||||
|
需要自定义图片时,可以在 `image` 属性中传入任意图片 URL。
|
||||||
|
|
||||||
|
|
||||||
|
```html
|
||||||
|
<wd-status-tip image="https://img.wot-design-uni.cn/static/1.jpg" tip="查看我的头像" />
|
||||||
```
|
```
|
||||||
|
|
||||||
## Attributes
|
## Attributes
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
|
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
|
||||||
|-----|------|-----|-------|-------|---------|
|
|-----|------|-----|-------|-------|---------|
|
||||||
| type | 缺省类型 | string | search / network / content / collect / comment / halo / message | network | - |
|
| image | 缺省图片类型,支持传入图片 URL | string | search / network / content / collect / comment / halo / message | network | - |
|
||||||
|
| image-size | 图片大小,默认单位为 `px` | `string`/`number` | - | - | - |
|
||||||
| tip | 提示文案 | string | - | - | - |
|
| tip | 提示文案 | string | - | - | - |
|
||||||
|
|||||||
@ -1,31 +1,39 @@
|
|||||||
<template>
|
<template>
|
||||||
<page-wraper>
|
<page-wraper>
|
||||||
<demo-block title="搜索无结果">
|
<demo-block title="搜索无结果">
|
||||||
<wd-status-tip type="search" tip="当前搜索无结果" />
|
<wd-status-tip image="search" tip="当前搜索无结果" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="404页面">
|
<demo-block title="404页面">
|
||||||
<wd-status-tip type="network" tip="当前网络不可用,请检查你的网络设置" />
|
<wd-status-tip image="network" tip="当前网络不可用,请检查你的网络设置" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="页面无数据">
|
<demo-block title="页面暂无内容">
|
||||||
<wd-status-tip type="content" tip="暂无内容" />
|
<wd-status-tip image="content" tip="暂无内容" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="我的收藏为空">
|
<demo-block title="我的收藏为空">
|
||||||
<wd-status-tip type="collect" tip="暂无收藏" />
|
<wd-status-tip image="collect" tip="暂无收藏" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="我的评论为空">
|
<demo-block title="我的评论为空">
|
||||||
<wd-status-tip type="comment" tip="暂无评论" />
|
<wd-status-tip image="comment" tip="暂无评论" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="支付失败">
|
<demo-block title="支付失败">
|
||||||
<wd-status-tip type="halo" tip="支付失败,请重新订购" />
|
<wd-status-tip image="halo" tip="支付失败,请重新订购" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="已订阅全部消息">
|
<demo-block title="已订阅全部消息">
|
||||||
<wd-status-tip type="message" tip="已订阅全部消息" />
|
<wd-status-tip image="message" tip="已订阅全部消息" />
|
||||||
|
</demo-block>
|
||||||
|
|
||||||
|
<demo-block title="自定义大小">
|
||||||
|
<wd-status-tip image-size="100" image="search" tip="当前搜索无结果" />
|
||||||
|
</demo-block>
|
||||||
|
|
||||||
|
<demo-block title="自定义图片">
|
||||||
|
<wd-status-tip image="https://img.wot-design-uni.cn/static/1.jpg" tip="查看我的头像" />
|
||||||
</demo-block>
|
</demo-block>
|
||||||
</page-wraper>
|
</page-wraper>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -17,12 +17,15 @@
|
|||||||
color: $-statustip-color;
|
color: $-statustip-color;
|
||||||
font-size: $-statustip-fs;
|
font-size: $-statustip-fs;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
@include e(image) {
|
@include e(image) {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
display: block;
|
display: block;
|
||||||
width: 300px;
|
width: 160px;
|
||||||
height: 200px;
|
height: 160px;
|
||||||
}
|
}
|
||||||
@include e(text) {
|
@include e(text) {
|
||||||
margin: 20px auto 0;
|
margin: 20px auto 0;
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: weisheng
|
* @Author: weisheng
|
||||||
* @Date: 2023-06-12 10:04:19
|
* @Date: 2023-06-12 10:04:19
|
||||||
* @LastEditTime: 2023-08-15 17:58:23
|
* @LastEditTime: 2023-09-02 15:12:03
|
||||||
* @LastEditors: weisheng
|
* @LastEditors: weisheng
|
||||||
* @Description:
|
* @Description:
|
||||||
* @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\wd-status-tip\wd-status-tip.vue
|
* @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\wd-status-tip\wd-status-tip.vue
|
||||||
* 记得注释
|
* 记得注释
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div :class="`wd-status-tip ${customClass}`" :style="customStyle">
|
<view :class="`wd-status-tip ${customClass}`" :style="customStyle">
|
||||||
<image v-if="imgUrl" class="wd-status-tip__image" :src="imgUrl"></image>
|
<image v-if="imgUrl" class="wd-status-tip__image" :src="imgUrl" :style="imgStyle"></image>
|
||||||
<view v-if="tip" class="wd-status-tip__text">{{ tip }}</view>
|
<view v-if="tip" class="wd-status-tip__text">{{ tip }}</view>
|
||||||
</div>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -26,28 +26,29 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, watch } from 'vue'
|
import { computed, ref, watch } from 'vue'
|
||||||
|
import { addUnit, objToStyle } from '../common/util'
|
||||||
type StatusTipType = 'search' | 'network' | 'content' | 'collect' | 'comment' | 'halo' | 'message'
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
customClass?: string
|
customClass?: string
|
||||||
customStyle?: string
|
customStyle?: string
|
||||||
type?: StatusTipType
|
image?: string
|
||||||
|
imageSize?: string
|
||||||
tip?: string
|
tip?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
customClass: '',
|
customClass: '',
|
||||||
customStyle: '',
|
customStyle: '',
|
||||||
type: 'network',
|
image: 'network',
|
||||||
|
imageSize: '',
|
||||||
tip: ''
|
tip: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const imgUrl = ref<string>('') // 图片地址
|
const imgUrl = ref<string>('') // 图片地址
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.type,
|
() => props.image,
|
||||||
() => {
|
() => {
|
||||||
checkType()
|
checkType()
|
||||||
},
|
},
|
||||||
@ -57,33 +58,44 @@ watch(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const imgStyle = computed(() => {
|
||||||
|
let style: Record<string, string> = {}
|
||||||
|
if (props.imageSize) {
|
||||||
|
style = {
|
||||||
|
height: addUnit(props.imageSize),
|
||||||
|
width: addUnit(props.imageSize)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return `${objToStyle(style)}`
|
||||||
|
})
|
||||||
|
|
||||||
function checkType() {
|
function checkType() {
|
||||||
// 改用网络地址,避免小程序打包的时候统一打包进去导致包过大问题
|
// 改用网络地址,避免小程序打包的时候统一打包进去导致包过大问题
|
||||||
let img = 'https://img11.360buyimg.com/ftfman/jfs/t1/148420/6/17526/26156/5fd03b9eE0119edb0/0d93541f6085c74c.png'
|
let img: string = ''
|
||||||
switch (props.type) {
|
switch (props.image) {
|
||||||
case 'collect':
|
case 'collect':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/146876/19/17683/28878/5fd03b70E2e029d9d/b3ebf4444ec144cf.png'
|
img = 'https://img.wot-design-uni.cn/wdu/collect.png'
|
||||||
break
|
break
|
||||||
case 'comment':
|
case 'comment':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/136543/33/19003/31469/5fd03b92E510000ff/0f9f2f302d8c084f.png'
|
img = 'https://img.wot-design-uni.cn/wdu/comment.png'
|
||||||
break
|
break
|
||||||
case 'content':
|
case 'content':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/140894/19/17605/31485/5fd03b8dE22c82234/0506be411332b914.png'
|
img = 'https://img.wot-design-uni.cn/wdu/content.png'
|
||||||
break
|
break
|
||||||
case 'halo':
|
case 'halo':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/137867/20/17583/28484/5fd03b96E99da5386/eae93dc441c061b6.png'
|
img = 'https://img.wot-design-uni.cn/wdu/halo.png'
|
||||||
break
|
break
|
||||||
case 'message':
|
case 'message':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/145522/14/17551/32214/5fd03b9aE7de897d8/066e511adebe4223.png'
|
img = 'https://img.wot-design-uni.cn/wdu/message.png'
|
||||||
break
|
break
|
||||||
case 'network':
|
case 'network':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/148420/6/17526/26156/5fd03b9eE0119edb0/0d93541f6085c74c.png'
|
img = 'https://img.wot-design-uni.cn/wdu/network.png'
|
||||||
break
|
break
|
||||||
case 'search':
|
case 'search':
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/130609/24/19259/35205/5fd03cc7E49456a46/4fb443c24e0cf799.png'
|
img = 'https://img.wot-design-uni.cn/wdu/search.png'
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
img = 'https://img11.360buyimg.com/ftfman/jfs/t1/148420/6/17526/26156/5fd03b9eE0119edb0/0d93541f6085c74c.png'
|
img = props.image
|
||||||
}
|
}
|
||||||
imgUrl.value = img
|
imgUrl.value = img
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
🔥 <a href="https://wot-design-uni.cn/">文档网站 (Netlify)</a>
|
🚀 <a href="https://wot-design-uni.cn/">文档网站 (官网)</a>
|
||||||
|
🔥 <a href="https://wot-design-uni.netlify.app/">文档网站 (Netlify)</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## ✨ 特性
|
## ✨ 特性
|
||||||
@ -58,7 +59,7 @@
|
|||||||
|
|
||||||
## 快速上手
|
## 快速上手
|
||||||
|
|
||||||
详细说明见 [快速上手](https://wot-design-uni.cn/guide/quickUse.html)
|
详细说明见 [快速上手](https://wot-design-uni.cn/guide/quickUse.html)。
|
||||||
|
|
||||||
## 链接
|
## 链接
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user