飞道的博客

微信小程序-会议OA项目03

315人阅读  评论(0)

目录

1.Flex布局简介

        1.1 什么是flex布局

        1.2 flex属性

2.轮播图--组件的使用

3.会议OA项目-首页


1.Flex布局简介

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性

        1.1 什么是flex布局

1) Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

2) 任何一个容器都可以指定为Flex布局。

3) display: ‘flex’

 

 

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

 

        1.2 flex属性

  • flex-direction 主轴的方向 默认为row

  • flex-wrap 如果一条轴线排不下,如何换行

  • flex-flow 是flex-direction属性和flex-wrap属性的简写形式

  • justify-content 定义了项目在主轴上的对齐方式

  • align-items 定义项目在交叉轴上如何对齐

  • align-content 属性定义了多根轴线的对齐方式

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

学习地址:

Flex 布局语法教程 | 菜鸟教程网页布局(layout)是CSS的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex布局将成为未来布..http://www.runoob.com/w3cnote/flex-grammar.html

 

 

2.轮播图--组件的使用

 点击在开发者工具中查看效果

选择导入即可: 

 

拷取其中需要的代码并可进行修改: 

 

 index.wxml:


  
  1. <view>
  2. <swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f">
  3. <block wx:for="{{imgSrcs}}" wx:key="text">
  4. <swiper-item>
  5. <view>
  6. <image src="{{item.img}}" class="swiper-item" />
  7. </view>
  8. </swiper-item>
  9. </block>
  10. </swiper>
  11. </view>

在没有后台的情况下会使用mokcjs:

新建一个接口:

json数据包:


  
  1. {
  2. "data": {
  3. "images":[
  4. {
  5. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner1.png",
  6. "text": "1"
  7. },
  8. {
  9. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner2.png",
  10. "text": "2"
  11. },
  12. {
  13. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner3.png",
  14. "text": "3"
  15. },
  16. {
  17. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner4.png",
  18. "text": "4"
  19. },
  20. {
  21. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner5.png",
  22. "text": "5"
  23. },
  24. {
  25. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner6.png",
  26. "text": "6"
  27. }
  28. ]
  29. },
  30. "statusCode": "200",
  31. "header": {
  32. "content-type": "applicaiton/json;charset=utf-8"
  33. }
  34. }

 index/index.js界面


  
  1. // pages/index/index.js
  2. const api = require( "../../config/app")
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. imgSrcs:[] //需要调用:http://localhost:8080/demo/wx/swiperImgs接口地主数据
  9. },
  10. /**
  11. * 生命周期函数--监听页面加载
  12. */
  13. onLoad( options) {
  14. this. loadSwiperImgs();
  15. },
  16. /**
  17. * 生命周期函数--监听页面初次渲染完成
  18. */
  19. onReady( ) {
  20. },
  21. /**
  22. * 生命周期函数--监听页面显示
  23. */
  24. onShow( ) {
  25. },
  26. /**
  27. * 生命周期函数--监听页面隐藏
  28. */
  29. onHide( ) {
  30. },
  31. /**
  32. * 生命周期函数--监听页面卸载
  33. */
  34. onUnload( ) {
  35. },
  36. /**
  37. * 页面相关事件处理函数--监听用户下拉动作
  38. */
  39. onPullDownRefresh( ) {
  40. },
  41. /**
  42. * 页面上拉触底事件的处理函数
  43. */
  44. onReachBottom( ) {
  45. },
  46. /**
  47. * 用户点击右上角分享
  48. */
  49. onShareAppMessage( ) {
  50. },
  51. loadSwiperImgs( ){
  52. let that= this;
  53. wx. request({
  54. url: api. SwiperImgs,
  55. dataType: 'json',
  56. success( res) {
  57. console. log(res)
  58. that. setData({
  59. imgSrcs:res. data. images
  60. })
  61. }
  62. })
  63. }
  64. })

轮播图效果:

3.会议OA项目-首页

 


  
  1. "list": [{
  2. "pagePath": "pages/index/index",
  3. "text": "首页",
  4. "iconPath": "/static/tabBar/coding.png",
  5. "selectedIconPath": "/static/tabBar/coding-active.png"
  6. },
  7. {
  8. "pagePath": "pages/meeting/list/list",
  9. "iconPath": "/static/tabBar/sdk.png",
  10. "selectedIconPath": "/static/tabBar/sdk-active.png",
  11. "text": "会议"
  12. },
  13. {
  14. "pagePath": "pages/vote/list/list",
  15. "iconPath": "/static/tabBar/template.png",
  16. "selectedIconPath": "/static/tabBar/template-active.png",
  17. "text": "投票"
  18. },
  19. {
  20. "pagePath": "pages/ucenter/index/index",
  21. "iconPath": "/static/tabBar/component.png",
  22. "selectedIconPath": "/static/tabBar/component-active.png",
  23. "text": "设置"
  24. }]

 

copy入static文件: 

 

 static文件:

        persons文件:

 

tabBar文件:

 

看一下基础的布局:

弹性布局:不会随着屏幕变化而使画面失帧

 


  
  1. <!--pages/vote/list/list.wxml-->
  2. <!-- <text>pages/vote/list/list.wxml</text> -->
  3. <view class="box">
  4. <view>1 </view>
  5. <view>2 </view>
  6. <view>3 </view>
  7. <view>4 </view>
  8. <view>5 </view>
  9. <view>6 </view>
  10. <view>7 </view>
  11. </view>

 


  
  1. /* pages/vote/list/list.wxss */
  2. . box{
  3. height: 750rpx;
  4. width: 750rpx;
  5. background- color: aqua;
  6. display: flex;
  7. }
  8. view{
  9. height: 100rpx;
  10. width: 100rpx;
  11. border: 1px solid rebeccapurple;
  12. }

效果:

 


  
  1. /* pages/vote/list/list.wxss */
  2. . box{
  3. height: 750rpx;
  4. width: 750rpx;
  5. background- color: aqua;
  6. display: flex;
  7. flex- direction: column-reverse; /*竖型排列*/
  8. }
  9. view{
  10. height: 100rpx;
  11. width: 100rpx;
  12. border: 1px solid rebeccapurple;
  13. }

效果:

 其余的效果可以在官网中查找:

 
 

会议信息:

 

index.js:


  
  1. // pages/index/index.js
  2. const api = require( "../../config/app")
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. imgSrcs:[], //需要调用:http://localhost:8080/demo/wx/swiperImgs接口地主数据
  9. lists:[
  10. {
  11. "id": "1",
  12. "image": "/static/persons/1.jpg",
  13. "title": "对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】",
  14. "num": "304",
  15. "state": "进行中",
  16. "starttime": "2022-03-13 00:00:00",
  17. "location": "深圳市·南山区"
  18. },
  19. {
  20. "id": "1",
  21. "image": "/static/persons/2.jpg",
  22. "title": "AI WORLD 2016世界人工智能大会",
  23. "num": "380",
  24. "state": "已结束",
  25. "starttime": "2022-03-15 00:00:00",
  26. "location": "北京市·朝阳区"
  27. },
  28. {
  29. "id": "1",
  30. "image": "/static/persons/3.jpg",
  31. "title": "H100太空商业大会",
  32. "num": "500",
  33. "state": "进行中",
  34. "starttime": "2022-03-13 00:00:00",
  35. "location": "大连市"
  36. },
  37. {
  38. "id": "1",
  39. "image": "/static/persons/4.jpg",
  40. "title": "报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”",
  41. "num": "150",
  42. "state": "已结束",
  43. "starttime": "2022-03-13 00:00:00",
  44. "location": "北京市·朝阳区"
  45. },
  46. {
  47. "id": "1",
  48. "image": "/static/persons/5.jpg",
  49. "title": "新质生活 · 品质时代 2016消费升级创新大会",
  50. "num": "217",
  51. "state": "进行中",
  52. "starttime": "2022-03-13 00:00:00",
  53. "location": "北京市·朝阳区"
  54. }
  55. ]
  56. },
  57. /**
  58. * 生命周期函数--监听页面加载
  59. */
  60. onLoad( options) {
  61. this. loadSwiperImgs();
  62. },
  63. /**
  64. * 生命周期函数--监听页面初次渲染完成
  65. */
  66. onReady( ) {
  67. },
  68. /**
  69. * 生命周期函数--监听页面显示
  70. */
  71. onShow( ) {
  72. },
  73. /**
  74. * 生命周期函数--监听页面隐藏
  75. */
  76. onHide( ) {
  77. },
  78. /**
  79. * 生命周期函数--监听页面卸载
  80. */
  81. onUnload( ) {
  82. },
  83. /**
  84. * 页面相关事件处理函数--监听用户下拉动作
  85. */
  86. onPullDownRefresh( ) {
  87. },
  88. /**
  89. * 页面上拉触底事件的处理函数
  90. */
  91. onReachBottom( ) {
  92. },
  93. /**
  94. * 用户点击右上角分享
  95. */
  96. onShareAppMessage( ) {
  97. },
  98. loadSwiperImgs( ){
  99. let that= this;
  100. wx. request({
  101. url: api. SwiperImgs,
  102. dataType: 'json',
  103. success( res) {
  104. console. log(res)
  105. that. setData({
  106. imgSrcs:res. data. images
  107. })
  108. }
  109. })
  110. }
  111. })

index.wxml:


  
  1. <!--pages/index/index.wxml-->
  2. <!-- <text>pages/index/index.wxml</text> -->
  3. <view>
  4. <swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f">
  5. <block wx:for="{{imgSrcs}}" wx:key="text">
  6. <swiper-item>
  7. <view>
  8. <image src="{{item.img}}" class="swiper-item" />
  9. </view>
  10. </swiper-item>
  11. </block>
  12. </swiper>
  13. </view>
  14. <view class="mobi-title">
  15. <text class="mobi-icon"> </text>
  16. <text>会议信息 </text>
  17. </view>
  18. <block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id">
  19. <view class="list" data-id="{{item.id}}">
  20. <view class="list-img">
  21. <image class="video-img" mode="scaleToFill" src="{{item.image}}"> </image>
  22. </view>
  23. <view class="list-detail">
  24. <view class="list-title"> <text>{{item.title}} </text> </view>
  25. <view class="list-tag">
  26. <view class="state">{{item.state}} </view>
  27. <view class="join"> <text class="list-num">{{item.num}} </text>人报名 </view>
  28. </view>
  29. <view class="list-info"> <text>{{item.location}} </text>| <text>{{item.starttime}} </text> </view>
  30. </view>
  31. </view>
  32. </block>
  33. <view class="section bottom-line">
  34. <text>到底啦 </text>
  35. </view>

 index.wxss:


  
  1. .mobi-title {
  2. font-size: 12pt;
  3. color: #777;
  4. line-height: 110%;
  5. font-weight: bold;
  6. width: 100%;
  7. padding: 15rpx;
  8. background-color: #f3f3f3;
  9. }
  10. .mobi-icon {
  11. padding: 0rpx 3rpx;
  12. border-radius: 3rpx;
  13. background-color: #ff7777;
  14. position: relative;
  15. margin-right: 10rpx;
  16. }
  17. /*list*/
  18. .list {
  19. display: flex;
  20. flex-direction: row;
  21. width: 100%;
  22. padding: 0 20rpx 0 0;
  23. border-top: 1px solid #eeeeee;
  24. background-color: #fff;
  25. margin-bottom: 5rpx;
  26. /* border-radius: 20rpx;
  27. box-shadow: 0px 0px 10px 6px rgba(0,0,0,0.1); */
  28. }
  29. .list-img {
  30. display: flex;
  31. margin: 10rpx 10rpx;
  32. width: 150rpx;
  33. height: 220rpx;
  34. justify-content: center;
  35. align-items: center;
  36. }
  37. .list-img .video-img {
  38. width: 120rpx;
  39. height: 120rpx;
  40. }
  41. .list-detail {
  42. margin: 10rpx 10rpx;
  43. display: flex;
  44. flex-direction: column;
  45. width: 600rpx;
  46. height: 220rpx;
  47. }
  48. .list-title text {
  49. font-size: 11pt;
  50. color: #333;
  51. font-weight: bold;
  52. }
  53. .list-detail .list-tag {
  54. display: flex;
  55. height: 70rpx;
  56. }
  57. .list-tag .state {
  58. font-size: 9pt;
  59. color: #81aaf7;
  60. width: 120rpx;
  61. border: 1px solid #93b9ff;
  62. border-radius: 2px;
  63. margin: 10rpx 0rpx;
  64. display: flex;
  65. justify-content: center;
  66. align-items: center;
  67. }
  68. .list-tag .join {
  69. font-size: 11pt;
  70. color: #bbb;
  71. margin-left: 20rpx;
  72. display: flex;
  73. justify-content: center;
  74. align-items: center;
  75. }
  76. .list-tag .list-num {
  77. font-size: 11pt;
  78. color: #ff6666;
  79. }
  80. .list-info {
  81. font-size: 9pt;
  82. color: #bbb;
  83. margin-top: 20rpx;
  84. }
  85. .bottom-line{
  86. display: flex;
  87. height: 60rpx;
  88. justify-content: center;
  89. align-items: center;
  90. background-color: #f3f3f3;
  91. }
  92. .bottom-line text{
  93. font-size: 9pt;
  94. color: #666;
  95. }

 效果展示:

 


转载:https://blog.csdn.net/weixin_67338832/article/details/128472671
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场