ant-design-vue中sort排序取值给后端排序

Ant Design of Vue 通过sort排序,返回给后端的排序相关字段

sortField 0更新时间(默认) 1今日被推 sortType 0或者1升序 -1降序

我这里采取的思路是:当你点击到排序时,有一个小三角的颜色会改变,那么就判断css样式是否添加了颜色。
请添加图片描述
当点击了一次,有颜色改变的:请添加图片描述原样式:
在这里插入图片描述
获取所有字段的标题【console.log(record)】,可以看出,我们这里有是13个字段,找到我们需要的字段的下标,然后获取它的样式就可以了。请添加图片描述

这个就是我们要获取的样式的值【record[5].className.length】

其中无变化时的值为: ant-table-column-has-actions ant-table-column-has-sorters ant-table-row-cell-break-word

有变化的值为: ant-table-column-has-actions ant-table-column-has-sorters ant-table-column-sort ant-table-row-cell-break-word
请添加图片描述
然后通过计算它们样式的length就可以了。

原代码:

 <a-table
            :columns="columns"
            :data-source="data"
            size="middle"
            :loading="loading"
            :pagination="false"
            :scrollToFirstRowOnChange="true"
            :customHeaderRow='click'  
        >
     <!--:customHeaderRow='click'  这个是关键,当点击表头的时候,触发click-->
          <div slot="今日被推" slot-scope="PushedTimes"></div>
          <div slot="更新时间" slot-scope="UpdateTime"></div>
          <div slot="操作" slot-scope="record"></div>
        </a-table>
data() {
        return {
             form: {
                sortField: 0, //0更新时间, 1 今日被推
                sortType: 0, //0、1升序 , -1降序
            },
            columns: [
                {
                    dataIndex: 'PushedTimes',
                    // sorter: (a, b) => a.PushedTimes - b.PushedTimes,//这个是前端排序
                    sorter:true,
                    slots: { title: '今日被推' },
                    scopedSlots: { customRender: '' },
                },
                {
                    title: '更新时间',
                    dataIndex: 'UpdateTime',
                    // sorter: (a, b) => a.UpdateTime - b.UpdateTime, //这个是前端排序
                    sorter:true,
                    scopedSlots: { customRender: '更新时间' },
                },
                {
                    title: '操作',
                    scopedSlots: { customRender: '操作' },
                },
            ],
            editingKey: '',
            a:0,//今日被推
            b:0,//更新时间
            acout:1,//今日被推计数器
            bcout:1,//更新时间计数器
        }
    },
methods: {
click(record, index) {
        return {
          on: {
            click: () => {
              console.log(record)//获取所有头标题
              this.a = record[5].className.length //今日被推
              this.b = record[11].className.length //更新时间
              
              //确认排序字段,用户点击了那个字段
              if(this.a==79){
                this.form.sortField=1
                this.bcout = 1
              }
              if(this.b==79){
                this.form.sortField=0
                this.acout = 1
              }
                
			  //计算用户点了几次,来判断降序还是升序
              //这里可以再用一个函数,因为操作方式都是一样的,我这用了比较笨的办法
              if(this.form.sortField===1){
                // console.log("今日被推")
                  if(this.acout==2){
                    // console.log("降序")
                    this.form.sortType=-1
                    this.acout++
                  }else if(this.a%79===0 && this.acout==1){
                    // console.log("升序")
                    this.form.sortType=1
                    this.acout++
                  }else if(this.acout==3){
                    // console.log("升序")
                    this.form.sortType=0
                    this.acout = 1
                  }
              }

              if(this.form.sortField===0){
                // console.log("更新时间")
                  if(this.bcout==2){
                    // console.log("降序")
                    this.form.sortType=-1
                    this.bcout++
                  }else if(this.bcout==1){
                    // console.log("升序")
                    this.form.sortType=1
                    this.bcout++
                  }else if(this.bcout==3){
                    // console.log("升序")
                    this.form.sortType=0
                    this.bcout = 1
                  }
              }
              // console.log(this.form.sortField)
              // console.log(this.form.sortType)
            }
          }
        }
      },
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在Vue3.0使用ant-design-vue,需要先安装ant-design-vue和Vue3.0。可以使用npm或yarn来安装这些依赖项。 安装完成后,需要在Vue应用程序引入ant-design-vue组件。可以在main.js文件导入ant-design-vue并注册组件,如下所示: ``` import { createApp } from 'vue'; import App from './App.vue'; import Antd from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; const app = createApp(App); app.use(Antd); app.mount('#app'); ``` 在这个例子,我们导入了App.vue组件和ant-design-vue库。我们还导入了ant-design-vue的CSS文件。然后,我们使用Vue的createApp方法创建了一个Vue应用程序实例,并使用Antd插件注册了所有的ant-design-vue组件。最后,我们将应用程序挂载到DOM元素上。 现在,您可以在Vue组件使用ant-design-vue组件了。例如,在App.vue组件,您可以添加一个Button组件,如下所示: ``` <template> <div> <a-button type="primary">Primary Button</a-button> </div> </template> ``` 这将在页面上显示一个蓝色的主要按钮。您可以使用其他ant-design-vue组件来构建您的Vue应用程序界面。 ### 回答2: Ant Design Vue是一个优秀的Vue UI组件库,具有丰富的组件和可定制性。在Vue3.0ant-design-vue一起使用时,需要遵循以下几个步骤: 1. 使用Vue CLI 5.0创建一个Vue3.0项目:可以使用Vue CLI 5.0创建一个新的Vue3.0项目,确保已安装Vue CLI 5.0,并在命令行输入以下命令: ``` vue create my-project ``` 2. 安装ant-design-vue:在项目目录,可以通过npm或yarn安装ant-design-vue,输入以下命令: ``` npm install ant-design-vue --save ``` 或 ``` yarn add ant-design-vue ``` 安装完成后,需要在main.js引入并使用它,输入以下代码: ``` import { createApp } from 'vue' import App from './App.vue' import Antd from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; const app = createApp(App) app.use(Antd) app.mount('#app') ``` 3. 使用ant-design-vue组件:在Vue3.0,可以使用ant-design-vue组件来构建UI界面,例如: ``` <template> <a-button type="primary"> Primary Button </a-button> </template> <script> import { Button } from 'ant-design-vue'; export default { name: 'MyComponent', components: { 'a-button': Button } } </script> ``` 在代码导入Button组件,然后在模板通过自定义标签来使用Button组件。 除了以上步骤,还可以通过自定义主题和按需加载来进一步优化ant-design-vue的使用。总之,在Vue3.0使用ant-design-vue可以帮助开发人员快速构建出美观、易用的Web应用程序。 ### 回答3: Vue3.0是目前最新的Vue框架版本,它与前几个版本相比,在性能和开发效率上都有了很大的提高。而Ant Design Vue是一个非常流行的UI框架,也是许多Vue开发者所青睐的选择之一。在Vue3.0使用Ant Design Vue的方法如下: 1. 安装Ant Design Vue 在命令行输入以下命令安装Ant Design Vue: ```bash npm install ant-design-vue --save ``` 2. 在Vue项目引入Ant Design Vue 在main.js文件导入Ant Design Vue: ```javascript import { createApp } from 'vue'; import Antd from 'ant-design-vue'; import App from './App.vue'; import 'ant-design-vue/dist/antd.css'; const app = createApp(App); app.use(Antd); app.mount('#app'); ``` 在上述代码,我们通过import语句将Ant Design Vue导入到了我们的Vue项目,并使用app.use(Antd)将其引入到了Vue实例。我们还通过import 'ant-design-vue/dist/antd.css'语句引入了Ant Design Vue的CSS样式文件,以便在项目使用Ant Design Vue的样式。 3. 使用Ant Design Vue组件 现在,我们已经可以在Vue项目使用Ant Design Vue组件啦!例如,我们可以在App.vue这样使用Button组件: ```vue <template> <div> <a-button type="primary">Primary Button</a-button> </div> </template> <script> export default { name: 'App', }; </script> ``` 最后,我们需要运行npm run serve命令以启动Vue项目。在浏览器打开http://localhost:8080,应该就可以看到一个使用Ant Design Vue Button组件的页面啦! 总之,使用Ant Design Vue可以让我们快捷、高效地构建Vue项目。希望这篇回答能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值