鸿蒙js开发7 鸿蒙分组列表和弹出Menu菜单

想了解更多内容,鸿蒙鸿蒙和弹请访问:

和华为官方合作共建的分组鸿蒙技术社区

https://harmonyos.51cto.com/#zz

任正非:现在华为必须全面靠自己打造产品,要敢于将鸿蒙推入竞争,列表星光不问赶路人,出Mu菜时光不负有心人。

1.鸿蒙视图效果

点击menu菜单一项,服务器租用鸿蒙鸿蒙和弹跳转页面,分组底部菜单栏和轮播布局和轮播图

2.js业务数据和事件

import prompt from @system.prompt; import router from @system.router; export default {      data: {          title: World,列表         fundatas:[{ "fathermenu":"员工管理","childmenu":[{ "icon":"/common/emp.png","text":"查询员工"},{ "icon":"/common/emp.png","text":"添加员工"},{ "icon":"/common/emp.png","text":"删除员工"},{ "icon":"/common/emp.png","text":"更新员工"}]},                   { "fathermenu":"客户服务","childmenu":[{ "icon":"/common/customer.png","text":"一卡通兑"},{ "icon":"/common/customer.png","text":"银联服务"},{ "icon":"/common/customer.png","text":"票据业务"}]},                   { "fathermenu":"内部管理","childmenu":[{ "icon":"","text":""},{ "icon":"","text":""},{ "icon":"","text":""}]},                   { "fathermenu":"合同管理","childmenu":[{ "icon":"","text":""},{ "icon":"","text":""},{ "icon":"","text":""}]},                   { "fathermenu":"资产管理","childmenu":[{ "icon":"","text":""},{ "icon":"","text":""},{ "icon":"","text":""}]},                   { "fathermenu":"绩效管理","childmenu":[{ "icon":"","text":""},{ "icon":"","text":""},{ "icon":"","text":""}]},         ]     },     clickitem(itemvalue)     {          if(itemvalue=="查询员工")         {              this.$element("menu").show({                  x: 360,                 y: 120             });             //this.$element("menu").show();         }         prompt.showToast({              message:"点击了菜单"+itemvalue         })     },     menuSelected(e) {          prompt.showToast({              message:"你选择查询的值是:"+e.value         })         router.push({              uri:"pages/index/index"         })     } } 

 3.页面视图代码

<div class="container">     <list  class="listview">        <block  for="{ { fundatas}}">            <list-item-group  class="groupview">                <list-item class="listitem">                    <text  class="tv1">{ { $item.fathermenu}}</text>                </list-item>                <block  for="{ {  (index,value)  in $item.childmenu}}">                  <list-item class="listitemone" onclick="clickitem({ { value.text}})">                     <image  class="cimg"  src="{ { value.icon}}"></image>                     <text class="tv2">{ { value.text}}</text>                  </list-item>                </block>            </list-item-group>        </block>     </list>     <menu id="menu"  title="员工性别"  onselected="menuSelected">         <option value="男性员工">             男性员工         </option>         <option value="女性员工">             女性员工         </option>     </menu> </div> 

 4.样式代码

.container {      width: 100%;     height: 1200px; } .listview{      width: 100%;     height: 100%; } .groupview{      width: 100%;     height: 46%;     border-bottom: 5px solid  #DCDCDC; } .listitem{      width: 100%;     height: 20%;     display: flex;     justify-content: space-around; } .listitemone {      width: 50%;     height: 6%;     border-bottom: 1px  solid  #DCDCDC;     display: flex;     justify-content: space-around; } .cimg{      width: 40px;     height: 40px; } .tv1{      font-size: 35px;     font-weight: bold;     font-family: sans-serif;     letter-spacing: 10px; } .tv2{      font-size: 34px;     font-weight: bold;     font-family: sans-serif; } 

 5.跳转页面后的视图层

<div  class="pageview">     <swiper  class="swiperview"   id="swiper" index="0" >         <div class ="sw1">             <swiper class="swiper1" id="swiper1" autoplay="true" index="0" indicator="true"  loop="true" digital="false">                 <div class = "swiperContent1" >                     <text class = "text" value="轮播图1"></text>                 </div>                 <div class = "swiperContent1">                     <text class = "text" value="轮播图2"></text>                 </div>                 <div class = "swiperContent1">                     <text class = "text" value="轮播图3"></text>                 </div>             </swiper>             <swiper class="swiper2" loop="true" vertical="true" indicator="false" autoplay="true">                      <div class="lineview">                        <text>1.鸿蒙</text>                      </div>                      <div class="lineview">                          <text>2.苹果</text>                      </div>                      <div class="lineview">                          <text>3.安卓</text>                      </div>             </swiper>         </div>         <div class ="sw2">             <list class="todo-wraper">                 <list-item for="{ { todolist}}" class="todo-item">                     <text class="todo-title">{ { $item.title}}</text>                     <text class="todo-title">{ { $item.date}}</text>                 </list-item>             </list>         </div>         <div class ="sw3">             <tabs class = "tabs" index="0" vertical="false" onchange="change">                 <tab-bar class="tab-bar" mode="fixed">                     <text class="tab-text">推荐</text>                     <text class="tab-text">视频</text>                     <text class="tab-text">本地</text>                     <text class="tab-text">内容</text>                 </tab-bar>                 <tab-content class="tabcontent" scrollable="true">                     <div class="item-content" >                         <div class="currentview">                                 <div  class="leftview"><text class="infot1">{ { weatherInfo.city}}</text></div>                                  <div class="rightview1">                                     <div  class="cell"><text>{ { winfo.info}}</text></div>                                      <div class="cell"><text>{ { winfo.direct}}</text></div>                                      <div class="cell"><text>{ { winfo.power}}</text></div>                                  </div>                         </div>                         <div class="nextview">                         </div>                     </div>                     <div class="item-content" >                         <text class="item-title">第二个</text>                     </div>                     <div class="item-content" >                         <text class="item-title">第三个</text>                     </div>                     <div class="item-content" >                         <text class="item-title">第四个</text>                     </div>                 </tab-content>             </tabs>         </div>         <div class ="sw4">             <text>第四幅</text>         </div>     </swiper>     <div  class="bottommenu">         <div  for="{ { menus}}"  class="menubox"  onclick="changemenu({ { $idx}})">             <image  src="{ { currentdata==$idx?$item.path:$item.path1}}" class="cimg"></image>            <text  class="menutitle">{ { $item.menu}}</text>         </div>     </div> </div> 

 6.js业务逻辑部分

import   fetch  from @system.fetch; export default {      data: {          weatherInfo:{ },         winfo:{ },         nextInfo:[],         currentdata:0,         title: "",         menus:[{ menu:"首页","path":"./common/ones.png","path1":"./common/oneu.png"},                { menu:"分类","path":"./common/cs.png","path1":"./common/cu.png"},                { menu:"内容","path":"./common/cons.png","path1":"./common/conu.png"},                { menu:"我的亿华云","path":"./common/mys.png","path1":"./common/myu.png"}],        todolist: [{        title: 刷leetcode,       date: 2020-06-25 10:00:00,     }, {        title: 看电影,       date: 2020-06-27 20:00:00,     },                   {                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },                   {                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },                   {                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },                   {                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   },{                        title: 刷leetcode,                       date: 2020-06-25 10:00:00,                   }, {                        title: 看电影,                       date: 2020-06-27 20:00:00,                   }        ]     },     onInit() {         // this.title = this.$t(strings.world);         let  that  =this;         fetch.fetch({              url:"http://apis.juhe.cn/simpleWeather/query?city=南京&key=3dc98f3428c44424088015738a070554",             responseType:"json",             success:function(resp)             {                  let  currentValue=JSON.parse(resp.data);                 that.weatherInfo=currentValue.result;                 that.winfo=currentValue.result.realtime;                // that.nextInfo=currentValue.future;             }         })     },     changemenu(index)     {          this.currentdata=index;         this.$element(swiper).swipeTo({ index: index});     } } 

 7.样式代码

.pageview{      width: 100%;     height: 1600px;     background-color: azure; } .bottommenu{      width: 100%;     height: 140px;     background-color: snow;     border-top: 10px  solid  black;     z-index:999;     position: fixed;     left: 0px;     bottom: 0px;     display: flex;     justify-content: center;     align-items: center; } .menubox{      width: 22%;     height: 90%;     /**border:9px  solid  #ccff6a;**/     margin-left: 20px;     display: flex;     flex-direction: column;     justify-content: center;     align-items: center; } .menutitle{      color: black;     font-weight: bold;     letter-spacing: 4px; } .cimg{      width: 40px;     height: 40px; } .swiperview{      width: 100%;     height: 100%; } .sw1{      width: 100%;     height: 100%;     display: flex;     flex-direction: column; } .sw2{      width: 100%;     height: 100%;     background-color: cornflowerblue; } .sw3{      width: 100%;     height: 100%;     background-color: #ccff6a; } .sw4{      width: 100%;     height: 100%;     background-color: #009865; } .swiper1 {      width: 100%;     height: 330px;     border: 1px solid #000000;     indicator-color: #cf2411;     indicator-size: 14px;     indicator-bottom: 20px;     indicator-right: 30px;     margin-top: 100px; } .swiperContent1 {      width: 800px;     height: 100%;     justify-content: center; } .button {      width: 70%;     margin: 10px; } .text {      font-size: 40px; } .swiper2{      width: 100%;     height: 100px;     background-color: powderblue; } .lineview{      width: 100%;     height: 100%; } .todo-wraper {      width: 100%;     height: 100%; } .todo-item {      width: 100%;     height: 80px;     flex-direction: row;     display: flex; } .todo-title {      width: 454px;     height: 40px;     text-align: center; } .tabs {      width: 100%; } .tab-bar {      margin: 10px;     height: 60px;     border-color: #007dff;     border-width: 1px; } .tab-text {      width: 300px;     text-align: center; } .tabcontent {      width: 100%;     height: 80%;     justify-content: center; } .item-content {      height: 100%;     justify-content: center;     display: flex;     flex-direction: column; } .item-title {      font-size: 60px; } .currentview{      width: 100%;     height: 30%;     border-bottom: 4px  solid  peru;     display: flex; } .nextview{      width: 100%;     height: 70%; } .leftview{      width: 30%;     height: 100%;     border-right: 2px  solid  paleturquoise;     border-bottom: 2px  solid  paleturquoise;     display: flex;     justify-content: center;     align-items: center; } .rightview1{      width: 70%;     height: 100%;     display: flex;     flex-direction: column; } .infot1{      font-family: 楷体;     font-size: 80px;     color: snow;     font-weight: bold;     letter-spacing: 5px; } .cell{      width: 100%;     height: 30%;     border:1px  solid  red; } 

 ©著作权归作者和HarmonyOS技术社区共同所有,如需转载,出Mu菜请注明出处,鸿蒙鸿蒙和弹否则将追究法律责任.

想了解更多内容,分组请访问:

和华为官方合作共建的亿华云计算列表鸿蒙技术社区

https://harmonyos.51cto.com/#zz

应用开发
上一篇:选择数据中心位置时需要考虑的五个因素
下一篇:如何基于Nginx搭建流媒体服务器