• 微信小程序&会议OA首页-开发说明&创建项目&关于flex布局&关于尺寸单位(rpx)&关于WXS&轮播图&会议信息


    目录

    1. 创建项目

    2. 关于flex布局

    3. 关于尺寸单位(rpx)

    4. 关于WXS

    4. 轮播图

    5. 会议信息


    1. 创建项目

    • 基于微信原生开发工具,稳定版 Stable Build (1.06.22010310)

    • 创建项目前,请确定有小程序测试账号

    • 使用向导创建一个项目

    • 将默认生成的组件删除(index,logs),然后重新创建一个index首页

    • 创建投票,会议,设置,用户信息,登录等组件
      在app.json中,加入如下组件

    1.   "pages": [
    2.     "pages/index/index",
    3.     "pages/meeting/list/list",
    4.     "pages/vote/list/list",
    5.     "pages/ucenter/index/index",
    6.     "pages/ucenter/user/user",
    7.     "pages/auth/login/login"
    8.   ]
     
    
    • 先将资料中的图标拷入项目,配置tabbar (配置文件: app.json)
    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. }]

    项目的搭建已搭建起来, 在布局页面前,需要了解一下 Flex布局,

    2. 关于flex布局

    关于flex布局,详细参考:https://www.runoob.com/w3cnote/flex-grammar.html

    可以在index组件中做些测试,来了解flex布局

    index.wxml

    1. <view class="container">
    2.   <view>
    3.     <text>flex</text>
    4.   </view>
    5.   <view>
    6.     <text>flex</text>
    7.   </view>
    8.   <view>
    9.     <text>flex</text>
    10.   </view>
    11.   <view>
    12.     <text>flex</text>
    13.   </view>
    14.   <view>
    15.     <text>flex</text>
    16.   </view>
    17.   <view>
    18.     <text>flex</text>
    19.   </view>
    20.   <view>
    21.     <text>flex</text>
    22.   </view>
    23. </view>

    index.wxss

    1. .container {
    2.   display: flex;
    3.   flex-direction: row;
    4.   flex-wrap: wrap;
    5. }
    6. .container view {
    7.   width200rpx;
    8.   height100rpx;
    9.   border:1rpx solid red;
    10.   display: flex;
    11.   justify-content: center;
    12.   align-items: center;
    13. }

    3. 关于尺寸单位(rpx)

    为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS 扩展的特性有:尺寸单位样式导入

    尺寸单位rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

    4. 关于WXS

    WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

    示例:

    • 创建WXS
    1. var toDecimal2 = function (x) {
    2. var f = parseFloat(x);
    3. if (isNaN(f)) {
    4. return '0.00'
    5. }
    6. var f = Math.round(x * 100) / 100;
    7. var s = f.toString();
    8. var rs = s.indexOf('.');
    9. if (rs < 0) {
    10. rs = s.length;
    11. s += '.';
    12. }
    13. while (s.length <= rs + 2) {
    14. s += '0';
    15. }
    16. return s;
    17. }
    18. //module.exports = toDecimal2
    19. module.exports = {
    20. toDecimal2:toDecimal2
    21. }
    • 在wxml中使用
    1. <!--pages/c/c.wxml-->
    2. <wxs src="../../wxs/PageUtils.wxs" module="PageUtils"></wxs>
    3. <wxs module="m1">
    4. var msg = "hello world";
    5. module.exports.message = msg;
    6. </wxs>
    7. <view>
    8. <text>pages/c/c.wxml,</text>
    9. <text>{{m1.message}}</text>
    10. <view>
    11. <text>{{PageUtils.toDecimal2(123.453)}}</text>
    12. </view>
    13. <view>
    14. <button type="primary" bindtap="jump">跳转到D页面</button>
    15. </view>
    16. </view>

    注意事项
    WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
    WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。
    WXS 的运行环境和其他 JavaScript 代码是隔离的,WXS 中不能调用其他 JavaScript 文件中定义的函数,也不能调用小程序提供的API。
    WXS 函数不能作为组件的事件回调。
    由于运行环境的差异,在 iOS 设备上小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
    以下是一些使用 WXS 的简单示例,要完整了解 WXS 语法,请参考WXS 语法参考。

    4. 轮播图

    1. 配置配件 config/api.js
    1. // 以下是业务服务器API地址
    2.  // 本机开发API地址
    3.  var WxApiRoot = 'http://localhost:8080/demo/wx/';
    4.  // 测试环境部署api地址
    5.  // var WxApiRoot = 'http://192.168.0.101:8070/demo/wx/';
    6.  // 线上平台api地址
    7.  //var WxApiRoot = 'https://www.oa-mini.com/demo/wx/';
    8.  
    9.  module.exports = {
    10.    IndexUrl: WxApiRoot + 'home/index'//首页数据接口
    11.    SwiperImgs: WxApiRoot+'swiperImgs'//轮播图
    12.    MettingInfos: WxApiRoot+'meeting/list'//会议信息
    13.  };
    1. tabbar配置
      请参考 1)创建项目 部分

    2. mock工具

    3. 用于模拟图片数据

    上图中的模拟数据如下:

    1. "images":[
    2. {
    3. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner1.png",
    4. "text": "1"
    5. },
    6. {
    7. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner2.png",
    8. "text": "2"
    9. },
    10. {
    11. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner3.png",
    12. "text": "3"
    13. },
    14. {
    15. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner4.png",
    16. "text": "4"
    17. },
    18. {
    19. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner5.png",
    20. "text": "5"
    21. },
    22. {
    23. "img": "https://cdn-we-retail.ym.tencent.com/tsr/home/v2/banner6.png",
    24. "text": "6"
    25. }
    26. ]

    图片从网上获取,所以需要联网。

    1. index.js 编写
    1.   /**
    2.    * 生命周期函数--监听页面加载
    3.    */
    4.   onLoad(options) {
    5.     this.getSwiperImages();
    6.   }
    7. //获取图片数据
    8.   getSwiperImages() {
    9.     let _this = this;
    10.       wx.request({
    11.         url: api.SwiperImgs,
    12.         success(resp) {
    13.           console.log(resp);
    14.           _this.setData({
    15.             images: resp.data.images
    16.           })
    17.         }
    18.       });
    19.   },

    如果出现下图错误:


    则如修改配置:

    1. 视图展示
      获取图片数据后可以进行页面的展示:
    1. <view>
    2.     <swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f">
    3.         <block wx:for="{{images}}" wx:for-item="item" wx:for-index="index" wx:key="text">
    4.             <swiper-item>
    5.                 <view>
    6.                     <image src="{{item.img}}" />
    7.                 </view>
    8.             </swiper-item>
    9.         </block>
    10.     </swiper>
    11. </view>
    • 备注: wx:for-item 可以不指定,默认值为 item 该规则同样适用于wx:for-index
    • 轮播图的其他属性,可以参考官方文档

    index.wxss page页面的样式设置

    1. page{
    2. height: 100%;
    3. background-color: #efeff4;
    4. }
    1. 图片拉伸问题
      如果不处理, 则将机型改变后,可能会出现轮播图片不能充满屏幕的问题,解决如下:

    index.wxss 中加如下样式

    1. .swiper-image {
    2.   width750rpx;
    3. }

    index.wxml 中轮播图配置如下:

    5. 会议信息

    布局请参考课件中的 images/flex-示例.png

    会议信息的模拟数据:

    1. "lists": [
    2. {
    3. "id": "1",
    4. "image": "/static/persons/1.jpg",
    5. "title": "对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】",
    6. "num":"304",
    7. "state":"进行中",
    8. "starttime": "2022-03-13 00:00:00",
    9. "location": "深圳市·南山区"
    10. },
    11. {
    12. "id": "1",
    13. "image": "/static/persons/2.jpg",
    14. "title": "AI WORLD 2016世界人工智能大会",
    15. "num":"380",
    16. "state":"已结束",
    17. "starttime": "2022-03-15 00:00:00",
    18. "location": "北京市·朝阳区"
    19. },
    20. {
    21. "id": "1",
    22. "image": "/static/persons/3.jpg",
    23. "title": "H100太空商业大会",
    24. "num":"500",
    25. "state":"进行中",
    26. "starttime": "2022-03-13 00:00:00",
    27. "location": "大连市"
    28. },
    29. {
    30. "id": "1",
    31. "image": "/static/persons/4.jpg",
    32. "title": "报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”",
    33. "num":"150",
    34. "state":"已结束",
    35. "starttime": "2022-03-13 00:00:00",
    36. "location": "北京市·朝阳区"
    37. },
    38. {
    39. "id": "1",
    40. "image": "/static/persons/5.jpg",
    41. "title": "新质生活 · 品质时代 2016消费升级创新大会",
    42. "num":"217",
    43. "state":"进行中",
    44. "starttime": "2022-03-13 00:00:00",
    45. "location": "北京市·朝阳区"
    46. }
    47. ]

    将模拟数据放入data部分:


     

    会议信息布局部分代码较多,请参考示例代码

  • 相关阅读:
    Excel_VBA程序文件的加密及解密说明
    机器学习笔记:特征缩放(sklearn实现)
    使用原子子表创建可重用的子组件
    ROS2的学习路径
    【数独问题】递归+回溯算法求解数独问题
    [Games 101] Lecture 13-16 Ray Tracing
    【C++类】深拷贝、内联函数、数据成员
    程桌面管理软件Apple Remote Desktop mac中文介绍说明
    [C++]带动画鼠标指针的多屏采集和窗口采集,基于BitBlt和DXGI
    flink故障恢复的流程(从检查点恢复状态)
  • 原文地址:https://blog.csdn.net/qq_73126462/article/details/134480074