Vue开发05:Vue中Ant-design主要控件用法demo(js为主)

Ant-design主要控件事件总结

在线测试网站:在线运行Vue组件 (rscl.cc)

以下demo全部基于ant-design-vue组件(版本1.7.8)


一、下拉框

1.选项直接赋值($event)

用下面这个技巧,可以不写methods,注意如果需要打印要写成 this.SelectedValue.val 

<template><div><!-- a-select 选择框 --><a-select @change="selectedValue = $event" placeholder="请选择一个选项" style="width: 200px;"><a-select-option value="apple">苹果</a-select-option><a-select-option value="banana">香蕉</a-select-option><a-select-option value="cherry">樱桃</a-select-option></a-select><!-- p 标签展示选择的内容 --><p>你选择的水果是: {{ selectedValue }}</p></div>
</template><script>
export default {data() {return {// 用来保存选择的值selectedValue: ''};}
};
</script><style scoped>
/* 样式可以根据需要调整 */
</style>

麻烦点也可以写成一个方法:

methods: {handleChange(event) {const selectedValue = event.target.value;//通过事件获取变化的目标值this.message = selectedValue === '第一个' ? '点击了第一个' : '点击了第二个';}}

 

 2.三联动

<template><a-row><a-col :span="8"><a-select v-model="selectedCountry" @change="onCountryChange" placeholder="请选择国家" style="width: 100px;" allow-clear><a-select-option v-for="country in uniqueCountries" :key="country" :value="country">{{ country }}</a-select-option></a-select></a-col><a-col :span="8"><a-select v-model="selectedDistrict" @change="onDistrictChange"  placeholder="请选择地区" style="width: 100px;" allow-clear><a-select-option v-for="district in filteredDistricts" :key="district" :value="district">{{ district }}</a-select-option></a-select></a-col><a-col :span="8"><a-select v-model="selectedSchool" @change="onSchoolChange" placeholder="请选择学校" style="width: 100px;" allow-clear><a-select-option v-for="school in filteredSchools" :key="school" :value="school">{{ school }}</a-select-option></a-select></a-col></a-row>
</template><script>
export default {data() {return {selectedCountry: null,selectedDistrict: null,selectedSchool: null,originalData: [{ country: "中国", district: "北京市", school: "北京大学" },{ country: "中国", district: "上海市", school: "复旦大学" },{ country: "美国", district: "马萨诸塞州", school: "哈佛大学" }],uniqueCountries: [],filteredDistricts: [],filteredSchools: []};},methods: {onCountryChange() {this.selectedDistrict = null; // 重置地区和学校选择this.selectedSchool = null;this.queryset();},onDistrictChange() {this.selectedSchool = null; // 重置学校选择this.queryset();},onSchoolChange() {this.queryset();},queryset() {let filteredData = this.originalData;if (this.selectedCountry) {filteredData = filteredData.filter(item => item.country === this.selectedCountry);}if (this.selectedDistrict) {filteredData = filteredData.filter(item => item.district === this.selectedDistrict);}if (this.selectedSchool) {filteredData = filteredData.filter(item => item.school === this.selectedSchool);}this.uniqueCountries = [...new Set(filteredData.map(item => item.country))];this.filteredDistricts = [...new Set(filteredData.map(item => item.district))];this.filteredSchools = [...new Set(filteredData.map(item => item.school))];}},mounted() {this.queryset(); // 初始化调用}
};
</script>

二、按钮

1.开关功能

<template><div><!-- 切换加载状态按钮 --><a-button @click="isLoading = !isLoading">{{ isLoading ? '停止加载' : '开始加载' }}</a-button><!-- 切换按钮C启用/禁用状态 --><a-button @click="isEnabled = !isEnabled">{{ isEnabled ? '禁用按钮 C' : '启用按钮 C' }}</a-button><!-- 控制是否显示按钮 C --><a-button @click="showButtonC = !showButtonC">{{ showButtonC ? '隐藏按钮 C' : '显示按钮 C' }}</a-button><!-- 只有在 showButtonC 为 true 时才渲染按钮 C --><a-button v-if="showButtonC" :disabled="!isEnabled" :loading="isLoading">按钮 C</a-button></div>
</template><script>
export default {data() {return {isLoading: false, // 控制按钮 C 的加载状态isEnabled: true, // 控制按钮 C 的启用/禁用状态showButtonC: true // 控制按钮 C 的显示/隐藏};}
};
</script>
<template><div id="app"><!-- 第一个按钮:点击后改变第二个按钮的颜色 --><a-button type="primary" @click="isChanged = !isChanged">点击我改变颜色</a-button><!-- 第二个按钮:颜色会根据点击情况变化 --><a-button :id="'button2'" :style="isChanged ? { backgroundColor: 'red', color: 'black' } : { backgroundColor: 'gray', color: 'white' }" type="default">第二个按钮</a-button></div>
</template><script>
export default {data() {return {// 用来控制样式切换的布尔值isChanged: false};}
};
</script>

 

三、CheckBox

1.全选

<template><div><div><a-checkbox :indeterminate="indeterminate" :checked="checkAll" @change="onCheckAllChange">Check all</a-checkbox></div><br /><a-checkbox-group v-model="checkedList" :options="plainOptions" @change="onChange" /></div>
</template>
<script>
const plainOptions = ['Apple', 'Pear', 'Orange'];
const defaultCheckedList = ['Apple', 'Orange'];
export default {data() {return {checkedList: defaultCheckedList,indeterminate: true,checkAll: false,plainOptions,};},methods: {onChange(checkedList) {this.indeterminate = !!checkedList.length && checkedList.length < plainOptions.length;this.checkAll = checkedList.length === plainOptions.length;},onCheckAllChange(e) {Object.assign(this, {checkedList: e.target.checked ? plainOptions : [],indeterminate: false,checkAll: e.target.checked,});},},
};
</script>

四、时间

1.早晚判断

不允许结束时间比开始时间还早,否则清空

<template><div id="app"><h1>时间选择器</h1><label for="startTime">开始时间:</label><input type="datetime-local" id="startTime" v-model="startTime" @change="checkTime" /><label for="endTime">结束时间:</label><input type="datetime-local" id="endTime" v-model="endTime" @change="checkTime" /></div>
</template><script>
export default {data() {return {startTime: '',endTime: ''};},methods: {checkTime() {if (this.startTime && this.endTime) {if (new Date(this.startTime) > new Date(this.endTime)) {this.startTime = '';this.endTime = '';}}}}
};
</script>

五、表格

1.增删改查表格(v-for v-if @click 传参)

<template><div><table><thead><tr><th>ID</th><th>Name</th><th>Age</th><th>Score</th><th>Actions</th></tr></thead><tbody><tr v-for="(item, index) in items" :key="index"><td>{{ item.id }}</td><td>{{ item.name }}</td><td>{{ item.age }}</td><td>{{ item.score }}</td><td><button @click="showId(item.id)">获取ID</button><button @click="showScore(item.score)">获取分数</button></td></tr></tbody></table><p v-if="selectedId">选中的ID: {{ selectedId }}</p><p v-if="selectedScore !== null">选中的分数: {{ selectedScore }}</p></div>
</template><script>
export default {data() {return {items: [{ id: 1, name: 'Alice', age: 20, score: 85 },{ id: 2, name: 'Bob', age: 22, score: 90 },{ id: 3, name: 'Charlie', age: 23, score: 88 },{ id: 4, name: 'David', age: 21, score: 92 },{ id: 5, name: 'Eva', age: 24, score: 95 }],selectedId: null,selectedScore: null};},methods: {showId(id) {this.selectedId = id;this.selectedScore = null; // 清除选中的分数},showScore(score) {this.selectedScore = score;this.selectedId = null; // 清除选中的ID}}
};
</script><style scoped>
table {width: 100%;border-collapse: collapse;
}
th, td {border: 1px solid #ddd;padding: 8px;text-align: left;
}
th {background-color: #f2f2f2;
}
</style>

语法总结:

item代表元素,index代表索引,如果有id,优先选择 item.id 作为key!其次可以选择index作为key~

<tr v-for="(item, index) in items" :key="index">
<tr v-for="(item, index) in items" :key="item.id">

2.增删改查表格(slot插槽) 

<template><a-table :data-source="tableData" :columns="columns" rowKey="id"><!-- 使用 slot 定义操作列 --><template slot="action" slot-scope="text, record"><a-button @click="handleEdit(record)" size="small" type="primary">编辑</a-button><a-button @click="handleDelete(record)" size="small" type="danger">删除</a-button></template></a-table>
</template><script>
export default {data() {return {tableData: [{ id: 1, name: '张三', age: 24 },{ id: 2, name: '李四', age: 30 },{ id: 3, name: '王五', age: 28 },],columns: [{ title: 'ID', dataIndex: 'id' },{ title: '名称', dataIndex: 'name' },{ title: '年龄', dataIndex: 'age' },{title: '操作',// 定义操作列的插槽dataIndex: 'action',scopedSlots: { customRender: 'action' }}]};},methods: {handleEdit(record) {this.$message.info(`编辑 ${record.name}`);},handleDelete(record) {this.$message.info(`删除 ${record.name}`);}}
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红队笔记--W1R3S、JARBAS、SickOS、Prime打靶练习记录

W1R3S(思路为主) 信息收集 首先使用nmap探测主机&#xff0c;得到192.168.190.147 接下来扫描端口&#xff0c;可以看到ports文件保存了三种格式 其中.nmap和屏幕输出的一样&#xff1b;xml这种的适合机器 nmap -sT --min-rate 10000 -p- 192.168.190.147 -oA nmapscan/ports…

学习笔记|MaxKB对接本地大模型时,选择Ollma还是vLLM?

在使用MaxKB开源知识库问答系统的过程中&#xff0c;除了对接在线大模型&#xff0c;一些用户出于资源配置、长期使用成本、安全性等多方面考虑&#xff0c;还在积极尝试通过Ollama、vLLM等模型推理框架对接本地离线大模型。而在用户实践的过程中&#xff0c;经常会对候选的模型…

计算机网络八股整理(一)

计算机网络八股文整理 一&#xff1a;网络模型 1&#xff1a;网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型&#xff0c;它由七层组成&#xff0c;从上到下分别是&#xff1a;应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;…

Spring Boot教程之五:在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序

在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序 IntelliJ IDEA 是一个用 Java 编写的集成开发环境 (IDE)。它用于开发计算机软件。此 IDE 由 Jetbrains 开发&#xff0c;提供 Apache 2 许可社区版和商业版。它是一种智能的上下文感知 IDE&#xff0c;可用于在各种应用程序…

单片机学习笔记 9. 8×8LED点阵屏

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

vue 预览pdf 【@sunsetglow/vue-pdf-viewer】开箱即用,无需开发

sunsetglow/vue-pdf-viewer 开箱即用的pdf插件sunsetglow/vue-pdf-viewer, vue3 版本 无需多余开发&#xff0c;操作简单&#xff0c;支持大文件 pdf 滚动加载&#xff0c;缩放&#xff0c;左侧导航&#xff0c;下载&#xff0c;页码&#xff0c;打印&#xff0c;文本复制&…

Css—实现3D导航栏

一、背景 最近在其他的网页中看到了一个很有趣的3d效果&#xff0c;这个效果就是使用css3中的3D转换实现的&#xff0c;所以今天的内容就是3D的导航栏效果。那么话不多说&#xff0c;直接开始主要内容的讲解。 二、效果展示 三、思路解析 1、首先我们需要将这个导航使用一个大…

重新定义社媒引流:AI社媒引流王如何为品牌赋能?

在社交媒体高度竞争的时代&#xff0c;引流已经不再是单纯追求流量的数字游戏&#xff0c;而是要找到“对的用户”&#xff0c;并与他们建立真实的连接。AI社媒引流王通过技术创新和智能策略&#xff0c;重新定义了社媒引流的方式&#xff0c;帮助品牌在精准触达和高效互动中脱…

Docker1:认识docker、在Linux中安装docker

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

Centos 8, add repo

Centos repo前言 Centos 8更换在线阿里云创建一键更换repo 自动化脚本 华为Centos 源 , 阿里云Centos 源 华为epel 源 , 阿里云epel 源vim /centos8_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han

《硬件架构的艺术》笔记(五):低功耗设计

介绍 能量以热量形式消耗&#xff0c;温度升高芯片失效率也会增加&#xff0c;增加散热片或风扇会增加整体重量和成本&#xff0c;在SoC级别对功耗进行控制就可以减少甚至可能消除掉这些开支&#xff0c;产品也更小更便宜更可靠。本章描述了减少动态功耗和静态功耗的各种技术。…

Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程

clc clear% 定义输入变量 x linspace(0,2,10000);% 定义网络的层参数 inputSize 1; layers [featureInputLayer(inputSize,Normalization"none")fullyConnectedLayer(10)sigmoidLayerfullyConnectedLayer(1)sigmoidLayer]; % 创建网络 net dlnetwork(layers);% 训…

LM2904运算放大器的应用:测电池电压

在电子设备的广泛应用中&#xff0c;电池作为便携设备的能量来源&#xff0c;其电压监测显得尤为关键。LM2904作为一款低功耗、高增益带宽积和高共模抑制比的双运算放大器&#xff0c;非常适用于电池电压的测量与监测。本文详细介绍了LM2904在电池电压测量方面的应用&#xff0…

C/C++逆向:虚函数逆向分析

虚函数&#xff08;Virtual Function&#xff09;是C中实现多态的一种机制&#xff0c;它允许在运行时通过基类的指针或引用调用派生类中的函数&#xff0c;而不是基类中的版本。虚函数通常与继承和多态结合使用。通过在基类中使用 virtual 关键字声明函数&#xff0c;允许派生…

永磁同步电机末端振动抑制(输入整形)

文章目录 1、前言2、双惯量系统3、输入整形3.1 ZV整形器3.2 ZVD整形器3.3 EI整形器 4、伺服系统位置环控制模型5、仿真5.1 快速性分析5.2 鲁棒性分析 参考 1、前言 什么是振动抑制&#xff1f;对于一个需要精确定位的系统&#xff0c;比如机械臂、塔吊、码头集装箱等&#xff…

pywinauto常见用法详解

1 安装 pip install pywinauto0.6.3 -i https://pypi.tuna.tsinghua.edu.cn/simple 2 启动app appApplication(backenduia).start(程序路径) backend 参数有2种 win32和uia 3 窗口选择 3.1通过类选择 dlgapp["类名"] dlgapp.类名 3.2通过标题选择 dlgapp[&…

20241125复盘日记

昨日最票&#xff1a; 南京化纤 滨海能源 广博股份 日播时尚 众源新材 返利科技 六国化工 丰华股份 威领股份 凯撒旅业 华扬联众 泰坦股份 高乐股份高均线选股&#xff1a; 理邦仪器高乐股份日播时尚领湃科技威领股份资金最多的票&#xff1a; 资金攻击最多的票&#xff1a; …

【实用向】Django 框架入门

声明 这是一篇实用向的Django框架教程博客&#xff0c;适用于想要快速入门的开发者&#xff0c;有前后端开发以及语言基础&#xff0c;想要学习语法或者特性。&#xff0c;包括一些基础的使用&#xff0c;想要学习请结合文章初识 Django并按照我的顺序一步步进行&#xff0c;做…

Git的使用_仓库管理_CI/CD介绍

文章目录 一、Git的基础知识一-1、什么是GitLinux命令行的git的简易安装Git项目的组成Git的基本工作流程Git文件的三种状态 一-2、存储库远程存储库与本地存储库创建存储库git init命令的使用方法1. 初始化一个新的 Git 仓库2. 在指定目录初始化一个新的 Git 仓库3. 初始化一个…

畅游Diffusion数字人(6): JoyHallo: Digital human model for Mandarin

Diffusion Models专栏文章汇总:入门与实战 前言:目前音频驱动大部分的论文和数据都是围绕英文输入驱动打造的,应用在东亚人和国语上效果有所降低。与英语相比,普通话中复杂的嘴唇动作使模型训练更加复杂。这篇博客介绍京东提出的数字人技术《JoyHallo: Digital human model…