小小布鲁伊 2021-01-10 22:52 采纳率: 100%
浏览 1973
已结题

elementui<el-tabs>多个tab无法正确获取动态数据

<div class="add-form">
                <el-dialog title="编辑角色" :visible.sync="dialogFormVisible4Edit">
                    <template>
                        <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
                            <el-tab-pane label="基本信息" name="first">
                                <el-form label-position="right" label-width="100px">
                                    <el-row>
                                        <el-col :span="12">
                                            <el-form-item label="角色名称">
                                                <el-input v-model="formData.name"/>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                    <el-row>
                                        <el-col :span="24">
                                            <el-form-item label="关键字">
                                                <el-input v-model="formData.keyWord" type="textarea"></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                    <el-row>
                                        <el-col :span="24">
                                            <el-form-item label="说明">
                                                <el-input v-model="formData.description" type="textarea"></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                </el-form>
                            </el-tab-pane>
                            <el-tab-pane label="权限信息" name="second">
                                <div class="checkScrol">
                                    <table class="datatable">
                                        <thead>
                                        <tr>
                                            <th>选择</th>
                                            <th>权限名</th>
                                            <th>关键字</th>
                                            <th>说明</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        <tr v-for="c in permissionData">
                                            <td>
                                                <input :id="c.id" v-model="permissions" type="checkbox" :value="c.id">
                                            </td>
                                            <td><label :for="c.id">{{c.name}}</label></td>
                                            <td><label :for="c.id">{{c.keyWord}}</label></td>
                                            <td><label :for="c.id">{{c.description}}</label></td>
                                        </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </el-tab-pane>
                            <el-tab-pane  label="菜单信息" name="third">
                                <div class="checkScrol">
                                    <table class="datatable">
                                        <thead>
                                        <tr>
                                            <th>选择</th>
                                            <th>菜单名</th>
                                            <th>跳转页面</th>
                                            <th>path</th>
                                            <th>同级菜单中的优先级</th>
                                            <th>父级菜单</th>
                                            <th>菜单等级</th>
                                            <th>说明</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        <tr v-for="c in menuDate">
                                            <td>
                                                <input :id="c.id" v-model="menus" type="checkbox" :value="c.id">
                                            </td>
                                            <td><label :for="c.id">{{c.name}}</label></td>
                                            <td><label :for="c.id">{{c.linkUrl}}</label></td>
                                            <td><label :for="c.id">{{c.path}}</label></td>
                                            <td><label :for="c.id">{{c.priority}}</label></td>
                                            <td><label :for="c.id">{{c.parentMenuId}}</label></td>
                                            <td><label :for="c.id">{{c.level}}</label></td>
                                            <td><label :for="c.id">{{c.description}}</label></td>
                                        </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </el-tab-pane>
                        </el-tabs>
                    </template>
                    <div slot="footer" class="dialog-footer">
                        <el-button @click="dialogFormVisible4Edit = false">取消</el-button>
                        <el-button type="primary" @click="handleEdit()">确定</el-button>
                    </div>
                </el-dialog>
            </div>

请求

let vue = new Vue({
        el: '#app',
        data: {
            activeName: 'first',//添加/编辑窗口Tab标签名称
            dataList: [],//列表数据
            formData: {},//表单数据
            permissionData: [],//新增和编辑表单中对应的权限信息列表数据
            menuDate: [],//新增和编辑表单中对应的菜单信息列表数据
            permissions: [],//新增和编辑表单中权限对应的复选框,基于双向绑定可以进行回显和数据提交
            menus: [],//新增和编辑表单中菜单对应的复选框,基于双向绑定可以进行回显和数据提交
            dialogFormVisible: false,//控制添加窗口显示/隐藏
            dialogFormVisible4Edit: false//控制编辑窗口显示/隐藏
        },
        created() {
            this.findPage();
        },
        methods: {
            // 弹出编辑窗口
            handleUpdate(row) {
                this.dialogFormVisible4Edit = true;
                this.activeName = "first";
                let id = row.id;
                //获取权限页面的权限列表
                axios.get(`/permission/findAllList.do`).then(response => {
                    if (response.data.flag) {//查询成功
                        this.permissionData = response.data.data;
                        //获取角色中包含的权限的列表,用于页面复选框回显List<int>
                        axios.get(`/roles/findPermissionCheckedList.do?id=${row.id}`).then((response) => {//获取角色中已选择的权限的列表
                            this.permissions = response.data;
                        });
                        console.log(response)
                    } else {
                        this.$message.error(response.data.message);
                    }
                });
                //获取菜单页面的菜单列表
                axios.get(`/menu/findAllList.do`).then(response => {
                    if (response.data.flag) {//查询成功
                        this.menuDate = response.data.data;
                        //获取角色中包含的权限的列表,用于页面复选框回显List<int>
                        axios.get(`/roles/findMenuCheckedList.do?id=${row.id}`).then((response) => {//获取角色中已选择的权限的列表
                            this.permissions = response.data;//上表面的方法也可以啊????????????????
                        });

                    } else {
                        this.$message.error(response.data.message);
                    }
                });

                //获取角色信息,页面回显旧数据
                axios.get(`/roles/findRoleById.do?id=${id}`).then(response => {
                    if (response.data.flag) {//查询成功
                        this.formData = response.data.data;
                    } else {
                        this.$message.error(response.data.message)
                    }
                })

            }
        }
    })

结果

权限信息中三个选中信息时菜单信息的结果,没办法正常显示

  • 写回答

7条回答 默认 最新

  • zhshchilss 2021-01-11 09:31
    关注

    权限信息中三个选中信息时菜单信息的结果,没办法正常显示

    这句话都不明白什么意思。

    角色的权限信息和菜单信息什么关系,交互逻辑是什么?
    你选中中间的,期望出现什么,没有出现什么?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料