在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
效果图 不知道是公司电脑比较拉,还是软件问题导致录制出来的动态图很卡,但是在实际操作并不会卡。 代码: 页面显示代码: 主要代码在于 整个代码流程大致如下: // 使用 map 结构的方式保存翻译列表 this.WebsiteLangMap.set(id,response.rows) 到了这一步还存在一个问题。 this.websiteLangTableKey = !this.websiteLangTableKey; 以下是核心代码: <el-table v-loading="loading" :data="websiteList" @selection-change="handleSelectionChange" ref="table" key="websiteTable" row-key="id" style="width: 100%; maigin-bottom: 20px;" border > <el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column :label="td('主键')" align="center" prop="id" /> --> <el-table-column :label="td('上级导航')" align="center" prop="parentId" /> <el-table-column :label="td('导航名称')" align="center" prop="barName" > <template slot-scope="scope" > <el-link type="primary" :underline="false" @click="toogleExpand(scope.row)" > {{scope.row.barName}} </el-link> </template> </el-table-column> <el-table-column :label="td('是否链接')" align="center" prop="isLink" /> <el-table-column :label="td('链接地址')" align="center" prop="url" /> <el-table-column :label="td('创建日期')" align="center" prop="createTime" /> <el-table-column :label="td('创建用户')" align="center" prop="createBy" /> <el-table-column :label="td('更新时间')" align="center" prop="updateTime" /> <el-table-column :label="td('更新用户')" align="center" prop="updateBy" /> <el-table-column :label="td('备注')" align="center" prop="remark" /> <el-table-column :label="td('操作')" align="center" width="130" class-name="small-padding fixed-width" fixed="right"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cms:website:edit']" >{{td("修改")}} </el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cms:website:remove']" >{{td("删除")}}</el-button> </template> </el-table-column> <el-table-column type="expand" width="1" > <template slot-scope="scope"> <el-table v-loading="loading" style="width: 100%" row-key="langId" :key="websiteLangTableKey" :data="WebsiteLangMap.get(scope.row.id)" class="table-in-table" > <!-- <el-table-column :label="td('ID主键')" align="center" prop="langId" /> --> <!-- <el-table-column :label="td('导航ID')" align="center" prop="webId" /> --> <el-table-column :label="td('语言编号')" align="center" prop="langCode" /> <el-table-column :label="td('语言名称')" align="center" prop="langName" /> <el-table-column :label="td('中文')" align="center" prop="langCn" /> <el-table-column :label="td('语言翻译')" align="center" prop="langTranslate" /> <el-table-column :label="td('备注')" align="center" prop="remark" /> <el-table-column :label="td('操作')" align="center" width="130" class-name="small-padding fixed-width" fixed="right"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdateLang(scope.row)" v-hasPermi="['cms:websiteLang:edit']" >{{td("修改")}} </el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDeleteLang(scope.row)" v-hasPermi="['cms:websiteLang:remove']" >{{td("删除")}}</el-button> </template> </el-table-column> </el-table> </template> </el-table-column> </el-table> // 内嵌 table toogleExpand(row) { this.getListLang(row.id); let $table = this.$refs.table; $table.toggleRowExpansion(row) }, /** 查询导航翻译列表 */ getListLang(id) { // 根据 导航ID 获取翻译列表 this.LangQueryParams.webId = id; listWebsiteLang(this.LangQueryParams).then(response => { // 使用 map 结构的方式保存翻译列表 this.WebsiteLangMap.set(id,response.rows) this.websiteLangTableKey = !this.websiteLangTableKey; this.resetLang(); }); }, <style lang="scss" scoped> .app-container { ::v-deep { .el-table th { background: #ddeeff; } .el-table__expanded-cell { border-bottom: 0px; border-right: 0px; padding: 0px 0px 0px 47px; } } .table-in-table { border-top: 0px; } } </style> 到此这篇关于vue+elementUI实现内嵌table的方法示例的文章就介绍到这了,更多相关vue element内嵌table内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论