vue 每开一次 dialog 时的检查?

发布于 2022-09-12 04:07:04 字数 1363 浏览 14 评论 0

我的 index.vue 程式,当进去页面第一个读的档案

<template>
    <div>
        <Table></Table>
        <dataDialog></dataDialog>
    </div>
</template>

<script>
import Table from './table'
import dataDialog from './dataDialog'

export default {
    data() {
        return {
            moduleName: 'advertise',
        }
    },
    components: {
        Table,
        dataDialog,
    },
}
</script>

有多笔资料
从 table 透过按钮 click 事件开启 dialog

<el-button
    @click="handleEdit(scope.row)">
</el-button>
    
handleEdit(row) {
      this.$store.commit(`abc/UPDATE_STATE`, 'dataDialogVisible', true)
},

dialog

export default {
    data() {
        return {
            isUnlimited: false,
        }
    },
    created() {
        this.handleCheckboxUnlimited()
    },
    methods: {
        handleCheckboxUnlimited() {
            if (this.endTime.indexOf('3020') !== -1)
                this.isUnlimited = true
        },
    }
}

我想做到的是
每一笔资料都有一个 endTime
每次开启都检查该笔资料的 this.endTime.indexOf('3020') !== -1
若有则 this.isUnlimited = true
只是 created 是只会执行一次,除非刷新
若是这样有啥方式可以每当开启 dialog 时就(执行 handleCheckboxUnlimited()一次)检查该笔资料的 endTime

或是说直接存 Vuex 算了⋯⋯⋯⋯

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清旖 2022-09-19 04:07:04

<dataDialog>这个组件定义一个open方法

open(data){
    this.dialogVisiable = true;
    if (this.endTime.indexOf('3020') !== -1)
        this.isUnlimited = true
}

然后在index.vue每次打开点击打开表格中的按钮执行方法()=>this.$refs.dataDialog.open(data)将这一列的数据传递进去即可

花开柳相依 2022-09-19 04:07:04
export default {
    data() {
        return {
            isUnlimited: false,
        }
    },
    watch: {
        // 这里 visible 可以替换成你代码中的 vuex 属性,用 computed 接受一下,检测改变
        visible(val) {
            val && handleCheckboxUnlimited();
        }
    },
    methods: {
        handleCheckboxUnlimited() {
            if (this.endTime.indexOf('3020') !== -1)
                this.isUnlimited = true
        },
    }
}
薆情海 2022-09-19 04:07:04

isUnlimited 为什么不搞个计算属性

computed: {
   isUnlimited() {
        return this.endTime.indexOf('3020') !== -1
   }
}
 
山人契 2022-09-19 04:07:04

弹窗做 v-if
大约也不在意这点性能消耗吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文