微信小程序进阶——会议OA其他界面

news2024/9/24 15:26:47

目录

一、自定义tabs组件应用

1.1 创建自定义组件

1.1.1 新建自定义组件存放目录components

1.1.2 工具检查报错解决

1.1.3 编写组件模板

1.1.3 定义组件模板属性

1.1.4 加入组件样式

1.2 使用自定义组件

1.2.1 引用声明

1.2.2 组件传参

二、其他界面的布局

2.1 会议管理主页布局

2.1.1 编写组件模板

2.1.2 完成样式设计

2.1.3 定义组件属性

2.1.4 引用声明

2.1.5 展示页面效果

2.2 个人中心布局

2.2.1 页面源码

2.2.2 展示效果


一、自定义tabs组件应用

文档参考如下:

自定义组件 | 微信开放文档微信开发者平台文档icon-default.png?t=N7T8https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

1.1 创建自定义组件

1.1.1 新建自定义组件存放目录components

首先新建一个components文件夹,然后在components文件夹下面新建一个tabs文件夹,再在tabs文件夹下新建名为tabs的Component,目录如下:

1.1.2 工具检查报错解决

新建完成之后我们发现Consle控制台中有报错,如下:

这是新版本微信开发者工具特带的检查效果(window7所使用的旧版本开发工具不会报此错误),我们只需在project.config.json文件下的setting配置代码代码块下加入以下配置信息即可,配置信息如下:

"ignoreDevUnusedFiles": false,
"ignoreUploadUnusedFiles": false,

然后点击Ctrl+S保存即可消除报错,效果如下:

1.1.3 编写组件模板

紧接着同时,还要在 wxml 文件中编写组件模板,在 wxss 文件中加入组件样式,它们的写法与页面的写法类似。即把以下代码加入tabs.wxml中,代码如下:

<view class="inner">
  {{innerText}}
</view>
<slot></slot>

1.1.3 定义组件模板属性

加入了之后我们需要到tabs.js文件中定义innerText属性值,在tabs.js中组件的属性列表代码块下properties加入以下代码,如下:

 // 这里定义了innerText属性,属性值可以在组件使用时指定
      innerText: {
        type: String,
        value: 'default value',
      }

1.1.4 加入组件样式

最后在tabs.wxss中加入样式代码即可,wxss文件内代码如下:

.inner {
  color: red;
}

到这里我们的的自定义组件旧创建完毕了。

1.2 使用自定义组件

使用已注册的自定义组件前,首先要在页面的 json 文件中进行引用声明。如下:

1.2.1 引用声明

list.wxml投票界面代码如下:

<!--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>
<tabs></tabs>

此时需要提供每个自定义组件的标签名和对应的自定义组件文件路径,在需要使用自定义组件的界面json文件下加入以下代码:

{
  "usingComponents": {
    "tabs": "/components/tabs/tabs"
  }
}

 然后保存代码我们就可以看到我们的界面已经成功使用了自定义组件,效果如下:

1.2.2 组件传参

将list.wxml中的tabs自定义组件代码改为以下代码:

<tabs inner-text="三金"></tabs>

接着启动模拟器查看传参效果,如下:

二、其他界面的布局

2.1 会议管理主页布局

2.1.1 编写组件模板

在meeting文件夹下list.wxml中加入以下代码:

<!--pages/meeting/list/list.wxml-->
<!-- <text>pages/meeting/list/list.wxml</text> -->
<tabs tabList="{{tabs}}"  bindtabsItemChange="tabsItemChange">
</tabs>
<view style="height: 40px;"></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>

2.1.2 完成样式设计

在meeting文件夹下list.wxss中加入以下代码,如下:

/* pages/meeting/list/list.wxss */
.list{
  display: flex;
  align-items: center;
  border-bottom: 3px solid lightgray;
}
.list-img{
  padding: 0 10px;
}
.video-img{
  height: 80px;
  width: 80px;
}
.list-title{
  font-weight: 700;
  margin: 3px 0;
}
.list-tag{
  display: flex;
  align-items: center;
}
.state{
  border: 2px solid lightblue;
  padding: 1px 1px;
  color: lightblue;
  margin: 0 15px 2px 0;
  border-radius: 10px;
}
.join{
  color: lightgray;
}
.list-num{
  color: red;
  font-weight: 700;
}
.list-info{
  color: lightgray;
  font-size: 12px;
}
.section bottom-line{
  display: flex;
  justify-content:center;
}

2.1.3 定义组件属性

用于接收数据

meeting文件夹下list.js中代码如下(含页面数据代码):

// pages/meeting/list/list.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:['会议中','已完成','已取消','全部会议'],
    lists:[
      {
        'id': '1',
        'image': '/static/persons/1.jpg',
        'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
        'num':'304',
        'state':'进行中',
        'time': '10月09日 17:59',
        'address': '深圳市·南山区'
      },
      {
        'id': '1',
        'image': '/static/persons/2.jpg',
        'title': 'AI WORLD 2016世界人工智能大会',
        'num':'380',
        'state':'已结束',
        'time': '10月09日 17:39',
        'address': '北京市·朝阳区'
      },
      {
        'id': '1',
        'image': '/static/persons/3.jpg',
        'title': 'H100太空商业大会',
        'num':'500',
        'state':'进行中',
        'time': '10月09日 17:31',
        'address': '大连市'
      },
      {
        'id': '1',
        'image': '/static/persons/4.jpg',
        'title': '报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”',
        'num':'150',
        'state':'已结束',
        'time': '10月09日 17:21',
        'address': '北京市·朝阳区'
      },
      {
        'id': '1',
        'image': '/static/persons/5.jpg',
        'title': '新质生活 · 品质时代 2016消费升级创新大会',
        'num':'217',
        'state':'进行中',
        'time': '10月09日 16:59',
        'address': '北京市·朝阳区'
      }
    ],
    lists1: [
      {
        'id': '1',
        'image': '/static/persons/1.jpg',
        'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
        'num':'304',
        'state':'进行中',
        'time': '10月09日 17:59',
        'address': '深圳市·南山区'
      },
      {
        'id': '1',
        'image': '/static/persons/2.jpg',
        'title': 'AI WORLD 2016世界人工智能大会',
        'num':'380',
        'state':'已结束',
        'time': '10月09日 17:39',
        'address': '北京市·朝阳区'
      },
      {
        'id': '1',
        'image': '/static/persons/3.jpg',
        'title': 'H100太空商业大会',
        'num':'500',
        'state':'进行中',
        'time': '10月09日 17:31',
        'address': '大连市'
      }
    ],
    lists2: [
      {
        'id': '1',
        'image': '/static/persons/1.jpg',
        'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
        'num':'304',
        'state':'进行中',
        'time': '10月09日 17:59',
        'address': '深圳市·南山区'
      },
      {
        'id': '1',
        'image': '/static/persons/2.jpg',
        'title': 'AI WORLD 2016世界人工智能大会',
        'num':'380',
        'state':'已结束',
        'time': '10月09日 17:39',
        'address': '北京市·朝阳区'
      }
    ],
    lists3: [
      {
        'id': '1',
        'image': '/static/persons/1.jpg',
        'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
        'num':'304',
        'state':'进行中',
        'time': '10月09日 17:59',
        'address': '深圳市·南山区'
      },
      {
        'id': '1',
        'image': '/static/persons/2.jpg',
        'title': 'AI WORLD 2016世界人工智能大会',
        'num':'380',
        'state':'已结束',
        'time': '10月09日 17:39',
        'address': '北京市·朝阳区'
      },
      {
        'id': '1',
        'image': '/static/persons/3.jpg',
        'title': 'H100太空商业大会',
        'num':'500',
        'state':'进行中',
        'time': '10月09日 17:31',
        'address': '大连市'
      },
      {
        'id': '1',
        'image': '/static/persons/4.jpg',
        'title': '报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”',
        'num':'150',
        'state':'已结束',
        'time': '10月09日 17:21',
        'address': '北京市·朝阳区'
      },
      {
        'id': '1',
        'image': '/static/persons/5.jpg',
        'title': '新质生活 · 品质时代 2016消费升级创新大会',
        'num':'217',
        'state':'进行中',
        'time': '10月09日 16:59',
        'address': '北京市·朝阳区'
      }
    ]
  },
  tabsItemChange(){
    debugger;
    let tolists;
    if(e.detail.index==1){
        tolists = this.data.lists1;
    }else if(e.detail.index==2){
        tolists = this.data.lists2;
    }else{
        tolists = this.data.lists3;
    }
    this.setData({
        lists: tolists
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

2.1.4 引用声明

list.json中代码如下:

{
  "usingComponents": {
    "tabs": "/components/tabs/tabs"
  }
}

2.1.5 展示页面效果

模拟器展示效果如下:

2.2 个人中心布局

2.2.1 页面源码

index.wxml:

<!--pages/ucenter/index/index.wxml-->
<!-- <text>pages/ucenter/index/index.wxml</text> -->
<view class="user">
  <image class="user-img" src="/static/persons/v头像.jpg"></image>
  <text class="user-name">三金</text>
  <text class="user-oper">修改</text>
</view>
<view class="info">
  <view class="item1">
    <image class="item-icon" src="/static/tabBar/sdk.png"></image>
    <view class="item-title">我主持的会议</view>
    <view class="item-num">1</view>
    <view class="item-oper">></view>
  </view>
  <view class="item2">
    <image class="item-icon" src="/static/tabBar/sdk.png"></image>
    <view class="item-title">我参与的会议</view>
    <view class="item-num">10</view>
    <view class="item-oper">></view>
  </view>
</view>
<view class="info">
  <view class="item1">
    <image class="item-icon" src="/static/tabBar/sdk.png"></image>
    <view class="item-title">我发布的投票</view>
    <view class="item-num">1</view>
    <view class="item-oper">></view>
  </view>
  <view class="item2">
    <image class="item-icon" src="/static/tabBar/sdk.png"></image>
    <view class="item-title">我参与的投票</view>
    <view class="item-num">10</view>
    <view class="item-oper">></view>
  </view>
</view>
<view class="info">
  <view class="item1">
    <image class="item-icon" src="/static/tabBar/template.png"></image>
    <view class="item-title">消息</view>
  </view>
  <view class="item2">
    <image class="item-icon" src="/static/tabBar/component.png"></image>
    <view class="item-title">设置</view>
  </view>
</view>

index.wxss:

/* pages/ucenter/index/index.wxss */
.user{
  display: flex;
  align-items: center;
  border-bottom: 6px solid rgb(238, 235, 235);
}
.user-img{
  width: 65px;
  height: 65px;
  margin: 10px;
}
.user-name{
  font-weight: 700;
  margin: 0 250rpx 0 50rpx;
}
.user-oper{
  color: lightgray;
}
.info{

}
.item1,.item2{
  padding: 5px;
  display: flex;
  align-items: center;
}
.item1{
  border-bottom: 2px solid rgb(238, 235, 235);
}
.item2{
  border-bottom: 6px solid rgb(238, 235, 235);
}
.item-icon{
  width: 40px;
  height: 40px;
}
.item-title{
  width:500rpx;
}
.item-num{
  width:60rpx;
}
.item-oper{
  color: rgb(221, 216, 216);
}

2.2.2 展示效果

模拟器展示效果如下:


最后微信小程序进阶——会议OA其他界面就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

半球体容器漏水体积微分问题

问题&#xff1a;半球体的容器中盛满水&#xff0c;容器底部有一个小孔&#xff0c;水从小孔流出。给出水体积的变化量 V 随水面高度 h 变化的微分关系式。 在微小的时间间隔 [ t , t d t ] [t, t\mathrm{d}t] [t,tdt] 内&#xff0c;水面高度由 h h h 降至 h d h , ( d h…

官媒代运营:如何将内容营销做到深入人心

生活中&#xff0c;信息传递和有效的沟通是我们与世界互动的重要方式&#xff0c;而语言是这种互动的关键媒介。然而&#xff0c;在营销界&#xff0c;我们已经迈出了更深一步&#xff0c;将语言与内容相结合&#xff0c;以创造内容营销这一强大的战略工具。内容&#xff0c;作…

35岁失业程序员的在线简历制作工具

失业在家&#xff0c;实在是难熬&#xff0c;人过了35面试的机会很少&#xff0c;而且大多数都是外包&#xff0c;可能大环境也是一个原因吧&#xff0c;这不也没闲着&#xff0c;写了个在线制作简历的工具&#xff0c;帮助大家更好的找工作吧&#xff0c; 废话不多说先看看效…

基于ESP32-WROOM-32的USB转WIFI模块设计

一、ESP32-WROOM-32简介&#xff1a; ESP32-WROOM-32是一个功能强大的通用Wi-FiBTBLE MCU模块&#xff0c;针对多种应用&#xff0c;从低功耗传感器网络到最苛刻的任务&#xff0c;如语音编码、音乐流和MP3解码。该模块的核心是ESP32-D0WDQ6芯片*。嵌入式芯片的设计是可扩展的和…

团队计划管理软件大比拼:五个顶级工具推荐和对比

团队计划管理软件在如今的商业环境中变得越来越重要。有效的团队协作和任务管理对于提高生产力、加强沟通以及满足项目要求至关重要。然而&#xff0c;市场上有数以百计的团队计划管理软件可供选择&#xff0c;这使得选择最适合您团队的软件成为一项挑战。 在本文中&#xff0…

黑白二维码不好看,那么快学习改色的方法吧

现在经常会看到很多的二维码不是黑白图案&#xff0c;可以是其他纯色或者渐变色等样式的&#xff0c;那么怎么将黑白二维码改成其他鲜艳好看的颜色呢&#xff1f;一般想要修改普通样式的二维码可以用二维码美化生成器来处理&#xff0c;只需要上传二维码图片&#xff0c;就可以…

DDoS如何防范?防御DDoS攻击的几大有效方法

伴随互联网的普及和数字化世界的迅猛发展&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击已然成为当今网络世界的威胁之一。根据Cybersecurity Ventures的数据&#xff0c;每39秒就会发生一次漏洞&#xff0c;每14秒就会发生一次勒索软件攻击。仅在2022年&#xf…

Ajax 笔记/练习

Ajax 异步JavaScript和XML 作用 实现 HTML 在不整体刷新的情况下&#xff0c;通过后台服务器&#xff0c;请求数据并局部更新页面内容 操作流程 Ajax 使用 XMLHttpRequest 通过new 关键字可以创建XMLHttpRequest() 对象。 var req new XMLHttpRequest();方法和属性说明req.…

Kubernetes技术与架构-Ingress

Ingress是一个流量网关&#xff0c;其根据配置的URI路径路由规则&#xff0c;为运行在Kubernetes集群中的Service分发流量&#xff0c;从系统架构设计的角度看&#xff0c;Ingress位于Service的上层&#xff0c;本文主要描述Ingress的基本使用方式。 如上所示&#xff0c;clien…

Oracle数据库 ORA-28001: the password has expired解决方法

今天在用dbvisualizer登录数据库的时候&#xff0c;报了the password has expired的错误&#xff0c;于是上网查了一下原因&#xff0c;是因为数据库密码过期了&#xff0c;因为默认的是180天。 解决方法&#xff1a; 1&#xff09;用系统用户登录 #在cmd终端输入&#xff1…

跨境电子商城源代码定制网站搭建(商品采集,多货币,多语言)

欢迎来到全新的跨境电子商城源代码定制网站搭建!这是一个集商品采集、多币种和多语言于一身的创新平台&#xff0c;为您的跨境电商事业提供了前所未有的便利和机会! 一、精选全球商品&#xff0c;一站式采集 在跨境电子商务的时代&#xff0c;我们深谙选择高质量商品的重要性。…

AI智慧安防智能监控平台如何做到健身房智能视频监控?

随着大家对健身的重视&#xff0c;健身房也开始遍地开花&#xff0c;健身房的兴起是必然的&#xff0c;但是健身房的管理不容疏忽&#xff0c;通过EasyCVR智能视频监控系统&#xff0c;则可以解决监管不足的问题。 1、安全摄像头布局 根据健身房的大小和布局&#xff0c;合理规…

数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

数据仓库的诞生原因 随着互联网的普及&#xff0c;信息技术已经深入到各行各业&#xff0c;并逐步融入到企业的日常运营中。然而&#xff0c;当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的&#xff0c;很…

微积分 - 泰勒公式

1、简介 泰勒公式&#xff0c;也称泰勒展开式。是用一个函数在某点的信息&#xff0c;描述其附近取值的公式。如果函数足够平滑&#xff0c;在已知函数在某一点的各阶导数值的情况下&#xff0c;泰勒公式可以利用这些导数值来做系数&#xff0c;构建一个多项式近似函数&#x…

微信小程序里报名链接怎么做

微信小程序是一种便捷、实用的应用程序&#xff0c;它依托于微信平台&#xff0c;无需下载安装即可使用。在小程序中&#xff0c;我们可以制作报名链接&#xff0c;以便用户直接在微信中进行报名操作&#xff0c;提高服务效率。下面我们将探讨如何制作微信小程序里的报名链接为…

vue使用carousel(走马灯)开发轮播图

在main.js 引入 import VueCarousel from vue-carousel;Vue.use(VueCarousel);在这里插入代码片 <template><div><div class"my-swipe"><carousel :per-page"1" :loop"true" :autoplay"true" :paginationEnable…

科学清理Windows系统垃圾,让你的电脑性能快如火箭

文章目录 1. 使用磁盘清理工具2. 清理临时文件2.1 清理用户临时文件夹2.2 清理系统临时文件夹2.3 清理系统临时文件 3.卸载不需要的程序4. 删除不必要的下载文件5. 清理回收站6. 压缩磁盘7. 删除旧的系统还原点8. 禁用休眠功能9. 定期进行磁盘碎片整理10. 禁用不必要的启动项11…

JOE alkyne, 6-isomer可以与许多化合物进行反应,包括醇、酚、胺、羧酸等

试剂 | 基础知识概述&#xff08;部分&#xff09;: 英文名&#xff1a;JOE alkyne, 6-isomer 分子式&#xff1a;C26H17NCl2O8 分子量&#xff1a;542.32 Ex&#xff1a;533nm Em&#xff1a;554nm 规格标准&#xff1a;1g、5g、10g&#xff0c;可提供mg级以及kg级的产品…

2023年全球线上教育营收规模及未来发展趋势分析:推动知识付费市场增长[图]

随着知识经济的到来&#xff0c;我们的学习模式受到了前所未有的冲击&#xff0c;各种新的学习模式如潮水般涌现&#xff0c;在所有学习模式中&#xff0c;最具有冲击力的便是随着网络技术发展而出现的网络化学习&#xff0c;又称在线学习&#xff0c;它是通过在网上建立教育平…