home.vue代码:
<template> <el-container style="min-height: 100vh;"> <el-aside :width="sideWidth + 'px'" style="background-color: rgb(238, 241, 246); box-shadow: 2px 0 6px rgb(0 21 41); height: 100%; overflow: hidden"> <el-menu :default-openeds="['1', '3']" style="min-height: 100%; overflow-x: hidden" background-color="rgb(48, 65, 86)" text-color="#fff" active-text-color="#ffd04b" :collapse-transition="false" :collapse="isCollapse" > <div style="heigth:60px; line-height: 60px; text-align: center"> <img src="../assets/logo.png" alt="" style="width: 20px; position:relative; top: 5px; margin-right: 5px"> <b style="color: white" v-show="logoTextShow">后台管理系统</b> </div> <el-submenu index="1"> <template slot="title"> <i class="el-icon-message"></i> <span slot="title">导航一</span> </template> <el-menu-item-group title="分组2"> <el-menu-item index="1-3">选项3</el-menu-item> </el-menu-item-group> <el-submenu index="1-4"> <template slot="title">选项4</template> <el-menu-item index="1-4-1">选项4-1</el-menu-item> </el-submenu> </el-submenu> <el-submenu index="2"> <template slot="title"> <i class="el-icon-menu"></i> <span slot="title">导航二</span> </template> <el-submenu index="2-4"> <template slot="title">选项4</template> <el-menu-item index="2-4-1">选项4-1</el-menu-item> </el-submenu> </el-submenu> <el-submenu index="3"> <template slot="title"> <i class="el-icon-setting"></i> <span slot="title">导航三</span> </template> <el-submenu index="3-4"> <template slot="title">选项4</template> <el-menu-item index="3-4-1">选项4-1</el-menu-item> </el-submenu> </el-submenu> </el-menu> </el-aside> <el-container> <el-header style="font-size: 12px; border-bottom: 1px solid #ccc; line-height: 60px; display: flex"> <div style="flex:1; font-size: 20px"> <span :class="collapseBtnClass" style="cursor:pointer" @click="collapse"></span> </div> <el-dropdown style="width: 70px; cursor:pointer"> <span>王小虎</span> <i class="el-icon-arrow-down" style="margin-right: 5px"></i> <el-dropdown-menu slot="dropdown"> <el-dropdown-item>个人信息</el-dropdown-item> <el-dropdown-item>退出</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </el-header> <el-main> <div style="padding: 10px 0px"> <!--prefix-icon="el-icon-user",表示加一个搜素图标,设置在头--> <!--suffix-icon="el-icon-tickets"",表示加一个搜素图标,设置在尾--> <!--placeholder="请输入内容"",表示设置一个默认显示提示文字内容--> <el-input style="width: 200px" placeholder="请输入人名" prefix-icon="el-icon-user"></el-input> <el-input style="width: 200px" placeholder="请输入标题" suffix-icon="el-icon-tickets" class="ml-5"></el-input> <el-input style="width: 200px" placeholder="请输入url" prefix-icon="el-icon-link " class="ml-5"></el-input> <el-button class="ml-5" type="primary">搜索</el-button> </div> <!--两个div层之间都用margin,则会自动隔开--> <div style="margin: 10px 0px"> <el-button type="primary">新增 <i class="el-icon-circle-plus-outline"></i></el-button> <el-button type="danger">批量删除 <i class="el-icon-remove-outline"></i></el-button> <el-button type="primary">导入 <i class="el-icon-bottom"></i></el-button> <el-button type="primary">导出 <i class="el-icon-top"></i></el-button> </div> <!--border stripe,表示加上斑马线--> <!--header-row-class-name="headerBg",表示设置表头颜色样式,headerBg为一个style样式类--> <el-table :data="tableData" border stripe :header-cell-class-name="headerBg"> <el-table-column prop="id" label="ID" width="80"></el-table-column> <el-table-column prop="imgpeople" label="人名" width="140"></el-table-column> <el-table-column prop="imgtitle" label="标题" width="120"></el-table-column> <el-table-column prop="spliderimgurl" label="url" width="120"> </el-table-column> <el-table-column lable="操作" width="200" align="center"> <template slot-scope="scope"> <el-button type="success">编辑 <i class="el-icon-edit"></i></el-button> <el-button type="danger">删除 <i class="el-icon-remove-outline"></i></el-button> </template> </el-table-column> </el-table> <div style="padding: 10px 0px"> <!--内边距空一些--><!--current-page,就是当前的页码--> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" :page-sizes="[2, 5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> <!--1.page-sizes一般设置为5,10,15,20--> <!--1.page-size一般设置为10,即每页10个--> </div> </el-main> </el-container> </el-container> </template> <script> // @ is an alias to /src import HelloWorld from '@/components/HelloWorld.vue' export default { name: 'Home', data(){ const item = { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }; return{ tableData: [], total:0, pageNum:1, pageSize:2, collapseBtnClass: 'el-icon-s-fold', isCollapse: false, sideWidth: 200, logoTextShow:true, headerBg:"headerBg" } }, created(){ //请求分页查询数据,用fetch this.load() }, methods:{ collapse(){ //点击搜索按钮触发 this.isCollapse= !this.isCollapse if(this.isCollapse){//收缩 this.sideWidth = 64 this.collapseBtnClass = 'el-icon-s-unfold' this.logoTextShow = false }else{ //展开 this.sideWidth = 200 this.collapseBtnClass = 'el-icon-s-fold' this.logoTextShow = true } }, load(){ //请求分页查询数据,用fetch //fetch第一个参数为url //将出来的结果res,通过res.json的方法,将它转为一个json,然后再使用一个then,打印json fetch("http://192.168.0.104:9090/spider/page?pageNum="+this.pageNum+"&pageSize="+this.pageSize+"&img_people&img_title=王"). then(res=>res.json()).then(res=>{ console.log(res) this.tableData = res.records this.total = res.total}) }, handleSizeChange(pageSize){ console.log(`每页 ${pageSize} 条`); this.pageSize = pageSize this.load() }, handleCurrentChange(pageNum){ console.log(`当前页: ${pageNum}`); this.pageNum = pageNum this.load() } } } </script> <style> .headerBg { background: #eeeeee!important; } </style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构