老师我在看您写的弹窗代码中有看到一个 的这个节点,但是我是在是不知道它是做什么用的。
老师,这个我有点费解,按钮是弹窗的一部分吧?当这个按钮被点击后就触发了span节点绑定的事件,事件会把是否显示visible这个值置为true这样整个弹窗就跳出来了,但是默认的时候这个弹窗是不显示的,照说按钮是弹窗的一部分的话,那这个按钮为什么会显示在界面上啊?
还有就是除了按照老师您这样将一个弹窗组件化,还有什么其他的办法可以组件化的吗?
我有个需求就是:当我判断表中的列对象在某个状态的时候跳出弹窗;当它的状态不满足时需要跳到其他的路由。能给个例子吗?
我自己写的代码如下,但是不知道这样合适吗?
<template>
<span style="padding: 0 10px">
<el-dialog :title="title" :visible.sync="visible" :modal="false">
<el-form
:model="formData"
label-position="left"
label-width="70px"
style="width: 400px; margin-left:50px;"
>
<el-form-item label="单位数">
<el-input v-model="formData.title" />
</el-form-item>
<el-form-item label="件数">
<el-input v-model="formData.title" />
</el-form-item>
<el-form-item v-if="data.status" label="生产日期">
<el-date-picker
v-model="formData.productDate"
type="date"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="visible = false">
确定
</el-button>
</div>
</el-dialog>
<span @click="handleButtonClick">
<slot />
</span>
</span>
</template>
<script>
export default {
props: {
title: {
type: String,
default: ''
},
data: {
type: Object,
default() {
return {}
}
}
},
data() {
return {
visible: false,
formData: {
productDate: ''
}
}
},
created() {
this.formData = Object.assign({}, this.data) // copy object
},
methods: {
handleButtonClick() {
if (this.data.status) { // true 表示不需要打印合格证 跳出弹窗
this.visible = true
} else {
this.$router.push('/srm/orderSelection')
}
}
}
}
</script>
<style lang="scss" scoped>
</style>
基于Element的中后台课程,一套中小型企业通用的后台管理系统
了解课程