<template>
|
<div class="lin-container">
|
<div class="lin-title">Dialog 对话框</div>
|
<div class="lin-wrap-ui">
|
<el-card style="margin-bottom:50px;">
|
<template #header>
|
<div><span>基础用法</span></div>
|
</template>
|
<el-row>
|
<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
|
<el-dialog title="提示" v-model:visible="dialogVisible" width="30%" :before-close="handleClose">
|
<span>这是一段信息</span>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</el-row>
|
<el-collapse>
|
<el-collapse-item title="查看代码" name="2">
|
<div style="white-space: pre-wrap;">{{ base }}</div>
|
</el-collapse-item>
|
</el-collapse>
|
</el-card>
|
<el-card style="margin-bottom:50px;">
|
<template #header>
|
<div><span>自定义内容</span></div>
|
</template>
|
<el-row>
|
<el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>
|
|
<el-dialog title="收货地址" v-model:visible="dialogTableVisible">
|
<el-table :data="gridData">
|
<el-table-column property="date" label="日期" width="150"></el-table-column>
|
<el-table-column property="name" label="姓名" width="200"></el-table-column>
|
<el-table-column property="address" label="地址"></el-table-column>
|
</el-table>
|
</el-dialog>
|
|
<!-- Form -->
|
<el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button>
|
|
<el-dialog title="收货地址" v-model:visible="dialogFormVisible" class="dialogForm">
|
<el-form :model="form">
|
<el-form-item label="活动名称" :label-width="formLabelWidth">
|
<el-input v-model="form.name" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="活动区域" :label-width="formLabelWidth">
|
<el-select v-model="form.region" placeholder="请选择活动区域">
|
<el-option label="区域一" value="shanghai"></el-option>
|
<el-option label="区域二" value="beijing"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<template #footer>
|
<div class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</el-row>
|
<el-collapse class="test" style="color:red;">
|
<el-collapse-item title="查看代码" name="2">
|
<div style="white-space: pre-wrap;">{{ diy }}</div>
|
</el-collapse-item>
|
</el-collapse>
|
</el-card>
|
<el-card style="margin-bottom:50px;">
|
<template #header>
|
<div><span>嵌套的 Dialog</span></div>
|
</template>
|
<el-row>
|
<span class="demonstration">如果需要在一个 Dialog 内部嵌套另一个 Dialog,需要使用 append-to-body 属性</span>
|
<template>
|
<el-button type="text" @click="outerVisible = true">点击打开外层 Dialog</el-button>
|
|
<el-dialog title="外层 Dialog" v-model:visible="outerVisible">
|
<el-dialog width="30%" title="内层 Dialog" v-model:visible="innerVisible" append-to-body> </el-dialog>
|
<template #footer>
|
<div class="dialog-footer">
|
<el-button @click="outerVisible = false">取 消</el-button>
|
<el-button type="primary" @click="innerVisible = true">打开内层 Dialog</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</template>
|
</el-row>
|
<el-collapse class="test" style="color:red;">
|
<el-collapse-item title="查看代码" name="2">
|
<div style="white-space: pre-wrap;">{{ appendToBody }}</div>
|
</el-collapse-item>
|
</el-collapse>
|
</el-card>
|
<el-card style="margin-bottom:50px;">
|
<template v-slot:header>
|
<div><span>居中布局</span></div>
|
</template>
|
<el-row>
|
<span class="demonstration">标题和底部可水平居中</span>
|
<el-button type="text" @click="centerDialogVisible = true">点击打开 Dialog</el-button>
|
|
<el-dialog title="提示" v-model:visible="centerDialogVisible" width="30%" center>
|
<span>需要注意的是内容是默认不居中的</span>
|
<template v-slot:footer>
|
<span class="dialog-footer">
|
<el-button @click="centerDialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</el-row>
|
<el-collapse class="test" style="color:red;">
|
<el-collapse-item title="查看代码" name="2">
|
<div style="white-space: pre-wrap;">{{ center }}</div>
|
</el-collapse-item>
|
</el-collapse>
|
</el-card>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
/* eslint-disable */
|
name: '',
|
components: {},
|
data() {
|
return {
|
centerDialogVisible: false,
|
outerVisible: false,
|
innerVisible: false,
|
dialogVisible: false,
|
gridData: [
|
{
|
date: '2016-05-02',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄',
|
},
|
{
|
date: '2016-05-04',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄',
|
},
|
{
|
date: '2016-05-01',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄',
|
},
|
{
|
date: '2016-05-03',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄',
|
},
|
],
|
dialogTableVisible: false,
|
dialogFormVisible: false,
|
form: {
|
name: '',
|
region: '',
|
date1: '',
|
date2: '',
|
delivery: false,
|
type: [],
|
resource: '',
|
desc: '',
|
},
|
formLabelWidth: '120px',
|
base: `
|
<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
|
|
<el-dialog
|
title="提示"
|
:visible.sync="dialogVisible"
|
width="30%"
|
:before-close="handleClose">
|
<span>这是一段信息</span>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<script>
|
export default {
|
data() {
|
return {
|
dialogVisible: false
|
};
|
},
|
methods: {
|
handleClose(done) {
|
this.$confirm('确认关闭?')
|
.then(_ => {
|
done();
|
})
|
.catch(_ => {});
|
}
|
}
|
};
|
<\/script>`,
|
diy: `<!-- Table -->
|
<el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>
|
|
<el-dialog title="收货地址" :visible.sync="dialogTableVisible">
|
<el-table :data="gridData">
|
<el-table-column property="date" label="日期" width="150"></el-table-column>
|
<el-table-column property="name" label="姓名" width="200"></el-table-column>
|
<el-table-column property="address" label="地址"></el-table-column>
|
</el-table>
|
</el-dialog>
|
|
<!-- Form -->
|
<el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button>
|
|
<el-dialog title="收货地址" :visible.sync="dialogFormVisible">
|
<el-form :model="form">
|
<el-form-item label="活动名称" :label-width="formLabelWidth">
|
<el-input v-model="form.name" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="活动区域" :label-width="formLabelWidth">
|
<el-select v-model="form.region" placeholder="请选择活动区域">
|
<el-option label="区域一" value="shanghai"></el-option>
|
<el-option label="区域二" value="beijing"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
|
</div>
|
</el-dialog>
|
|
<script>
|
export default {
|
data() {
|
return {
|
gridData: [{
|
date: '2016-05-02',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄'
|
}, {
|
date: '2016-05-04',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄'
|
}, {
|
date: '2016-05-01',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄'
|
}, {
|
date: '2016-05-03',
|
name: '王小虎',
|
address: '上海市普陀区金沙江路 1518 弄'
|
}],
|
dialogTableVisible: false,
|
dialogFormVisible: false,
|
form: {
|
name: '',
|
region: '',
|
date1: '',
|
date2: '',
|
delivery: false,
|
type: [],
|
resource: '',
|
desc: ''
|
},
|
formLabelWidth: '120px'
|
};
|
}
|
};
|
<\/script>`,
|
appendToBody: `
|
<template>
|
<el-button type="text" @click="outerVisible = true">点击打开外层 Dialog</el-button>
|
|
<el-dialog title="外层 Dialog" :visible.sync="outerVisible">
|
<el-dialog
|
width="30%"
|
title="内层 Dialog"
|
:visible.sync="innerVisible"
|
append-to-body>
|
</el-dialog>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="outerVisible = false">取 消</el-button>
|
<el-button type="primary" @click="innerVisible = true">打开内层 Dialog</el-button>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
outerVisible: false,
|
innerVisible: false
|
};
|
}
|
}
|
<\/script>`,
|
center: `<el-button type="text" @click="centerDialogVisible = true">点击打开 Dialog</el-button>
|
|
<el-dialog
|
title="提示"
|
:visible.sync="centerDialogVisible"
|
width="30%"
|
center>
|
<span>需要注意的是内容是默认不居中的</span>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="centerDialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<script>
|
export default {
|
data() {
|
return {
|
centerDialogVisible: false
|
};
|
}
|
};
|
<\/script>`,
|
}
|
},
|
// 计算属性设置
|
computed: {},
|
// 数据变更监听
|
watch: {},
|
mounted() {
|
this.init()
|
},
|
methods: {
|
handleClose(done) {
|
this.$confirm('确认关闭?')
|
.then(_ => {
|
done()
|
})
|
.catch(_ => {})
|
},
|
// 执行获取数据等初始化动作
|
init() {},
|
},
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import '../../assets/style/container';
|
|
.demonstration {
|
display: block;
|
color: #8492a6;
|
font-size: 14px;
|
margin-bottom: 20px;
|
}
|
|
.dialogForm :v-deep(.el-select) {
|
width: 100%;
|
}
|
</style>
|