IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 小程序 vant tab icon -> 正文阅读

[JavaScript知识库]小程序 vant tab icon

在这里插入图片描述

index.js

  externalClasses: ['wr-class'],

  options: {
    multipleSlots: true,
  },

  properties: {
    overall: {
      type: Number,
      value: 1,
      observer(overall) {
        this.setData({
          overall,
        });
      },
    },
    sorts: {
      type: String,
      value: '',
      observer(sorts) {
        this.setData({
          sorts,
        });
      },
    },
    goodtype: {
      type: String,
      value: '',
      observer(goodtype) {
        this.setData({
          goodtype,
        });
      },
    },
    color: {
      type: String,
      value: '#FA550F',
    },
  },

  data: {
    overall: 1,
    sorts: '',
    goodtype: '',
  },

  methods: {
    handleGoodSort() {
      const { goodtype } = this.data;
      this.triggerEvent('change', {
        ...this.properties,
        goodtype: goodtype === 'desc' ? 'asc' : 'desc',
        overall: 2,
        sorts: '',
      });
    },

    handlePriseSort() {
      const { sorts } = this.data;
      this.triggerEvent('change', {
        ...this.properties,
        overall: 0,
        sorts: sorts === 'desc' ? 'asc' : 'desc',
        goodtype: '',
      });
    },

    onOverallAction() {
      const { overall } = this.data;
      const nextOverall = overall === 1 ? 0 : 1;
      const nextData = {
        sorts: '',
        prices: [],
      };
      this.triggerEvent('change', {
        ...this.properties,
        ...nextData,
        overall: nextOverall,
        sorts: '',
        goodtype: '',
      });
    },
  },
});

index.json

{
    "component": true,
    "usingComponents": {
        "t-icon": "tdesign-miniprogram/icon/icon"
    }
}

index.wxml

<!-- 过滤组件 -->
<view class="wr-class filter-wrap">
  <view class="filter-left-content">
    <view
      class="filter-item {{overall === 1 ? 'filter-active-item' : ''}}"
      bindtap="onOverallAction"
    >
      综合
    </view>
    <view class="filter-item" bind:tap="handlePriseSort">
      <text style="color: {{sorts !== '' ? color : '' }}">价格</text>
      <view class="filter-price">
        <t-icon
          prefix="wr"
          name="arrow_drop_up"
          size="18rpx"
          style="color:{{sorts === 'asc' ? color : '#bbb'}}"
        />
        <t-icon
          prefix="wr"
          name="arrow_drop_down"
          size="18rpx"
          style="color:{{sorts === 'desc' ? color : '#bbb'}}"
        />
      </view>
    </view>
    <view class="filter-item" bind:tap="handleGoodSort">
      <text style="color: {{goodtype !== ''? color : '' }}">好评</text>
      <view class="filter-price">
        <t-icon
          prefix="wr"
          name="arrow_drop_up"
          size="18rpx"
          style="color:{{goodtype === 'asc' ? color : '#bbb'}}"
        />
        <t-icon
          prefix="wr"
          name="arrow_drop_down"
          size="18rpx"
          style="color:{{goodtype === 'desc' ? color : '#bbb'}}"
        />
      </view>
    </view>
  </view>
</view>

index.wxss

.filter-wrap {
  width: 100%;
  height: 88rpx;
  display: flex;
  justify-content: space-between;
  position: relative;
  background: #fff;
}

.filter-right-content {
  height: 100%;
  flex-basis: 100rpx;
  text-align: center;
  line-height: 88rpx;
}

.filter-left-content {
  height: 100%;
  display: flex;
  flex-grow: 2;
  flex-flow: row nowrap;
  justify-content: space-between;
}

.filter-left-content .filter-item {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26rpx;
  line-height: 36rpx;
  font-weight: 400;
  color: rgba(51, 51, 51, 1);
}

.filter-left-content .filter-item .filter-price {
  display: flex;
  flex-direction: column;
  margin-left: 6rpx;
  justify-content: space-between;
}

.filter-left-content .filter-item .wr-filter {
  margin-left: 8rpx;
}

.filter-left-content .filter-active-item {
  color: #fa550f;
}

引用

 <to-fliter
    wr-class="filter-container"
    bind:change="handleFilterChange"
    layout="{{layout}}"
    sorts="{{sorts}}"
    goodtype="{{goodtype}}"
    overall="{{overall}}"
  />

js

  handleFilterChange(e) {
    const { overall, sorts, goodtype } = e.detail;
    console.log(overall, sorts, goodtype);
    this.pageNum = 1;
    this.setData({
      sorts,
      overall,
      goodtype,
    });
    this.init(true);
  },
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:33:45  更:2022-04-26 11:37:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:47:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码