首页 > 其他分享 >排序三角组件

排序三角组件

时间:2023-04-26 10:15:50浏览次数:40  
标签:uuid 2cc2a5 三角 currentOrder grid 组件 排序 border activeOrder

效果

排序三角组件

<template>
  <div class="order">
    <div class="order-text" @click="textBtnFn">
      <slot></slot>
    </div>
    <div class="order-icon" @click="nabFn">
      <div :class="['nab', 'nablb',currentOrder === 1 ? 'active-nablb' : '']"></div>
      <div :class="['nab', 'nablt',currentOrder === 2 ? 'active-nablt' : '']"></div>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    activeOrder: {
      type: [Number],
      default: 0,
    },
    uuid: {
      type: [String, Number],
      default: 0
    }
  },
  comments: {},
  computed: {},
  data() {
    return {
      currentOrder: 0
    }
  },
  created() {},
  mounted() {},
  beforeDestroy() {},
  methods: {
    // 初始化排序
    initOrder () {
      this.currentOrder = 0
    },

    // 文字点击
    textBtnFn () {
      this.nabFn()
    },

    // 排序
    nabFn () {
      if (this.currentOrder === 1) {
        this.currentOrder = 2
      } else if (this.currentOrder === 2) {
        this.currentOrder = 1
      } else {
        this.currentOrder = 1
      }
      this.$emit('click', this.currentOrder,this.uuid)
    }
  },
  watch: {
    activeOrder: {
      handler(num) {
        this.currentOrder = num
      },
      deep: true,
      immediate: true
    }
  },
}
</script>

<style lang="less" scoped>
.order {
  font-size: 12px;

  display: grid;
  grid-template-columns: 1fr 15px;
  &-text {
    width: max-content;

    display: flex;
    align-items: center;

    &:hover {
      cursor: pointer;
      color: #2cc2a5;
    }
  }
  &-icon {
    display: grid;
    grid-template-rows: repeat(2, 1fr);
    justify-content: center;
    align-self: center;
    grid-gap: 2px;

    .nab {
      width: 0px;
      height: 0px;
      cursor: pointer;
      border-left: 4px solid transparent;
      border-right: 4px solid transparent;
    }
    .nablb {
      border-bottom: 6px solid #8798ad;

      &:hover {
        border-bottom-color: #2cc2a5;
      }
    }
    .nablt {
      border-top: 6px solid #8798ad;
      &:hover {
        border-top-color: #2cc2a5;
      }
    }
    .active-nablb {
      border-bottom-color: #2cc2a5;
    }
    .active-nablt {
      border-top-color: #2cc2a5;
    }
  }
}
</style>

使用

uuid 是使用多个组件的唯一标识;
activeOrder 是三角显示高亮样式的开关;1为上三角,2为下三角,0为默认样式;

<div class="order-buttons flex">
  <order-button :uuid="0" :active-order="activeOrder[0]" @click="taskTotalFn">任务状态</order-button>
  <order-button :uuid="1" :active-order="activeOrder[1]" @click="taskTotalFn">已完成集数</order-button>
  <order-button :uuid="2" :active-order="activeOrder[2]" @click="taskTotalFn">总任务集数</order-button>
</div>

activeOrder: [0, 0, 1]

taskTotalFn(sortNum, uuid) {
  this.activeOrder.forEach((res, index) => {
    if (index !== uuid) {
      this.$set(this.activeOrder, index, 0)
    } else {
      this.$set(this.activeOrder, index, sortNum)
    }
  })
  console.log(this.activeOrder, 'this.activeOrder')
},

标签:uuid,2cc2a5,三角,currentOrder,grid,组件,排序,border,activeOrder
From: https://www.cnblogs.com/DL-CODER/p/17354785.html

相关文章

  • 老杜2023最新Vue实战精讲(三)Vue组件化
    动力节点老杜全新版Vue教程笔记分享给大家学习の地止:https://www.bilibili.com/video/BV17h41137i4视频教程从Vue2开始讲解,一步一个案例,知识点由浅入深,然后很自然的过度到Vue3版本。Vue3是目前企业中使用最多的一个版本。视频中会把每一个Vue的知识点讲解的非常通透,不但举例......
  • PMP-05-项目管理铁三角
    一、项目管理体三角,包括时间、成本和质量,这三个因素相互制约。二、项目工期紧张时,需要谨慎使用加人的方法来解决。三、时间是最容易被确定和被忽视的一个维度,但是项目经理要克制追求时间的冲动。四、长期质量是最容易被伤害的。除了短期质量以外,长期质量更需要被关注。......
  • 打印上下三角形
    #include<iostream>usingnamespacestd;intmain(){ intn; while(cin>>n){ for(inti=1;i<=n;i++) { for(intj=1;j<=n-i;j++) { cout<<""; } for(intj=1;j<=2*i-1;j++) { cout<<"*"; } cout<<end......
  • 排序算法之详解选择排序
    引入选择排序顾名思义是需要进行选择的,那么就要问题了,选择到底是选择什么呢?选择排序的选择是选择数组中未排序的数组中最小的值,将被选择的元素放在未排序数组的首位如果你对‘未排序数组’,‘选择’的概念不理解,那么你可以看看下面的图思路有了上面的一些基础之......
  • 冒泡排序
    问题描述:对N个整数(数据由键盘输入)进行升序排列。这里采用五个数。代码如下:#include<iostream>#include<vector>usingnamespacestd;intmain(){ inta[5],t; for(inti=0;i<5;i++){ cin>>a[i]; } for(inti=1;i<=4;i++){ for(intj=0;j<......
  • Three.js教程:Face3对象定义Geometry的三角形面
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生Face3对象定义Geometry的三角形面几何体Geometry的三角面属性geometry.faces和缓冲类型几何体BufferGeometry顶点索引属性BufferGeometry.index类似都是顶点位置数据的索引值,用来组织网格模型三角形的绘制。......
  • java8 lambda 求list最大值、最小值、平均值、求和、中位数、属性排序(空指针异常,空值
    点击查看代码importorg.junit.Test;importjava.text.SimpleDateFormat;importjava.util.*;importjava.util.stream.Collectors;importstaticjava.util.Comparator.comparingLong;importstaticjava.util.stream.Collectors.*;/***@Author:*@Date:2018/12......
  • 分治算法:剑指 Offer 25. 合并两个排序的链表
    题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 限制:0<=链表长度<=1000 解题思路:    classSolution{publicListNodemergeTwoLists(ListNodel1,ListNodel2){ListNodedum=newListNode......
  • 用Python实现十大经典排序算法
    用Python实现十大经典排序算法1.冒泡排序冒泡排序(BubbleSort)是一种比较简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。算法过程比较相邻的元素,如果前一个比后一个大,就把它们两个对调位......
  • 排序算法之详解冒泡排序
    引入冒泡排序顾名思义,就是像冒泡一样,泡泡在水里慢慢升上来,由小变大。虽然冒泡排序和冒泡并不完全一样,但却可以帮助我们理解冒泡排序。思路一组无序的数组,要求我们从小到大排列我们可以先将最大的元素放在数组末尾再将第二大的数放在数组的倒数第二个位置再将第三大......