实战3 ele于tp:菜单操作(增删改)、左侧栏目循环展示

实战3 ele于tp:菜单操作(增删改)、左侧栏目循环展示

一、涉及代码文件

文件:

shop/src/views/Menu.vue (新增:菜单管理 新建/修改/删除方法)shop/src/network/Index.js (更新:菜单管理 新建/修改/删除请求方法)tp6/app/admin/controller/Index.php (更新:菜单管理 新建/修改/删除 方法、左侧栏目 循环展示方法,给 Menu.vue 和 Index.vue 访问提供数据)shop/src/views/Index.vue (更新:左侧栏目 循环展示)

1、Menu.vue文件代码

<template><div><!项目网点我wcqh.cn <el-space wrap style=”margin-bottom:20px;”> <el-button type=”” @click=”search()”>搜索</el-button> </el-space>–><el-spacewrapstyle=marginbottom:20px;><el-buttontype=“” @click=“add()”>添加</el-button><el-buttontype=“” @click=“go项目网点我wcqh.cn_url(1)”v-if=“data.level==2”>上一级</el-button></el-space><el-table :data=“data.table”borderstyle=width:100% @select=“select”><!– <el-table-column align=”right”> </el-table-column> <el-table-column label=”选择” type=”selection” />–><el-table-columnprop=“sort”label=“排序”min-width=“50”/><el-table-columnprop=项目网点我wcqh.cn“mid”label=“ID”/><el-table-columnprop=“label”label=“菜单名”></el-table-column><el-table-columnprop=“type”label=“菜单类型”><!–插槽–><!– scope 相当于循环里的一次数据 foreach ( $data[table] as $v) scope.row 就是相当于是 $v –><template #default=“scope”><spanv-if=“scope.row.type == 0”> 分组</span><spanv-else-if=“scope.row.type == 1”项目网点我wcqh.cn> 内部跳转</span><spanv-else-if=“scope.row.type == 2”> 外部跳转</span></template></el-table-column><el-table-columnprop=“src”label=“链接源”><template #default=“scope”> {{ scope.row.src ? scope.row.src : }}</template></el-table-column><el-table-columnprop=“status”label=“状态”><template #default=“scope”><spanv-if=“sco项目网点我wcqh.cnpe.row.status == 1″> 正常</span><spanv-else-if=“scope.row.status == 2”> 隐藏</span></template></el-table-column><el-table-columnprop=“mid”label=“操作”><template #default=“scope”><!– 可直接返回 <el-button type=”primary” @click=”go_url(scope.row)” v-if=”scope.row.parent_id == 0″>下一级</el-button>–><el-buttontype=“pr项目网点我wcqh.cnimary” @click=“go_url(2,scope.row.mid)”v-if=“scope.row.type == 0”>下一级</el-button><el-buttontype=“warning” @click=“add(scope.row)”>修改</el-button><el-buttontype=“danger” @click=“del(scope.row)”>删除</el-button></template></el-table-column></el-table><el-paginationlayout=“prev, pager, next” :total=“data.tota项目网点我wcqh.cnl” :page-size=“10” @current-change=“fun”/><!– total:总条数 page-size:一页显示多少条 –><!–添加/修改 弹窗–><el-dialogv-model=“data.add_form” :title=“data.title”><el-form :model=“form”label-width=“120px”size=“large”><el-form-itemlabel=“菜单名”><el-inputv-model=“form.label”/></el-form-item><el-form-itemlabel=“所属”><el-selectv项目网点我wcqh.cn-model=“form.parent_id”class=“m-2”placeholder=“Select”size=“large”><el-optionlabel=“顶层”value=“0”/><el-option :label=“item.label” :value=“item.mid”v-for=“(item,index,key) in data.ss”/></el-select></el-form-item><el-form-itemlabel=“菜单类型”><el-selectv-model=“form.type”class=“m-2”placeholder=“Select”size=项目网点我wcqh.cnlarge”><el-optionlabel=“分组” :value=“0”/><el-optionlabel=“内部跳转” :value=“1”/><el-optionlabel=“外部跳转” :value=“2”/></el-select></el-form-item><el-form-itemlabel=“链接源”><el-inputv-model=“form.src”/></el-form-item><el-form-itemlabel=“排序”><el-inputv-model=“form.sort”/></el-form-item><el-form-itemlabel=“状态”><el-项目网点我wcqh.cnselectv-model=“form.status”class=“m-2”placeholder=“Select”size=“large”><el-optionlabel=“开启”value=“1”/><el-optionlabel=“关闭”value=“0”/></el-select></el-form-item></el-form><template #footer><spanclass=“dialog-footer”><el-button @click=“data.add_form = false”>取消</el-button><el-buttontype=“primary” @click=项目网点我wcqh.cn“add_form_json()”> {{ data.title }}</el-button></span></template></el-dialog></div></template><script>import{ reactive } from “vue”;// 引入动态创建import{ useRoute, useRouter } from “vue-router”;//跳转路由import{MenuLists,MenuAdd,MenuDel} from “../network/index”;exportdefault{ setup (){// 展示数据const data = reactive({ table :[],t项目网点我wcqh.cnotal:0, ss :[], search :, add_form :false, title :添加, level :1,// 当前为1, 下面判断上一级下一级按钮是否显示依据});// 展示的请求接口MenuLists().then((e)=>{ data.table = e.data.data.menu; data.total = e.data.data.count;//console.log(data.table); data.ss = e.data.data.ss;})// 选择事件const select =(selection,row)=>{ console.log(selection); console.log(row)项目网点我wcqh.cn;}// 翻页方法const fun =(p)=>{MenuLists({p:p}).then((e)=>{ data.table = e.data.data.menu;})// Index.php接收传值}// 菜单 下一跳转const router = useRouter();/* 这方法可行 const go_url = (e) => { /* router.push({ path: “/index/menu”, query: { mid : e.mid } }) MenuLists({mid:e.mid}).then( (e)=>{ data.table = e.data.data.menu;data.total = e项目网点我wcqh.cn.data.data.count; }) } */const go_url =(e,mid)=>{ let m =0;if( e ==2){ m = mid; data.level =2;}else{ m =0; data.level =1;}MenuLists({mid:m}).then((ee)=>{ data.table = ee.data.data.menu; data.total = ee.data.data.count;//data.ss = e.data.data.ss;})}// 搜索方法const search =()=>{MenuLists({search:data.search}).then((e)=>{ data.tabl项目网点我wcqh.cne= e.data.data.menu; data.total = e.data.data.count; data.ss = e.data.data.ss;})}// 添加 修改// 展开form表单const form = reactive({ mid :0, label:, type:0, src :, sort :0, status:1, parent_id:0,})// 添加方法,如果为真,打开表单// 点击接收传uid数据,若有const add =(e)=>{ console.log(e); data.add_form =true;if(e){ form.mid = e.mid; form.label = e.label; form.paren项目网点我wcqh.cnt_id= e.parent_id; form.type = e.type; form.src = e.src; form.sort = e.sort; form.status = e.status; data.title =修改;}else{ form.mid =0; form.label =; form.parent_id =0; form.type =0; form.src =; form.sort =0; form.status =1; data.title =添加;}}// 确定提交添加的数据const add_form_json =()=>{// 需要把数据提交给php接口// console.log(form);MenuAdd(form).th项目网点我wcqh.cnen((e)=>{// console.log(e); alert(e.data.msg);if(e.data.code ==0){MenuLists().then((e)=>{// 添加成功后自动刷新数据 data.table = e.data.data.menu; data.total = e.data.data.count; console.log(data.table);// 关闭添加表单 data.add_form =false;})}})}// 删除const del =(e)=>{MenuDel({mid:e.mid}).then((res)=>{ alert(res.data.msg);if( res.da项目网点我wcqh.cnta.code ==0){MenuLists().then((e)=>{// 添加成功后自动刷新数据 data.table = e.data.data.menu; data.total = e.data.data.count; data.add_form =false;})}})}// 数据暴露出去return{ data, select, fun, go_url, search, add, form, add_form_json, del,}}}</script>

2、index.js文件代码

import{ request } from “./request.js”;// 跳转至tp项目文件exportfunction login(dat项目网点我wcqh.cna){return request ({ url :“Login/index”, method:“POST”, data})}// 首页左侧菜单exportfunctionIndex(data){return request ({ url :“Index/index”, method:“POST”, data})}// =======================管理员列表===============================// 展示管理员请求exportfunctionUserLists(data){return request ({ url :“Index/UserLists”, method:“POST”,d项目网点我wcqh.cnata})}// 添加数据请求exportfunctionUserAdd(data){return request ({ url :“Index/UserAdd”, method:“POST”, data})}// 修改数据请求exportfunctionUserEdit(data){return request ({ url :“Index/UserEdit”, method:“POST”, data})}// 删除数据请求exportfunctionUserDel(data){return request ({ url :“Index/UserDel”, method:“POST”, data})}// ==========项目网点我wcqh.cn=============管理组列表===============================// 展示管理组请求exportfunctionGroupLists(data){return request ({ url :“Index/GroupLists”, method:“POST”, data})}// 新增管理组请求exportfunctionGroupAdd(data){return request ({ url :“Index/GroupAdd”, method:“post”, data})}// 删除管理组请求exportfunctionGroupDel(data){return request ({u项目网点我wcqh.cnrl:“Index/GroupDel”, method:“post”, data})}// =======================菜单列表===============================// 展示菜单数据请求exportfunctionMenuLists(data){return request ({ url :“Index/MenuLists”, method:“POST”, data})}// 新增菜单请求exportfunctionMenuAdd(data){return request ({ url :“Index/MenuAdd”, method:“post”, data})}// 删除菜项目网点我wcqh.cn单请求exportfunctionMenuDel(data){return request ({ url :“Index/MenuDel”, method:“post”, data})}

3、Index.php文件代码

<?phpnamespace app\admin\controller;use app\BaseController;use think\facade\Db;classIndexextendsBaseController{publicfunction __construct(){// 跨域请求 header(“Access-Control-Allow-Origin:*”);}// 首页左侧菜单 publi项目网点我wcqh.cncfunction index(){// 状态为1的全部展示出来,但是1级和2级的都在一起 $tmp =Db::table(bew_admin_sys_menu)->where(status,1)->order(parent_id)->select()->toArray(); $menu =[];foreach($tmp as $v){if($v[parent_id]==0){// 将 menu为1000或者100的下标 保存到 这个菜单 $menu[ $v[mid]]= $v;}else{// 现在时二级菜单,它的上一级,就是parent_id,找到它自己的parent_id// $v[mid] 一级菜单的下标项目网点我wcqh.cn $v[parent_id] 二级菜单的上级下标 $menu[ $v[parent_id]][son][]= $v;}} echo json_encode([code=>0,msg=>成功,data=> $menu]);}/* public function index() {return <style type=”text/css”>*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underl项目网点我wcqh.cnine; } body{ background: #fff; font-family: “Century Gothic”,”Microsoft yahei”; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style=”padding: 24px 48px;”> <h1>:) </h1><p> ThinkPHP V . \think\facade\项目网点我wcqh.cnApp::version() . <br/><span style=”font-size:30px;”>16载初心不改 – 你值得信赖的PHP框架</span></p><span style=”font-size:25px;”>[ V6.0 版本由 <a href=”https://www.yisu.com/” target=”yisu”>亿速云</a> 独家赞助发布 ]</span></div><script type=”text/javascript” src=”https://e.topthink.com/Public/static/client.js”></script><think 项目网点我wcqh.cnid=”ee9b1aa918103c4fc”></think>; } */// =======================管理员方法===============================// 管理员列表publicfunctionUserLists(){ $p = input(post.p,1); $search = input(post.search,);// 在查询数出来的时候,// $user = Db::table(xpcms_admin)->select()->toArray();// limit方法、pgae方法// count方法统计数据库有多少条数据 $where =[];if(!em项目网点我wcqh.cnpty($search)){ $where1 =[[account,like,%.$search.%]]; $where2 =[[name,like,%.$search.%]]; $where3 =[[phone,like,%.$search.%]]; $where =[$where1,$where2,$where3];} $count =Db::table(bew_admin_user)->whereOr($where)->where(status,<>,2)->count(); $user =Db::table(bew_admin_user)->whereOr($where)->where(status,<>,2项目网点我wcqh.cn)->page($p,5)->select()->toArray();// toArray 数组形式,显示时间戳foreach($user as&$u){ $u[time_add_s]= date(Y-m-d H:i:s,$u[time_add]);} $arr =[count=> $count,user=> $user,];// php接口、只能有一次输出结果值 echo json_encode([code=>0,msg=>成功,data=> $arr]);}// 添加&修改管理员,接收数据publicfunctionUserAdd(){ $post = input(post.); $data =[account=>$项目网点我wcqh.cnpost[account],name=> $post[name],phone=> $post[phone],qq=> $post[qq],sex=> $post[sex],time_last=> time(),];// 查询单条数据 $user =Db::table(bew_admin_user)->where(account,$post[account])->find();if( $post[uid]==0){// 判断查询出来的用户是否存在,若存在就退出,否则新建if(!empty($user)){ echo json_encode([code=>1,msg=>账号已存在]);exit;}// 如果为0.就项目网点我wcqh.cn添加 $data[password]= md5($post[password]); $data[time_add]= time(); $ret =Db::table(bew_admin_user)->insert($data);}else{// 判断查询出来的用户名是否存在,且是不等于查询出来的uid,则修改if(!empty($user)&& $post[uid]!= $user[uid]){ echo json_encode([code=>1,msg=>账号已存在]);exit;}// 如果不为0 就修改if(!empty($post[password])){ $data[password]= md5($pos项目网点我wcqh.cnt[password]);} $ret =Db::table(bew_admin_user)->where(uid, $post[uid])->update($data);}// 添加&修改 后输出结果if( $post[uid]==0){if(empty($ret)){ echo json_encode([code=>1,msg=>添加失败,请重试]);exit;}; echo json_encode([code=>0,msg=>添加成功]);}else{if(empty($ret)){ echo json_encode([code=>1,msg=>修改失败,请重试]);exit;};echo json_项目网点我wcqh.cnencode([code=>0,msg=>修改成功]);}}// 删除方法publicfunctionUserDel(){ $uid = input(post.uid,0);if($uid ==0){ echo json_encode([code=>1,msg=>请选择要删除的账号]);exit;} $del =Db::table(bew_admin_user)->where(uid, $uid)->update([status=>2,time_last=> time(),]);if(empty($del)){ echo json_encode([code=>1,msg=>删除失败,请重试]);exit;}ech项目网点我wcqh.cno json_encode([code=>0,msg=>删除成功]);exit;}// =======================管理组方法===============================// 管理组列表接口publicfunctionGroupLists(){ $p = input(post.p,1); $search = input(post.search,); $where =[];if(!empty($search)){ $where[]=[group_name,like,%.$search.%];} $count =Db::table(bew_admin_user_group)->whe项目网点我wcqh.cnre(status,<>,0)->where($where)->count(); $group =Db::table(bew_admin_user_group)->where(status,<>,0)->where($where)->page($p,3)->select()->toArray();foreach($group as&$u){ $u[time_add_s]= date(Y-m-d H:i:s,$u[time_add]);}// ==================================================================================项目网点我wcqh.cn===============// 新增权限管理// 状态为1的全部展示出来,但是1级和2级的都在一起 $tmp =Db::table(bew_admin_sys_menu)->where(status,1)->order(parent_id)->select()->toArray(); $menu =[];foreach($tmp as $v){if($v[parent_id]==0){// 将 menu为1000或者100的下标 保存到 这个菜单 $menu[ $v[mid]]= $v;}else{// 现在时二级菜单,它的上一级,就是parent_id,找到它自己的parent_id// $v[mid] 项目网点我wcqh.cn一级菜单的下标 $v[parent_id] 二级菜单的上级下标 $menu[ $v[parent_id]][son][]= $v;}}// ================================================================================================= $arr =[count=> $count,group=> $group,menu=> $menu,];// php接口、只能有一次输出结果值 echo json_encode([code=>0,msg=>成功,data=> $arr]);}// 添加管理组publicfunctio项目网点我wcqh.cnnGroupAdd(){ $post = input(post.); $group =Db::table(bew_admin_user_group)->where(group_name, $post[group_name])->find();if($post[group_id]==0){if(!empty($group)){ echo json_encode([code=>1,msg=>添加失败,部门已存在]);exit;} $ret =Db::table(bew_admin_user_group)->insert([group_name=> $post[group_name],status=> $post[sta项目网点我wcqh.cntus],rights=> json_encode($post[checkList]),time_add=> time()]);}else{if(!empty($group)&& $group[group_id]!= $post[group_id]){ echo json_encode([code=>1,msg=>修改失败,部门已存在]);exit;} $ret =Db::table(bew_admin_user_group)->where(group_id,$post[group_id])->update([group_name=> $post[group_name],status=> $post[statu项目网点我wcqh.cns],rights=> json_encode($post[checkList]),time_add=> time(),time_last=> time()]);}if($post[group_id]==0){if(empty($ret)){ echo json_encode([code=>1,msg=>添加失败,请重试]);exit;} echo json_encode([code=>0,msg=>添加成功]);}else{if(empty($ret)){ echo json_encode([code=>1,msg=>修改失败,请重试]);exit;} echo json_encode([code=>0,项目网点我wcqh.cnmsg=>修改成功]);}}// 删除管理组publicfunctionGroupDel(){ $group_id = input(post.group_id,0);if($group_id ==0){ echo json_encode([code=>1,msg=>请选择要删除的管理组]);exit;} $ret =Db::table(bew_admin_user_group)->where(group_id,$group_id)->update([status=>0,time_last=> time()]);if(empty($ret)){ echo json_encode([code=>1,msg=>删除失项目网点我wcqh.cn败,请重试]);exit;} echo json_encode([code=>0,msg=>删除成功]);}// =======================菜单方法===============================/** * 一般分php文件,是根据功能来分 * 用户相关放一个文件,并且统一处理 * 用户个人中心、订单列表、订单详情、充值功能、登录日志等 * 登录、注册放在一个文件,用户的未登录文件,统一处理的 * * @return void */publicfunctionMenuLists(){ $p = input(post.p,1);// 接收数据 mid $mid = input(post.m项目网点我wcqh.cnid,0); $count =Db::table(bew_admin_sys_menu)->where(parent_id,$mid)->count(); $menu =Db::table(bew_admin_sys_menu)->where(parent_id,$mid)->order(sort DESC)->page($p,10)->select()->toArray();//需要把一级菜单获取出来,作为添加时选择项 $ss =Db::table(bew_admin_sys_menu)->where(parent_id,0)->where(type,0)->order(sort DESC)->sele项目网点我wcqh.cnct()->toArray(); $arr =[menu=> $menu,count=> $count,ss=> $ss,]; echo json_encode([code=>0,msg=>成功,data=> $arr]);}// 添加 修改 菜单方法publicfunctionMenuAdd(){ $post = input(post.); $data =[label=> $post[label],parent_id=> $post[parent_id],type=> $post[type],src=> $post[src],sort=> $post[sort],status=> $post[status],time_last项目网点我wcqh.cn=> time(),];if($post[mid]==0){ $ret =Db::table(bew_admin_sys_menu)->insert($data);}else{ $ret =Db::table(bew_admin_sys_menu)->where(mid,$post[mid])->update($data);}if($post[mid]==0){if(empty($ret)){ echo json_encode([code=>1,msg=>添加失败,请重试]);exit;} echo json_encode([code=>0,msg=>添加成功]);}else{if(empty($ret))项目网点我wcqh.cn{ echo json_encode([code=>1,msg=>修改失败,请重试]);exit;} echo json_encode([code=>0,msg=>修改成功]);}}// 删除菜单方法publicfunctionMenuDel(){ $mid = input(post.mid,0);if($mid ==0){ echo json_encode([code=>1,msg=>请选择要删除的菜单]);exit;} $del =Db::table(bew_admin_sys_menu)->where(mid,$mid)->update([status=>2,time_last=> time(),]);if项目网点我wcqh.cn(empty($del)){ echo json_encode([code=>1,msg=>删除失败,请重试]);exit;} echo json_encode([code=>0,msg=>删除菜单成功]);}publicfunction hello($name =ThinkPHP6){returnhello,. $name;}}

4、Index.vue文件代码

<!– 1、新建 /src/views/Index/Index.vue 文件 –><template><el-containerclass=“layout”style=height:100%><asidestyle=height:100%项目网点我wcqh.cn><el-menudefault-active=“-1”class=“el-menu-vertical-demo” :collapse=“isCollapse”active-text-color=“#ffd04b”background-color=“#545c64”text-color=“#fff”><divclass=“logo”><router-linkto=“/index/home”class=“router”><!–<img src=”@/assets/logo.jpg” alt=”logo” />–><h1>phpAdmin</h1></router-link></div><ro项目网点我wcqh.cnuter-linkto=“/index/home”><el-menu-itemindex=“-1”><template #title>首页</template></el-menu-item></router-link><router-linkto=“/index/home”><el-menu-itemindex=“-2”><template #title>个人中心</template></el-menu-item></router-link><templatev-for=“(item,index,key) in menu”><el-sub-menu :index=“item.mid”v-if=“it项目网点我wcqh.cnem.type == 0″><template #title><span>{{ item.label }}</span></template><templatev-for=“(items,indexs,keys) in item.son”><router-link :to=“items.src”v-if=“items.type == 1”><el-menu-item :index=“item.mid + items.mid”><span>{{ items.label }}</span></el-menu-item></router-link><a :href=“items.src”target=“_b项目网点我wcqh.cnlank”v-if=“items.type == 2”><el-menu-item :index=“item.mid + items.mid”><span>{{ items.label }}</span></el-menu-item></a></template></el-sub-menu><router-link :to=“item.src”v-if=“item.type == 1”><el-menu-item :index=“index + item.mid”><template #title>{{ item.label }}</template></el-menu-item></router-l项目网点我wcqh.cnink></template></el-menu><divclass=“flexible” @click=“isCollapse = !isCollapse”><el-iconv-if=“isCollapse”color=“white” :size=“40”><ArrowRight/></el-icon><el-iconv-elsecolor=“white” :size=“40”><ArrowLeft/></el-icon></div></aside><el-container><el-headerstyle=textalign: right; fontsize:20px><divclass=项目网点我wcqh.cntoolbar”><el-dropdownsize=“large”type=“primary”><span>{{name}}<el-iconstyle=marginleft:8px; margintop:1px><ArrowDown/></el-icon></span><template #dropdown><el-dropdown-menu><el-dropdown-item>个人中心</el-dropdown-item><el-dropdown-item>退出</el-dropdown-item></el-dropdown-menu></template></el-dropdown><项目网点我wcqh.cn/div></el-header><el-main><router-view></router-view></el-main></el-container></el-container></template><script>import{ reactive, toRefs } from “vue”;import{Index} from “../network/index”;exportdefault{ name:“App”, setup(){// 获取左侧菜单和用户信息const state = reactive({ isCollapse:false, name :“欧阳克”, menu :[]});Index().then(项目网点我wcqh.cn(e)=>{ state.menu = e.data.data; console.log(state);})return{toRefs(state),};}};</script><style>body,html{ margin :0px0px; height:100%;}a { textdecoration: none;}.layout { backgroundcolor:#f0f2f5;}.layout .elheader { position: relative; backgroundcolor: white; color:var(–eltextcolorprimary);}.layout aside {c项目网点我wcqh.cnolor:var(–eltextcolorprimary); background:#001529;}.layout .elmenu { borderright: none;}.layout .elmain { margin:30px10px; backgroundcolor: white;}.layout .toolbar { display:inlineflex; alignitems: center; justifycontent: center; height:100%; right:20px;}aside { position: relative;}.flexible { backgroundcolor:#项目网点我wcqh.cn002140; textalign: center; position: absolute; bottom:0px; left:0px; right:0px;}.elmenuverticaldemo:not(.elmenucollapse){ width:200px; minheight:100vh;}.layout aside .logo .router { display: flex; justifycontent: spaceevenly; alignitems: center; animationduration:0.1s; overflow: hidden; textdecoration: none;p项目网点我wcqh.cnaddingleft:1px; position: relative; left:2px;}.layout aside .logo .router h1 { marginleft:10px; color: aliceblue; overflow: hidden;}.layout aside .logo .router img { paddingleft:5px; width:48px; height:48px;}</style>

5、运行截图

5.1、菜单添加效果:

5.2、菜单修改效果:

5.3、菜单删除效果:

5.4、左侧菜单循环展示:

6、记录遇到的两个问题

6.1、管理人员列表多页,在第4页进行修改,修改成功后返回第1页,但是项目网点我wcqh.cn页码还是保留在原页码上

6.2、菜单栏目多页,在第二页点击进入下一级(无法进入),会跳回第一页

以上两个问题,应该都是页码问题导致,还需要研究!

批改老师:PHPz 批改状态:合格 老师批语:
作者最新博文
2019-10-08 13:01:48

© 版权声明
THE END
喜欢就支持一下吧
点赞893 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容