ToB企服应用市场:ToB评测及商务社交产业平台

标题: python后端结合uniapp与uview组件tabs,实现自定义导航按钮与小标签颜色控 [打印本页]

作者: 汕尾海湾    时间: 2024-6-11 09:20
标题: python后端结合uniapp与uview组件tabs,实现自定义导航按钮与小标签颜色控
实现效果(红框内):

后端api如下:
  1. @task_api.route('/user/task/states_list', methods=['POST', 'GET'])
  2. @visitor_token_required
  3. def task_states(user):
  4.     name_list = ['待接单', '设计中', '交付中', '已完成', '全部']
  5.     data = []
  6.     color = ['#F04864', '#F04864', '#F04864', '#19be6b', '#19be6b']
  7.     c_n = 0
  8.     for i in name_list:
  9.         item = {
  10.             'name': i,
  11.             'badge': {
  12.                 'color': '#fff',
  13.                 'bgColor': color[c_n],
  14.                 'value': get_task_states_num(i, user, False)
  15.             }
  16.         }
  17.         data.append(item)
  18.         c_n += 1
  19.     return reg_func(200, data, '查询成功')
复制代码
输出效果:
  1. {
  2.   "code": 200,
  3.   "data": [
  4.     {
  5.       "badge": {
  6.         "bgColor": "#F04864",
  7.         "color": "#fff",
  8.         "value": 0
  9.       },
  10.       "name": "待接单"
  11.     },
  12.     {
  13.       "badge": {
  14.         "bgColor": "#F04864",
  15.         "color": "#fff",
  16.         "value": 2
  17.       },
  18.       "name": "设计中"
  19.     },
  20.     {
  21.       "badge": {
  22.         "bgColor": "#F04864",
  23.         "color": "#fff",
  24.         "value": 11
  25.       },
  26.       "name": "交付中"
  27.     },
  28.     {
  29.       "badge": {
  30.         "bgColor": "#19be6b",
  31.         "color": "#fff",
  32.         "value": 22
  33.       },
  34.       "name": "已完成"
  35.     },
  36.     {
  37.       "badge": {
  38.         "bgColor": "#19be6b",
  39.         "color": "#fff",
  40.         "value": 38
  41.       },
  42.       "name": "全部"
  43.     }
  44.   ],
  45.   "msg": "查询成功",
  46.   "time": "2024-06-09 15:07:47"
  47. }
复制代码
这段代码定义了一个 Flask 路由,处理用户使命状态的获取。下面是对这段代码的详细解释:
路由定义和装饰器

  1. @task_api.route('/user/task/states_list', methods=['POST', 'GET'])
  2. @visitor_token_required
  3. def task_states(user):
复制代码

函数内部逻辑

  1. name_list = ['待接单', '设计中', '交付中', '已完成', '全部']
  2. data = []
  3. color = ['#F04864', '#F04864', '#F04864', '#19be6b', '#19be6b']
  4. c_n = 0
复制代码

遍历状态列表并天生数据

  1. for i in name_list:
  2.     item = {
  3.         'name': i,
  4.         'badge': {
  5.             'color': '#fff',
  6.             'bgColor': color[c_n],
  7.             'value': get_task_states_num(i, user, False)
  8.         }
  9.     }
  10.     data.append(item)
  11.     c_n += 1
复制代码

返回效果

  1. return reg_func(200, data, '查询成功')
复制代码

主要逻辑总结


代码的主要目的

这个路由用于返回用户使命的差别状态及其对应的使命数量,并为每个状态设置特定的颜色,便于前端展示。
uniapp代码如下:
  1. <u-tabs :list="states_list" lineWidth="50" @click="click_tabs" :scrollable="false"
  2.                                         itemStyle="padding:20rpx 2rpx;"></u-tabs>
复制代码
这段代码是一个 Vue.js 模板中的组件调用,具体利用了一个自定义的 <u-tabs> 组件来显示标签页。下面是对这段代码的详细解释:
组件 <u-tabs>

<u-tabs> 组件是一个标签页组件,通常用于在单个页面上显示多个标签,以实现内容的切换。这个组件有几个属性和变乱,用于配置和处理标签的活动。
属性解释

  1. <u-tabs
  2.     :list="states_list"
  3.     lineWidth="50"
  4.     @click="click_tabs"
  5.     :scrollable="false"
  6.     itemStyle="padding:20rpx 2rpx;">
  7. </u-tabs>
复制代码
1. :list="states_list"


每个对象可以包罗标签名称和对应的值或其他属性,具体内容取决于 u-tabs 组件的实现。
2. lineWidth="50"


3. @click="click_tabs"


  1. methods: {
  2.     click_tabs(tabIndex) {
  3.         console.log("标签点击事件,标签索引:", tabIndex);
  4.         // 根据 tabIndex 处理标签点击后的逻辑
  5.     }
  6. }
复制代码
点击标签时,这个方法会吸取一个参数,通常是被点击标签的索引或相关信息。
4. :scrollable="false"


5. itemStyle="padding:20rpx 2rpx"


组件的功能


应用场景

这种组件通常用于用户界面中的导航或内容切换,比方在一个使命管理系统中,用于切换显示差别状态的使命列表。
代码解释由chatGPT协助完成

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4