mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
epic(website): refactor website (#3426)
* feat(website): init viteperss (#3162) * init vitepress * Finish homepage * relayout page * partial finish * update * update use lang * remove font weight; change font size * docs: optimize docs folder structure * reorganize project * fix ssr issue * fix build issues Co-authored-by: Kevin <sxzz@sxzz.moe> Co-authored-by: zouhang <zouhang@didiglobal.com> * feat(website) integrate with crowdin (#3218) - Introduce Crowdin CLI - Add script for fetching Crowdin token from env - Add script for local development * fix formatting * update codeblocks (#3249) * feat(docs): update website preview script - Update azure preview build script - Eliminate dead links * bootstrap docs * fix homepage layout issue * fix formating * Finish ToC and codepen integration * reorganized files and fix issue that causes demo unavailable after build * feat(docs): migration documentations (#3283) * feat(docs): migration documentations - Move documentations to docs/ * remove unused files * docs: [popconfirm] migrate document (#3285) * feat(docs): migrate documentation from space.md to upload.md (#3292) - Upload documentations acorrodingly * docs: [date-picker] migrate document (#3289) * docs: [date-picker] migrate document * fix: typo * docs: [slider] migrate document (#3287) * docs: migrate documents (#3290) * docs: migrate-datetime-picker * docs: migrate descriptions * docs: migrate dialog * docs: migrate divider * docs: migrate drawer * docs: migrate drapdown * docs: fix drapdown * docs: migrate empty * docs: migrate form * docs: add scoped for style * docs: simplify toRefs * chore: update doc (#3297) * chore: update doc * chore: update doc * chore: update doc * feat(docs): migrate documentations from infinite-scroll to page-header (#3303) - Update docs accordingly - Update CodePen icon to match style - Update component name to match others * docs: migrate documentions (#3293) migrate list: * image * popover * scrollbar * radio * rate * skeleton * select * select-v2 * reault * progress * pagination * chore: update doc (#3305) Co-authored-by: 0song <0song@gmail.com> * Fix broken pipeline * chore: update demo plugin * website perfection * fix hydration bug * docs: update guide (#3342) * WIP docs * docs: update docs * add dark mode * make dev fetch components from local instead of node_modules Co-authored-by: msidolphin <msidolphin@outlook.com> Co-authored-by: Aex <spryti@qq.com> Co-authored-by: 0song <82012629+0song@users.noreply.github.com> Co-authored-by: 0song <0song@gmail.com> Co-authored-by: zouhang <zouhang@didiglobal.com> Co-authored-by: 三咲智子 <sxzz@sxzz.moe> * fix(docs): fix codepen code example issue (#3380) * fix(docs): fix codepen code example issue - Add lang="ts" for all example files - Fix codepen import error * revert changes in resource.vue * feat(docs): complete crowdin integration (#3408) * Update mds for preparing the integration script * deprecate old website * update sponsors and even handler for resize * update build script for preview * fix preview-build error * fix preview-build error * fix preview-build error * fix preview-build error * fix preview-build error * update deploy script and some bugs * Fix existing issue * chore(project): add dev preview workflow * chore(project): rename dev to staging * update the size of toc * update staging-preview script * update preview scripts * enable website build for preview * fix build error * final commitment for update the details * remove azure pipeline * move docs ignores into docs and update date Co-authored-by: Kevin <sxzz@sxzz.moe> Co-authored-by: zouhang <zouhang@didiglobal.com> Co-authored-by: msidolphin <msidolphin@outlook.com> Co-authored-by: Aex <spryti@qq.com> Co-authored-by: 0song <82012629+0song@users.noreply.github.com> Co-authored-by: 0song <0song@gmail.com>
This commit is contained in:
28
docs/examples/message-box/alert.vue
Normal file
28
docs/examples/message-box/alert.vue
Normal file
@@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open the Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.alert('This is a message', 'Title', {
|
||||
confirmButtonText: 'OK',
|
||||
callback: (action) => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: `action: ${action}`,
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
41
docs/examples/message-box/centered-content.vue
Normal file
41
docs/examples/message-box/centered-content.vue
Normal file
@@ -0,0 +1,41 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.confirm(
|
||||
'proxy will permanently delete the file. Continue?',
|
||||
'Warning',
|
||||
{
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel',
|
||||
type: 'warning',
|
||||
center: true,
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: 'Delete completed',
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: 'Delete canceled',
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
40
docs/examples/message-box/confirm.vue
Normal file
40
docs/examples/message-box/confirm.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open the Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.confirm(
|
||||
'proxy will permanently delete the file. Continue?',
|
||||
'Warning',
|
||||
{
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel',
|
||||
type: 'warning',
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: 'Delete completed',
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: 'Delete canceled',
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
47
docs/examples/message-box/customization.vue
Normal file
47
docs/examples/message-box/customization.vue
Normal file
@@ -0,0 +1,47 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, h } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox({
|
||||
title: 'Message',
|
||||
message: h('p', null, [
|
||||
h('span', null, 'Message can be '),
|
||||
h('i', { style: 'color: teal' }, 'VNode'),
|
||||
]),
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel',
|
||||
beforeClose: (action, instance, done) => {
|
||||
if (action === 'confirm') {
|
||||
instance.confirmButtonLoading = true
|
||||
instance.confirmButtonText = 'Loading...'
|
||||
setTimeout(() => {
|
||||
done()
|
||||
setTimeout(() => {
|
||||
instance.confirmButtonLoading = false
|
||||
}, 300)
|
||||
}, 3000)
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
},
|
||||
}).then((action) => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: `action: ${action}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
42
docs/examples/message-box/distinguishable-close-cancel.vue
Normal file
42
docs/examples/message-box/distinguishable-close-cancel.vue
Normal file
@@ -0,0 +1,42 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.confirm(
|
||||
'You have unsaved changes, save and proceed?',
|
||||
'Confirm',
|
||||
{
|
||||
distinguishCancelAndClose: true,
|
||||
confirmButtonText: 'Save',
|
||||
cancelButtonText: 'Discard Changes',
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: 'Changes saved. Proceeding to a new route.',
|
||||
})
|
||||
})
|
||||
.catch((action) => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message:
|
||||
action === 'cancel'
|
||||
? 'Changes discarded. Proceeding to a new route.'
|
||||
: 'Stay in the current route',
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
38
docs/examples/message-box/prompt.vue
Normal file
38
docs/examples/message-box/prompt.vue
Normal file
@@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.prompt('Please input your e-mail', 'Tip', {
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel',
|
||||
inputPattern:
|
||||
/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
|
||||
inputErrorMessage: 'Invalid Email',
|
||||
})
|
||||
.then(({ value }) => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: `Your email is:${value}`,
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: 'Input canceled',
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
26
docs/examples/message-box/use-html.vue
Normal file
26
docs/examples/message-box/use-html.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<el-button type="text" @click="open">Click to open Message Box</el-button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const open = () => {
|
||||
ElMessageBox.alert(
|
||||
'<strong>proxy is <i>HTML</i> string</strong>',
|
||||
'HTML String',
|
||||
{
|
||||
dangerouslyUseHTMLString: true,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
return {
|
||||
open,
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user