• 微信小程序自定义组件及投票管理与个人中心界面搭建


    14天阅读挑战赛
    人生本来就没定义,任何的价值都是自己赋予。

    目录

    一、自定义tabs组件

    1.1 创建自定义组件

    1.2 tabs.wxml 编写组件界面

    1.3 tabs.wxss 设计样式

    1.4 tabs.js 定义组件的属性及事件

    二、自定义组件使用

    2.1 引用组件

    2.2 编写会议界面内容

    2.3 设计样式

    2.4 模拟数据并实现切换tabs方法

    2.5 效果展示

    三、投票管理界面搭建

    3.1 自定义投票列表组件

    3.2 引用组件

    3.3 编写投票界面内容

    3.4 设计样式

    3.5 模拟数据并实现切换列表方法

    3.6 效果图

    四、个人中心界面搭建

    4.1 WXML

    4.2 WXSS

    4.3 效果图


    一、自定义tabs组件

    1.1 创建自定义组件

    新建一个components文件夹 --> tabs文件夹 --> tabs文件

    创建好之后win7 以上的系统可能会报这个错误:

    解决方案:

    在project.config.json文件里添加两行配置

    1. "ignoreDevUnusedFiles": false,
    2. "ignoreUploadUnusedFiles": false,

    1.2 tabs.wxml 编写组件界面

    1. <view class="tabs">
    2. <view class="tabs_title">
    3. <view wx:for="{{tabList}}" wx:key="id" class="title_item {{index==tabIndex?'item_active':''}}" bindtap="handleItemTap" data-index="{{index}}">
    4. <view style="margin-bottom:5rpx">{{item}}view>
    5. <view style="width:30px" class="{{index==tabIndex?'item_active1':''}}">view>
    6. view>
    7. view>
    8. <view class="tabs_content">
    9. <slot>slot>
    10. view>
    11. view>

    1.3 tabs.wxss 设计样式

    1. /* components/tabs/tabs.wxss */
    2. .tabs {
    3. position: fixed;
    4. top: 0;
    5. width: 100%;
    6. background-color: #fff;
    7. z-index: 99;
    8. border-bottom: 3px solid #efefef;
    9. padding-bottom: 20rpx;
    10. }
    11. .tabs_title {
    12. /* width: 400rpx; */
    13. width: 95%;
    14. display: flex;
    15. font-size: 13pt;
    16. padding: 0 20rpx
    17. }
    18. .title_item {
    19. color: #999;
    20. padding: 15rpx 0;
    21. display: flex;
    22. flex: 1;
    23. flex-flow: column nowrap;
    24. justify-content: center;
    25. align-items: center;
    26. }
    27. .item_active {
    28. /* color:#ED8137; */
    29. color: #000000;
    30. font-size: 11pt;
    31. font-weight: 800;
    32. }
    33. .item_active1 {
    34. /* color:#ED8137; */
    35. color: #000000;
    36. font-size: 11pt;
    37. font-weight: 800;
    38. border-bottom: 6rpx solid #333;
    39. border-radius: 2px;
    40. }

    1.4 tabs.js 定义组件的属性及事件

    1. // components/tabs/tabs.js
    2. var App = getApp();
    3. Component({
    4. /**
    5. * 组件的属性列表
    6. */
    7. properties: {
    8. tabList:Object
    9. },
    10. /**
    11. * 组件的初始数据
    12. */
    13. data: {
    14. tabIndex:0
    15. },
    16. /**
    17. * 组件的方法列表
    18. */
    19. methods: {
    20. handleItemTap(e){
    21. // 获取索引
    22. const {index} = e.currentTarget.dataset;
    23. // 触发 父组件的事件
    24. this.triggerEvent("tabsItemChange",{index})
    25. this.setData({
    26. tabIndex:index
    27. })
    28. }
    29. }
    30. })

    二、自定义组件使用

    2.1 引用组件

    在需要使用自定义组件的json中进行配置引用路径

    1. //list.json
    2. {
    3. "usingComponents": {
    4. "tabs":"/components/tabs/tabs"
    5. }
    6. }

    2.2 编写会议界面内容

    在界面使用组件并添加事件:

    <tabs tabList="{{tabs}}"  bindtabsItemChange="tabsItemChange">
    1. <tabs tabList="{{tabs}}" bindtabsItemChange="tabsItemChange">
    2. tabs>
    3. <view style="height: 100rpx;">view>
    4. <block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id">
    5. <view class="list" data-id="{{item.id}}">
    6. <view class="list-img al-center">
    7. <image class="video-img" mode="scaleToFill" src="{{item.image}}">image>
    8. view>
    9. <view class="list-detail">
    10. <view class="list-title"><text>{{item.title}}text>view>
    11. <view class="list-tag">
    12. <view class="state al-center">{{item.state}}view>
    13. <view class="join al-center"><text class="list-num">{{item.num}}text>人报名view>
    14. view>
    15. <view class="list-info"><text>{{item.address}}text>|<text>{{item.time}}text>view>
    16. view>
    17. view>
    18. block>

    2.3 设计样式

    1. /* pages/meeting/list/list.wxss */
    2. /**list.wxss**/
    3. .userinfo {
    4. display: flex;
    5. flex-direction: column;
    6. align-items: center;
    7. color: #aaa;
    8. }
    9. .userinfo-avatar {
    10. overflow: hidden;
    11. width: 128rpx;
    12. height: 128rpx;
    13. margin: 20rpx;
    14. border-radius: 50%;
    15. }
    16. .usermotto {
    17. margin-top: 200px;
    18. }
    19. /**index.wxss**/
    20. .section {
    21. color: #aaa;
    22. display: flex;
    23. justify-content: center;
    24. }
    25. .list-info {
    26. color: #aaa;
    27. }
    28. .list-num {
    29. color: red;
    30. /* font-weight: 700; */
    31. }
    32. .join {
    33. padding: 0px 0px 0px 10px;
    34. color: #aaa;
    35. }
    36. .state {
    37. margin: 0px 6px 0px 6px;
    38. border: 1px solid #4083ff;
    39. color: #4083ff;
    40. padding: 3px 5px 3px 5px;
    41. }
    42. .list-tag {
    43. padding: 3px 0px 10px 0px;
    44. display: flex;
    45. align-items: center;
    46. }
    47. .list-title {
    48. display: flex;
    49. justify-content: space-between;
    50. font-size: 11pt;
    51. color: #333;
    52. font-weight: bold;
    53. }
    54. .list-detail {
    55. display: flex;
    56. flex-direction: column;
    57. margin: 0px 0px 0px 15px;
    58. }
    59. .video-img {
    60. margin-top: 5px;
    61. width: 80px;
    62. height: 80px;
    63. }
    64. .list {
    65. display: flex;
    66. flex-direction: row;
    67. background-color: seashell;
    68. border-bottom: 1px solid #cecece;
    69. padding: 10px;
    70. }
    71. .mobi-text {
    72. font-weight: 700;
    73. padding: 15px;
    74. }
    75. /* .mobi-icon {
    76. border-left: 5px solid #57f564;
    77. } */
    78. .indexbg{
    79. background-color: rgba(219, 219, 219, 0.678);
    80. }
    81. .mobi-title {
    82. /* background-color: rgba(219, 219, 219, 0.678); */
    83. margin: 10px 0px 10px 0px;
    84. }
    85. .swiper-item {
    86. height: 300rpx;
    87. width: 100%;
    88. border-radius: 10rpx;
    89. }
    90. .userinfo {
    91. display: flex;
    92. flex-direction: column;
    93. align-items: center;
    94. color: #aaa;
    95. }
    96. .userinfo-avatar {
    97. overflow: hidden;
    98. width: 128rpx;
    99. height: 128rpx;
    100. margin: 20rpx;
    101. border-radius: 50%;
    102. }
    103. .usermotto {
    104. margin-top: 200px;
    105. }

    2.4 模拟数据并实现切换tabs方法

    1. // pages/meeting/list/list.js
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. tabs:['会议中','已完成','已取消','全部会议'],
    8. lists: [
    9. {
    10. 'id': '1',
    11. 'image': '/static/persons/1.png',
    12. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    13. 'num':'304',
    14. 'state':'进行中',
    15. 'time': '10月09日 17:59',
    16. 'address': '深圳市·南山区'
    17. },
    18. {
    19. 'id': '1',
    20. 'image': '/static/persons/2.png',
    21. 'title': 'AI WORLD 2016世界人工智能大会',
    22. 'num':'380',
    23. 'state':'已结束',
    24. 'time': '10月09日 17:39',
    25. 'address': '北京市·朝阳区'
    26. },
    27. {
    28. 'id': '1',
    29. 'image': '/static/persons/3.png',
    30. 'title': 'H100太空商业大会',
    31. 'num':'500',
    32. 'state':'进行中',
    33. 'time': '10月09日 17:31',
    34. 'address': '大连市'
    35. },
    36. {
    37. 'id': '1',
    38. 'image': '/static/persons/4.png',
    39. 'title': '报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”',
    40. 'num':'150',
    41. 'state':'已结束',
    42. 'time': '10月09日 17:21',
    43. 'address': '北京市·朝阳区'
    44. },
    45. {
    46. 'id': '1',
    47. 'image': '/static/persons/5.png',
    48. 'title': '新质生活 · 品质时代 2016消费升级创新大会',
    49. 'num':'217',
    50. 'state':'进行中',
    51. 'time': '10月09日 16:59',
    52. 'address': '北京市·朝阳区'
    53. }
    54. ],
    55. lists1: [
    56. {
    57. 'id': '1',
    58. 'image': '/static/persons/1.png',
    59. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    60. 'num':'304',
    61. 'state':'进行中',
    62. 'time': '10月09日 17:59',
    63. 'address': '深圳市·南山区'
    64. },
    65. {
    66. 'id': '1',
    67. 'image': '/static/persons/2.png',
    68. 'title': 'AI WORLD 2016世界人工智能大会',
    69. 'num':'380',
    70. 'state':'已结束',
    71. 'time': '10月09日 17:39',
    72. 'address': '北京市·朝阳区'
    73. },
    74. {
    75. 'id': '1',
    76. 'image': '/static/persons/3.png',
    77. 'title': 'H100太空商业大会',
    78. 'num':'500',
    79. 'state':'进行中',
    80. 'time': '10月09日 17:31',
    81. 'address': '大连市'
    82. }
    83. ],
    84. lists2: [
    85. {
    86. 'id': '1',
    87. 'image': '/static/persons/1.png',
    88. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    89. 'num':'304',
    90. 'state':'进行中',
    91. 'time': '10月09日 17:59',
    92. 'address': '深圳市·南山区'
    93. },
    94. {
    95. 'id': '1',
    96. 'image': '/static/persons/2.png',
    97. 'title': 'AI WORLD 2016世界人工智能大会',
    98. 'num':'380',
    99. 'state':'已结束',
    100. 'time': '10月09日 17:39',
    101. 'address': '北京市·朝阳区'
    102. }
    103. ],
    104. lists3: [
    105. {
    106. 'id': '1',
    107. 'image': '/static/persons/1.png',
    108. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    109. 'num':'304',
    110. 'state':'进行中',
    111. 'time': '10月09日 17:59',
    112. 'address': '深圳市·南山区'
    113. },
    114. {
    115. 'id': '1',
    116. 'image': '/static/persons/2.png',
    117. 'title': 'AI WORLD 2016世界人工智能大会',
    118. 'num':'380',
    119. 'state':'已结束',
    120. 'time': '10月09日 17:39',
    121. 'address': '北京市·朝阳区'
    122. },
    123. {
    124. 'id': '1',
    125. 'image': '/static/persons/3.png',
    126. 'title': 'H100太空商业大会',
    127. 'num':'500',
    128. 'state':'进行中',
    129. 'time': '10月09日 17:31',
    130. 'address': '大连市'
    131. },
    132. {
    133. 'id': '1',
    134. 'image': '/static/persons/4.png',
    135. 'title': '报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”',
    136. 'num':'150',
    137. 'state':'已结束',
    138. 'time': '10月09日 17:21',
    139. 'address': '北京市·朝阳区'
    140. },
    141. {
    142. 'id': '1',
    143. 'image': '/static/persons/5.png',
    144. 'title': '新质生活 · 品质时代 2016消费升级创新大会',
    145. 'num':'217',
    146. 'state':'进行中',
    147. 'time': '10月09日 16:59',
    148. 'address': '北京市·朝阳区'
    149. }
    150. ]
    151. },
    152. /**
    153. * 生命周期函数--监听页面加载
    154. */
    155. onLoad(options) {
    156. },
    157. /**
    158. * 生命周期函数--监听页面显示
    159. */
    160. onShow() {
    161. },
    162. //列表切换事件
    163. tabsItemChange(e){
    164. let tolists;
    165. if(e.detail.index==1){
    166. tolists = this.data.lists1;
    167. }else if(e.detail.index==2){
    168. tolists = this.data.lists2;
    169. }else{
    170. tolists = this.data.lists3;
    171. }
    172. this.setData({
    173. lists: tolists
    174. })
    175. },
    176. /**
    177. * 生命周期函数--监听页面隐藏
    178. */
    179. onHide() {
    180. },
    181. /**
    182. * 生命周期函数--监听页面卸载
    183. */
    184. onUnload() {
    185. },
    186. /**
    187. * 页面相关事件处理函数--监听用户下拉动作
    188. */
    189. onPullDownRefresh() {
    190. },
    191. /**
    192. * 页面上拉触底事件的处理函数
    193. */
    194. onReachBottom() {
    195. },
    196. /**
    197. * 用户点击右上角分享
    198. */
    199. onShareAppMessage() {
    200. }
    201. })

    2.5 效果展示

    三、投票管理界面搭建

    3.1 自定义投票列表组件

     操作同目录一:

    3.2 引用组件

    在需要使用自定义组件的json中进行配置引用路径

    1. {
    2. "usingComponents": {
    3. "voteTabs":"/components/voteTabs/tabTabs",
    4. "searchbar": "/components/searchbar/searchbar"
    5. }
    6. }

    这里的searchbar是一个搜索组件,需要的私...

    3.3 编写投票界面内容

    1. <voteTabs tabList="{{voteTabs}}" bindtabsItemChange="tabsItemChange">voteTabs>
    2. <view style="height: 100rpx;">view>
    3. <searchbar placeholder="输入会议标题" bind:handleSearch="handleSearch">searchbar>
    4. <view class="oaFlex">
    5. <block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id">
    6. <view class="list" data-id="{{item.id}}">
    7. <view class="list-img al-center">
    8. <image class="video-img" mode="scaleToFill" src="{{item.image}}">image>
    9. view>
    10. <view class="list-detail">
    11. <view class="list-title"><text>{{item.title}}text>view>
    12. <view class="list-tag">
    13. <view class="state al-center">{{item.state}}view>
    14. <view class="join al-center"><text class="list-num">{{item.num}}text> 人已投view>
    15. view>
    16. <view class="list-info"><text>{{item.address}}text>|<text>{{item.time}}text>view>
    17. view>
    18. view>
    19. block>
    20. view>

    3.4 设计样式

    1. /* pages/vote/list/list.wxss */
    2. .oaFlex{
    3. display: flex;
    4. flex-direction: column;
    5. align-items: center;
    6. }
    7. .list {
    8. width: 360px;
    9. display: flex;
    10. flex-direction: column;
    11. align-items: center;
    12. background-color: rgb(228, 240, 253);
    13. border-bottom: 2px solid #d9dbe2;
    14. margin-bottom: 25px;
    15. }
    16. .video-img {
    17. width: 360px;
    18. height: 150px;
    19. }
    20. .list-detail {
    21. display: flex;
    22. flex-direction: column;
    23. align-items: center;
    24. }
    25. .list-title {
    26. font-size: 12pt;
    27. color: #333;
    28. font-weight: bold;
    29. }
    30. .list-info {
    31. color: #aaa;
    32. }
    33. .list-num {
    34. color: red;
    35. /* font-weight: 700; */
    36. }
    37. .join {
    38. padding: 0px 0px 0px 10px;
    39. color: #aaa;
    40. }
    41. .state {
    42. margin: 0px 6px 0px 6px;
    43. border: 1px solid #4083ff;
    44. color: #4083ff;
    45. padding: 3px 5px 3px 5px;
    46. }
    47. .list-tag {
    48. padding: 3px 0px 10px 0px;
    49. display: flex;
    50. align-items: center;
    51. }

    3.5 模拟数据并实现切换列表方法

    1. // pages/meeting/vote/list.js
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. voteTabs:['全部投票','发布的','参与的'],
    8. lists: [
    9. {
    10. 'id': '1',
    11. 'image': 'https://1.s91i.faiusr.com/4/AFsI4uYPEAQYACDw69bhBSjulrWKBTDABzicBA!800x800.png?_tm=3&v=1556100764632',
    12. 'title': '2023招募开发工程师 | 深圳·北京PM大会 ',
    13. 'num':'24',
    14. 'state':'进行中',
    15. 'time': '10月21日 17:59',
    16. 'address': '深圳市·南山区'
    17. },
    18. {
    19. 'id': '1',
    20. 'image': 'https://img.zcool.cn/community/01e71e61e7c7ba11013e8cd0236304.jpg?x-oss-process=image/auto-orient,1/resize,m_lfit,w_1280,limit_1/sharpen,100',
    21. 'title': '隔空对话 | 国潮主理人大会',
    22. 'num':'380',
    23. 'state':'已结束',
    24. 'time': '10月09日 17:39',
    25. 'address': '北京市·朝阳区'
    26. },
    27. {
    28. 'id': '1',
    29. 'image': 'https://img.51miz.com/Templet/00/20/68/42/206842_5b3fc9bfb569c4cf1865d2006e5b9e17_1365.jpg',
    30. 'title': 'iphone 新品发布会主持人员安排',
    31. 'num':'500',
    32. 'state':'进行中',
    33. 'time': '10月20日 17:31',
    34. 'address': '上海'
    35. }
    36. ],
    37. lists1: [
    38. {
    39. 'id': '1',
    40. 'image': 'https://1.s91i.faiusr.com/4/AFsI4uYPEAQYACDw69bhBSjulrWKBTDABzicBA!800x800.png?_tm=3&v=1556100764632',
    41. 'title': '2023招募开发工程师 | 深圳·北京PM大会 ',
    42. 'num':'24',
    43. 'state':'进行中',
    44. 'time': '10月21日 17:59',
    45. 'address': '深圳市·南山区'
    46. },
    47. {
    48. 'id': '1',
    49. 'image': 'https://img.zcool.cn/community/01e71e61e7c7ba11013e8cd0236304.jpg?x-oss-process=image/auto-orient,1/resize,m_lfit,w_1280,limit_1/sharpen,100',
    50. 'title': '隔空对话 | 国潮主理人大会',
    51. 'num':'380',
    52. 'state':'已结束',
    53. 'time': '10月09日 17:39',
    54. 'address': '北京市·朝阳区'
    55. },
    56. {
    57. 'id': '1',
    58. 'image': 'https://img.51miz.com/Templet/00/20/68/42/206842_5b3fc9bfb569c4cf1865d2006e5b9e17_1365.jpg',
    59. 'title': 'iphone 新品发布会主持人员安排',
    60. 'num':'500',
    61. 'state':'进行中',
    62. 'time': '10月20日 17:31',
    63. 'address': '上海'
    64. }
    65. ],
    66. lists2: [
    67. {
    68. 'id': '1',
    69. 'image': 'https://bpic.588ku.com/Templet_origin_pic/05/08/59/20760ea806f4a490f73c577d69e8ffe8.jpg',
    70. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    71. 'num':'304',
    72. 'state':'进行中',
    73. 'time': '10月09日 17:59',
    74. 'address': '深圳市·南山区'
    75. },
    76. {
    77. 'id': '1',
    78. 'image': 'https://img-u-2.51miz.com/Templet/00/18/17/65/181765_bbf22358519e77310bda1f7457500141.jpg',
    79. 'title': 'AI WORLD 2016世界人工智能大会',
    80. 'num':'380',
    81. 'state':'已结束',
    82. 'time': '10月09日 17:39',
    83. 'address': '北京市·朝阳区'
    84. }
    85. ],
    86. lists3: [
    87. {
    88. 'id': '1',
    89. 'image': 'https://bpic.588ku.com/Templet_origin_pic/05/08/59/20760ea806f4a490f73c577d69e8ffe8.jpg',
    90. 'title': '对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】',
    91. 'num':'304',
    92. 'state':'进行中',
    93. 'time': '10月09日 17:59',
    94. 'address': '深圳市·南山区'
    95. },
    96. {
    97. 'id': '1',
    98. 'image': 'https://1.s91i.faiusr.com/4/AFsI4uYPEAQYACDv69bhBSiCruq3BTDABzicBA!800x800.png?v=1556100745578',
    99. 'title': 'AI WORLD 2016世界人工智能大会',
    100. 'num':'380',
    101. 'state':'已结束',
    102. 'time': '10月09日 17:39',
    103. 'address': '北京市·朝阳区'
    104. },
    105. {
    106. 'id': '1',
    107. 'image': 'https://ts1.cn.mm.bing.net/th/id/R-C.022f2e37a033ca3c5754d2f32e8132a1?rik=9ysyMcx6nMOilg&riu=http%3a%2f%2fres.picxiaobai.com%2ftxb%2ftemplate%2fpre%2f20200517%2fd7580b5326b45a612dbf2c1904bc6ca2.jpg%3fv%3d1589705812%26x-oss-process%3dimage%2fresize%2cw_500&ehk=mHQV45sPbW8QB5iv%2ftSXZeasTn4bN6d%2bdLOtwiOYpl8%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1',
    108. 'title': 'H100太空商业大会',
    109. 'num':'500',
    110. 'state':'进行中',
    111. 'time': '10月09日 17:31',
    112. 'address': '大连市'
    113. },
    114. {
    115. 'id': '1',
    116. 'image': 'https://img.tukuppt.com/ad_preview/00/10/75/5d78cd9a6a9b4.jpg!/fw/780',
    117. 'title': '报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”',
    118. 'num':'150',
    119. 'state':'已结束',
    120. 'time': '10月09日 17:21',
    121. 'address': '北京市·朝阳区'
    122. },
    123. {
    124. 'id': '1',
    125. 'image': 'https://img-u-2.51miz.com/Templet/00/18/17/65/181765_bbf22358519e77310bda1f7457500141.jpg',
    126. 'title': '新质生活 · 品质时代 2016消费升级创新大会',
    127. 'num':'217',
    128. 'state':'进行中',
    129. 'time': '10月09日 16:59',
    130. 'address': '北京市·朝阳区'
    131. }
    132. ]
    133. },
    134. /**
    135. * 生命周期函数--监听页面加载
    136. */
    137. onLoad(options) {
    138. },
    139. /**
    140. * 生命周期函数--监听页面显示
    141. */
    142. onShow() {
    143. },
    144. //列表切换事件
    145. tabsItemChange(e){
    146. let tolists = null;
    147. if(e.detail.index==0){
    148. tolists = this.data.lists1;
    149. }else if(e.detail.index==1){
    150. tolists = this.data.lists2;
    151. }else{
    152. tolists = this.data.lists3;
    153. }
    154. this.setData({
    155. lists: tolists
    156. })
    157. },
    158. /**
    159. * 生命周期函数--监听页面隐藏
    160. */
    161. onHide() {
    162. },
    163. /**
    164. * 生命周期函数--监听页面卸载
    165. */
    166. onUnload() {
    167. },
    168. /**
    169. * 页面相关事件处理函数--监听用户下拉动作
    170. */
    171. onPullDownRefresh() {
    172. },
    173. /**
    174. * 页面上拉触底事件的处理函数
    175. */
    176. onReachBottom() {
    177. },
    178. /**
    179. * 用户点击右上角分享
    180. */
    181. onShareAppMessage() {
    182. }
    183. })

    3.6 效果图

    四、个人中心界面搭建

    4.1 WXML

    1. <view class="userInfo">
    2. <image class="userInfo-head" src="/static/images/avatar.png">image>
    3. <text class="userInfo-login">云村小威text>
    4. view>
    5. <view class="cells">
    6. <view class="cell-items">
    7. <image src="/static/tabBar/oa.png" class="cell-items-icon">image>
    8. <text class="cell-items-title">我主持的会议text>
    9. <text class="cell-items-num">1text>
    10. <text class="cell-items-detail">text>
    11. view>
    12. <hr/>
    13. <view class="cell-items">
    14. <image src="/static/tabBar/myoa.png" class="cell-items-icon">image>
    15. <text class="cell-items-title">我参与的会议text>
    16. <text class="cell-items-num">1text>
    17. <text class="cell-items-detail">text>
    18. view>
    19. view>
    20. <view class="cells">
    21. <view class="cell-items">
    22. <image src="/static/tabBar/putpassage.png" class="cell-items-icon">image>
    23. <text class="cell-items-title">我发布的投票text>
    24. <text class="cell-items-num">1text>
    25. <text class="cell-items-detail">text>
    26. view>
    27. <hr/>
    28. <view class="cell-items">
    29. <image src="/static/tabBar/passage.png" class="cell-items-icon">image>
    30. <text class="cell-items-title">我参与的投票text>
    31. <text class="cell-items-num">1text>
    32. <text class="cell-items-detail">text>
    33. view>
    34. view>
    35. <view class="cells">
    36. <view class="cell-items">
    37. <image src="/static/tabBar/message.png" class="cell-items-icon">image>
    38. <text space="ensp" class="cell-items-title">消 息text>
    39. <text class="cell-items-num">1text>
    40. <text class="cell-items-detail">text>
    41. view>
    42. <hr/>
    43. <view class="cell-items">
    44. <image src="/static/tabBar/设置.png" class="cell-items-icon">image>
    45. <text space="ensp" class="cell-items-title">设 置text>
    46. <text class="cell-items-num">1text>
    47. <text class="cell-items-detail">text>
    48. view>
    49. view>

    4.2 WXSS

    1. /* pages/ucenter/index/index.wxss */
    2. Page{
    3. background-color: rgba(159, 212, 245, 0.075);
    4. }
    5. .userInfo{
    6. display: flex;
    7. flex-direction:column;
    8. align-items: center;
    9. height: 350rpx;
    10. width: 100%;
    11. background-color: #fff;
    12. margin-bottom: 20rpx;
    13. }
    14. .userInfo-head{
    15. width: 200rpx;
    16. height: 200rpx;
    17. border-radius: 50%;
    18. overflow:hidden;
    19. margin: 11px 20rpx;
    20. }
    21. .userInfo-login{
    22. margin: 15px 20rpx;
    23. }
    24. .userInfo-set{
    25. height: 100rpx;
    26. width: 100rpx;
    27. margin:120rpx 20rpx;
    28. }
    29. .cells{
    30. background-color: #fff;
    31. height: 270rpx;
    32. margin-bottom: 30rpx;
    33. }
    34. .cell-items{
    35. height: 110rpx;
    36. display: flex;
    37. margin: 20rpx 0 0 0;
    38. align-items: center;
    39. /* border-bottom: 1px solid lightskyblue; */
    40. }
    41. .cell-items-icon{
    42. height: 70rpx;
    43. width: 70rpx;
    44. margin: 0rpx 0 0 15rpx;
    45. }
    46. .cell-items-title{
    47. font-weight: 700;
    48. font-size: 18px;
    49. margin: 0rpx 0 0 30rpx;
    50. }
    51. .cell-items-num{
    52. margin: 0 0 0 335rpx;
    53. }
    54. .cell-items-detail{
    55. margin: 0 0 0 20rpx;
    56. }
    57. .cells > hr{
    58. display: block;
    59. height: 1px;
    60. background-color: rgba(135, 206, 250, 0.075);
    61. }

    4.3 效果图

  • 相关阅读:
    spring-aop-execution表达式
    k8s、数据存储
    VC++程序崩溃时,使用Visual Studio静态分析dump文件
    降水检验项目展示(工作机会/私活请私信我)
    Spark任务调度
    学会这些分析定位BUG小技巧,你离跨入中级测试还远吗?
    内网渗透-内置工具横向移动
    transformer系列3---transformer结构参数量统计
    CCF计算机资格认证模拟题202303-2垦田计划
    【算法刷题】【反转链表】给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
  • 原文地址:https://blog.csdn.net/Justw320/article/details/133897878