会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局

简介: 会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局
  • flex弹性布局
  • 轮播图后台数据获取及组件使用(后台数据交互mockjs)
  • 首页布局

1.flex弹性布局

什么是flex布局?

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

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

3) display: ‘flex’

![](images/3791e575c48b3698be6a94ae1dbff79d.png)

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

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


//oamin\app.json
{
  "pages": [
    "pages/index/index",
    "pages/meeting/list/list",
    "pages/vote/list/list",
    "pages/ucenter/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle": "black"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "/static/tabBar/coding.png",
      "selectedIconPath": "/static/tabBar/coding-active.png"
    },
      {
        "pagePath": "pages/meeting/list/list",
        "iconPath": "/static/tabBar/sdk.png",
        "selectedIconPath": "/static/tabBar/sdk-active.png",
        "text":"会议"
      },
      {
        "pagePath": "pages/vote/list/list",
        "iconPath": "/static/tabBar/template.png",
        "selectedIconPath": "/static/tabBar/template-active.png",
        "text": "投票"
      },
      {
        "pagePath": "pages/ucenter/index/index",
        "iconPath": "/static/tabBar/component.png",
        "selectedIconPath": "/static/tabBar/component-active.png",
        "text": "设置"
      }],
  "style": "v2",
  "sitemapLocation": "sitemap.json"
         }
}
<!-- pages/vote/list/list.wxml
<text>pages/vote/list/list.wxml</text> -->
<view class="box">
<view>1</view>
<view>2</view>
<view>3</view>
<view>4</view>
<view>5</view>
<view>6</view>
<view>7</view>
<view>8</view>
<view>9</view>
<view>10</view>
<view>11</view>
<view>12</view>
</view>
/* pages/vote/list/list.wxss */
.box{
  height: 750rpx;
  width: 750rpx;
  background-color: aquamarine;
  display: flex;
  /* flex-direction: column; */
  /* flex-direction: column-reverse; */
  flex-wrap: wrap;
  /* flex-flow: row; */
  /* flex-flow: row wrap; */
  /* justify-content: flex-end; */
  align-items: flex-end;
}
view{
  height: 100rpx;
  width: 100rpx;
  border: 1px solid red;
}

flex属性

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

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

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

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

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

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


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


### 学习地址(pages/vote/list/list.wxss页面的代码意思在以下链接):

2.轮播图后台数据获取及组件使用(后台数据交互mockjs)

//oamin\config\app.js
// 以下是业务服务器API地址
 // 本机开发API地址
 var WxApiRoot = 'http://localhost:8080/demo/wx/';
 // 测试环境部署api地址
 // var WxApiRoot = 'http://192.168.0.101:8070/demo/wx/';
 // 线上平台api地址
 //var WxApiRoot = 'https://www.oa-mini.com/demo/wx/';
 module.exports = {
   IndexUrl: WxApiRoot + 'home/index', //首页数据接口
   SwiperImgs: WxApiRoot+'swiperImgs', //轮播图
   MettingInfos: WxApiRoot+'meeting/list', //会议信息
 };
// index.js
// 获取应用实例
const app = getApp()
const api=require("../../config/app.js")
Page({
  data: {
    imgSrcs:[]
  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  loadSwiperImgs(){
    let that=this;
    wx.request({
        url: api.SwiperImgs,
        dataType: 'json',
        success(res) {
          console.log(res)
          that.setData({
              imgSrcs:res.data.images
          })
        }
      })
  },
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
    this.loadSwiperImgs();
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
    console.log(e)
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})
<!--index.wxml-->
<view>
  <swiper indicator-dots="{{true}}" autoplay="{{true}}">
        <block wx:for="{{imgSrcs}}" wx:key="*text">
          <swiper-item>
            <image src="{{item.img}}"></image>
          </swiper-item>
        </block>
      </swiper>
</view>

3.首页布局

<!--index.wxml-->
<view>
  <swiper indicator-dots="{{true}}" autoplay="{{true}}">
        <block wx:for="{{imgSrcs}}" wx:key="*text">
          <swiper-item>
            <image src="{{item.img}}"></image>
          </swiper-item>
        </block>
      </swiper>
</view>
<view class="mobi-title">
    <text class="mobi-icon"></text>
    <text>会议信息</text>
</view>
<block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id">
    <view class="list" data-id="{{item.id}}">
        <view class="list-img">
            <image class="video-img" mode="scaleToFill" src="{{item.image}}"></image>
        </view>
        <view class="list-detail">
            <view class="list-title"><text>{{item.title}}</text></view>
            <view class="list-tag">
                <view class="state">{{item.state}}</view>
                <view class="join"><text class="list-num">{{item.num}}</text>人报名</view>
            </view>
            <view class="list-info"><text>{{item.location}}</text>|<text>{{item.starttime}}</text></view>
        </view>
    </view>
</block>
<view class="section bottom-line">
    <text>到底啦</text>
</view>
/**index.wxss**/
.mobi-title{
background-color: lightgray;
padding: 10px;
}
.mobi-icon{
  border:1rpx solid red;
  margin-right: 5px;
}
.mobi-title text{
  font-weight: 700;
  color: #7B7B7B;
}
.list{
display: flex;
align-items: center;
/* background-color: lightblue; */
border-bottom: 3px solid lightgray;
}
.list-img{
padding:0 10px;
}
.video-img{
height: 80px;
width: 80px;
}
.list-detail{
}
.list-title{
font-weight: 700;
margin: 3px 0;
}
.list-tag{
display: flex;
align-items: center;
}
.state{
border:1px solid lightblue;
padding: 3px 6px;
color: lightblue;
margin: 0 5px 10px 0;
}
.join{
color: lightblue;
}
.list-num{
  color: red;
  font-weight: 700;
}
.list-info{
color: lightblue;
font-size: 12px;
}

目录
相关文章
|
SQL 存储 JavaScript
Layui之OA会议增删改查
Layui之OA会议增删改查
288 0
|
开发框架 JavaScript 前端开发
J2EE项目部署与发布(Windows版本)->会议OA单体项目Windows部署,spa前后端分离项目Windows部署
J2EE项目部署与发布(Windows版本)->会议OA单体项目Windows部署,spa前后端分离项目Windows部署
281 0
会议OA项目-其它页面->自定义组件应用,其它界面的布局
会议OA项目-其它页面->自定义组件应用,其它界面的布局
264 0
|
消息中间件 SQL 前端开发
如何开发人事及OA管理系统的考勤管理板块?(附架构图+流程图+代码参考)
考勤系统是企业HR管理的核心模块,涉及打卡、请假、加班、补卡等多项功能,支持多场景打卡方式,并与薪酬、绩效紧密关联。系统需具备数据自动统计、异常提醒、审批流程集成等功能,有效减少人工错误,提升管理效率。
|
存储 缓存 数据库
如何开发人事及OA管理系统的全局基础设置板块?(附架构图+流程图+代码参考)
在企业数字化转型中,人事管理系统(HRM)与办公自动化系统(OA)已成为核心工具。本文详解全局基础设置的三大核心模块:部门岗位基础表、工作日历和工作地点基础表,涵盖功能设计、业务流程、开发技巧与代码示例,助力企业优化系统架构,提升管理效率与扩展性。
|
存储 Java 数据库
如何开发人事及OA管理系统的会议管理板块?(附架构图+流程图+代码参考)
人事及OA系统是现代企业管理的重要工具,整合人力资源与办公流程,提升效率。其会议管理板块可优化会议室预约、冲突检测、审批流程及数据统计,助力企业高效协作。本文详解功能设计、开发技巧与实现方案。
|
JavaScript 安全 前端开发
如何开发人事及OA管理系统的薪酬管理板块?(附架构图+流程图+代码参考)
本文介绍了如何构建一个高效、合规的企业薪酬管理系统,涵盖薪酬模块的重要性、核心功能、系统架构设计、数据模型、开发实现及安全合规要点。内容包括薪酬配置、数据导入、自动化计算、审批发放、工资条生成与安全分发、报表看板、权限审计等关键环节,并提供详细的业务流程、架构图、核心代码示例及落地开发技巧。适用于HR、财务及技术人员快速搭建薪酬管理系统,提升发薪效率,降低人工错误与合规风险。
|
前端开发 BI API
如何开发人事及OA管理系统的入转调离板块?(附架构图+流程图+代码参考)
企业人事及OA系统核心模块“入转调离”(入职、转正、调动、离职)涵盖员工全生命周期管理,涉及审批流、合同管理、岗位变更、社保薪资联动等关键流程。通过系统化设计,实现数据统一、流程可审计、信息可追溯,提升HR效率并增强企业合规性。本文详解模块架构、设计原则、五大子模块实现方案及常见集成点,助力企业搭建高效、可靠的人事管理系统。
如何搭建一套无纸化自动审批OA系统
很多公司使用OA系统仍面临流程混乱、审批缓慢的问题。本文介绍如何快速搭建一套智能无纸化OA系统,解决传统OA流程不畅、系统难用等痛点,助力企业实现高效自动化办公,适合希望提升办公效率的管理者和IT人员参考实践。

热门文章

最新文章