Skip to content

Commit

Permalink
Merge pull request #20 from ivy-design/dev
Browse files Browse the repository at this point in the history
v1.5.0 版本
  • Loading branch information
GuoJikun authored Jan 26, 2024
2 parents 4de3a35 + 7591f8f commit a629d7c
Show file tree
Hide file tree
Showing 20 changed files with 1,095 additions and 293 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- run: pnpm run build-only

publish-npm:
needs: publish
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
3 changes: 2 additions & 1 deletion .markdownlint.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@
"ivy-dropdown-item",
"ivy-result",
"ivy-tabs",
"ivy-tab-pane"
"ivy-tab-pane",
"ivy-split"
]
}
}
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ pnpm dev
pnpm build
```

### Run Unit Tests with [Vitest](https://vitest.dev/)
### 单元测试

```sh
pnpm test:unit
Expand Down Expand Up @@ -92,15 +92,17 @@ pnpm test:unit
| Link | 链接 |
| Affix | 固钉 |
| MessageBox | 消息弹出框 |
| TimeSelect | 时间选择 |
| Scrollbar | 滚动条 |
| split | 分割面板 |
| notification | 通知框 |

## 代办

| 组件名称 | 组件描述 |
| :----------- | :--------- |
| tabs | 标签页 |
| message | 消息提醒 |
| notification | 通知框 |
| table | 表格 |
| split | 分割面板 |
| datePicker | 日期选择器 |
| timePicker | 时间选择器 |
| 组件名称 | 组件描述 |
| :--------- | :--------- |
| tabs | 标签页 |
| message | 消息提醒 |
| table | 表格 |
| datePicker | 日期选择器 |
| timePicker | 时间选择器 |
2 changes: 1 addition & 1 deletion packages/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@
"vue": "^3.3.8"
},
"devDependencies": {
"vitepress": "1.0.0-rc.29"
"vitepress": "1.0.0-rc.40"
}
}
11 changes: 11 additions & 0 deletions packages/docs/src/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# 更新日志

## v1.5.0 版本

Feats:

- 增加 `Notification` 组件
- 增加 `Split` 组件

Chore:

- 尝试修复自定发布 npm action 错误

## v1.4.0 版本

Feats:
Expand Down
113 changes: 60 additions & 53 deletions packages/docs/src/components/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ pnpm add @ivy-design/ce
```js
// vue2
import Vue from "vue";
import { registerComponents } from "@ivy-design/wc";
import "@ivy-design/wc/dist/style.css";
import { registerComponents } from "@ivy-design/ce";
import "@ivy-design/ce/dist/style.css";
registerComponents();
Vue.config.ignoredElements = [
// 用一个 `RegExp` 忽略所有“ion-”开头的元素
Expand All @@ -40,8 +40,8 @@ Vue.config.ignoredElements = [

// vue3
import { createApp } from "vue";
import { registerComponents } from "@ivy-design/wc";
import "@ivy-design/wc/dist/style.css";
import { registerComponents } from "@ivy-design/ce";
import "@ivy-design/ce/dist/style.css";
registerComponents();
createApp().config.compilerOptions.isCustomElement = (tag) =>
tag.startsWith("ivy-");
Expand All @@ -50,8 +50,8 @@ createApp().config.compilerOptions.isCustomElement = (tag) =>
### react 中使用

```js
import { registerComponents } from "@ivy-design/wc";
import "@ivy-design/wc/dist/style.css";
import { registerComponents } from "@ivy-design/ce";
import "@ivy-design/ce/dist/style.css";
registerComponents();
//如需单独使用
import { defineCustomElement } from "ivy-ui/dist/components/ivy-button.js";
Expand All @@ -60,53 +60,60 @@ ReactDOM.render(<ivy-button>button</ivy-button>, document.body);

## 已有组件

| 组件名称 | 组件描述 |
| :-------------: | ---------------------------: |
| Button | 按钮 |
| Space | 间隔 |
| Collapse | 折叠面板 |
| Divider | 分割线 |
| Card | 卡片 |
| Grid | 宫格 |
| Empty | 空状态 |
| Timeline | 时间轴 |
| Breadcrumb | 面包屑导航 |
| Tag | 标签 |
| Badge | 徽章 |
| Row ||
| Col ||
| Result | 结果 |
| Drawer | 抽屉 |
| Input | 输入框 |
| Tip | 提示 |
| Select | 下拉选择 |
| Loading | 加载 |
| Details | 详情-同原生的 `details` 标签 |
| Progress | 进度条 |
| Dialog | 弹框 |
| Dropdown | 下拉菜单 |
| Steps | 步骤条 |
| Switch | 开关 |
| Radio | 单选框 |
| Checkbox | 多选框 |
| AspectRatio | 固定宽高比例容器 |
| Icon | 图标 |
| Circle | 圆形进度条 |
| Image | 图片 |
| Description | 描述列表 |
| Contextmenu | 邮件菜单 |
| rate | 评分 |
| Avatar | 头像 |
| Carousel | 轮播图 |
| CopyToClipboard | 复制到剪切板 |
| 组件名称 | 组件描述 |
| :-------------- | ---------------------------- |
| Button | 按钮 |
| Space | 间隔 |
| Collapse | 折叠面板 |
| Divider | 分割线 |
| Card | 卡片 |
| Grid | 宫格 |
| Empty | 空状态 |
| Timeline | 时间轴 |
| Breadcrumb | 面包屑导航 |
| Tag | 标签 |
| Badge | 徽章 |
| Row ||
| Col ||
| Result | 结果 |
| Drawer | 抽屉 |
| Input | 输入框 |
| Tip | 提示 |
| Select | 下拉选择 |
| Loading | 加载 |
| Details | 详情-同原生的 `details` 标签 |
| Progress | 进度条 |
| Dialog | 弹框 |
| Dropdown | 下拉菜单 |
| Steps | 步骤条 |
| Switch | 开关 |
| Radio | 单选框 |
| Checkbox | 多选框 |
| AspectRatio | 固定宽高比例容器 |
| Icon | 图标 |
| Circle | 圆形进度条 |
| Image | 图片 |
| Description | 描述列表 |
| Contextmenu | 邮件菜单 |
| rate | 评分 |
| Avatar | 头像 |
| Carousel | 轮播图 |
| CopyToClipboard | 复制到剪切板 |
| Text | 文字 |
| Link | 链接 |
| Affix | 固钉 |
| MessageBox | 消息弹出框 |
| TimeSelect | 时间选择 |
| Scrollbar | 滚动条 |
| split | 分割面板 |
| notification | 通知框 |

## 未完成组件

| 组件名称 | 组件描述 |
| :----------: | :--------: |
| tabs | 标签页 |
| message | 消息提醒 |
| notification | 通知框 |
| table | 表格 |
| split | 分割面板 |
| datePicker | 日期选择器 |
| 组件名称 | 组件描述 |
| :--------- | :--------- |
| tabs | 标签页 |
| message | 消息提醒 |
| table | 表格 |
| datePicker | 日期选择器 |
| timePicker | 时间选择器 |
156 changes: 146 additions & 10 deletions packages/docs/src/components/notification.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,155 @@
# Notification 通知

<ivy-button @click="test">点击打开Notification</ivy-button>
悬浮出现在页面角落,显示全局的通知提醒消息。

## 基础用法

Ivy Design 注册了 $notify 方法并且它接受一个 Object 作为其参数。 在最简单的情况下,你可以通过设置 title 和 message 属性来设置通知的标题和正文内容。
默认情况下,通知在 `4500` 毫秒后自动关闭,但你可以通过设置 `duration` 属性来自定义通知的展示时间。
如果你将它设置为 `0`,那么通知将不会自动关闭。 需要注意的是 `duration` 接收一个 `Number`,单位为毫秒。

<ivy-button @click="test(true)"> 自动关闭 </ivy-button>
<ivy-button @click="test(false)"> 不自动关闭 </ivy-button>

```html
<ivy-button>点击打开Notification</ivy-button>
<ivy-button> 点击打开Notification</ivy-button>
```

## 不同类型的通知

我们提供了四种不同类型的提醒框:success、warning、info 和 error。

Ivy Design 为 Notification 组件准备了四种通知类型:`success`, `warning`, `info`, `error`
他们可以设置 type 字段来修改,除上述的四个值之外的值会被忽略。
同时,我们也为 Notification 的各种 `type` 注册了单独的方法,可以在不传入 `type` 字段的情况下像[基础用法中]那样直接调用。

<ivy-button type="success" @click="handleSuccess"> Success </ivy-button>
<ivy-button type="warning" @click="handleWarning"> Warning </ivy-button>
<ivy-button type="danger" @click="handleError"> Error </ivy-button>
<ivy-button type="info" @click="handleInfo"> Info </ivy-button>

## 自定义弹出的位置

可以让 Notification 从屏幕四角中的任意一角弹出

使用 `position` 属性设置 Notification 的弹出位置,
支持四个选项:`top-right``top-left``bottom-right``bottom-left`, 默认为 `top-right`

<ivy-button @click="handlePosition('top-left')"> Top Left </ivy-button>
<ivy-button @click="handlePosition('top-right')"> Top Right </ivy-button>
<ivy-button @click="handlePosition('bottom-left')"> Bottom Left </ivy-button>
<ivy-button @click="handlePosition('bottom-right')"> Bottom Right </ivy-button>

## 隐藏关闭按钮

通知的关闭按钮可以被设置为隐藏。

`showClose` 属性设置为 `false` 即可隐藏关闭按钮。

<ivy-button @click="hideClose"> 隐藏关闭按钮 </ivy-button>

## 使用 HTML 片段作为正文内容

`message` 支持传入 HTML 字符串来作为正文内容。

`useHtmlString` 属性设置为 `true``message` 属性就会被当作 HTML 片段处理。

<ivy-button @click="useHtml"> 使用 HTML 字符串 </ivy-button>

## 可用的 CSS 变量

:::details 点击查看

```css
:host {
--ivy-notification-font-size: var(--ivy-font-size);
--ivy-notification-title-font-size: 16px;
--ivy-notification-width: 340px;
}
```

<script>
export default {
setup(){
const test = (ev)=>{
console.log(window)
}
return {test}
}
:::

## API

### 属性

| 名称 | 说明 | 类型 | 可选值 | 默认值 |
| ------------- | ------------------------------- | -------- | ----------------------------- | --------- |
| type | 通知的类型 | string | `success/info/warning/error` | - |
| title | 通知的标题 | string | - | '通知' |
| message | 正文内容 | string | - | - |
| useHtmlString | message 作为 HTML 处理 | boolean | - | false |
| show-close | 是否显示右上角关闭按钮 | boolean | - | true |
| duration | 显示时间(ms)。 0 则不会自动关闭 | number | - | 4500 |
| onClose | 关闭时的回调函数 | Function | - | - |
| position | 关闭时的回调函数 | string | `(top\|bottom)-(left\|right)` | top-right |

## Methods

| 方法名 | 说明 | 类型 |
| ------ | ----------------------- | ------------------ |
| close | 关闭当前的 Notification | `function()=>void` |

<script setup>
import { $notify } from '@ivy-design/ce';

const test = (autoClose) => {
$notify({
duration: autoClose ? 4500 : 0,
title: "通知",
message: "这是通知的内容部分"
})
}
const handleSuccess = () => {
$notify.success({
title: "通知",
message: "这是通知的内容部分"
})
}

const handleWarning = () => {
$notify.warning({
title: "通知",
message: "这是通知的内容部分"
})
}

const handleError = () => {
$notify.error({
title: "通知",
message: "这是通知的内容部分"
})
}

const handleInfo = () => {
$notify.info({
title: "通知",
message: "这是通知的内容部分"
})
}
const handlePosition = (val) => {
$notify({
position: val || 'top-right',
title: "通知",
message: "这是通知的内容部分"
})
}

const hideClose = () => {
$notify({
showClose: false,
title: "通知",
message: "这是通知的内容部分"
})
}

const useHtml = () => {
$notify({
showClose: false,
title: "通知",
useHtmlString: true,
message: `<p>我是使用<b style="color: red;margin: 0 8px"><i>html</i></b>字符串来作为正文内容</p>`
})
}
</script>
Loading

0 comments on commit a629d7c

Please sign in to comment.