vue中如何给特殊字段设置插槽

大纲:

<template><div><div><span>卡号</span><el-input type="text" v-model="cardNo" clearable placeholder="请输入卡号" /><el-button type="primary" plain icon="el-icon-search" @click="search">搜索</el-button></div><!-- 表格 --><el-table class="fontTextStyle" border :header-cell-style="{background:'#f0f9eb'}" :data="data" style="width: 100%"><el-table-column align="center" prop="staffName" label="姓名"></el-table-column><el-table-column align="center" prop="deptName" label="部门"></el-table-column><el-table-column align="center" prop="cardNo" label="卡号" :show-overflow-tooltip="true"></el-table-column><el-table-column align="center" prop="termNo" label="设备号"></el-table-column><el-table-column align="center" prop="datails" label="菜品"><template slot-scope="scope"><el-popover placement="top-start" trigger="click"><el-tag size="small" style="margin-right: 10px;" v-for="item in scope.row.details" :key="item.pid">{{ item.name }} X {{ item.qty }}份</el-tag><el-button type="text" slot="reference"> {{scope.row.details.length}}个菜品</el-button></el-popover></template></el-table-column><el-table-column align="center" prop="amt" label="消费金额"></el-table-column><el-table-column align="center" prop="balance" label="余额"></el-table-column><el-table-column align="center" prop="payTime" label="支付时间" :show-overflow-tooltip="true"></el-table-column></el-table></div>
</template><script>import API from '@/components/common/Api'export default {data() {return {//查询参数pn: 1,ps: 10,count: 0,data: [],form: {},cardNo: '',//搜索键值datails: '',}},mounted() {this.getList()},methods: {search() {this.getList();},//获取智盘支付记录列表getList() {let params = {cardNo: this.cardNo,}API.getPosPayLog(params).then(result => {if (result.data && result.data.code == 0) {this.data = result.data.data.list || [];//循环遍历菜品this.data.forEach(item => {item.details = JSON.parse(item.details)})this.count = result.data.data.total}});},},}
</script>
<style></style>

代码详解:

        代码中使用了 Element UI 的组件,包括 el-input(输入框)、el-button(按钮)、el-table(表格)、el-table-column(表格列)和 el-popover(气泡弹出框)等等。

       🍕 第一步: 在页面初始化时,通过 mounted 钩子函数调用 getList 方法获取支付记录列表,并将结果保存在 data 数组中。当点击搜索按钮时,会触发 search 方法,该方法再次调用 getList 方法进行搜索。

       🍕 第二步:getList 方法发送请求到后端接口,传递卡号作为参数。当接口返回数据后,将数据赋值给 data 数组,并使用 JSON.parse 将菜品详情从字符串解析为对象数组

       🍕 第三步:通过循环遍历 data 数组中的每一项,将菜品详情 item.details 解析为对象数组,以便在表格中展示。

      🔴 注意:具体的接口返回的数据类型可能会有所不同,可以根据实际需求进行调整。

类型:字符串json

<template><div><avue-crud ref="crud" v-model="form" :data="data" :option="option"><!-- 消费商品 --><template slot-scope="scope" slot="payOrder"><el-popover trigger="click" title="" v-if="scope.row.payOrder.length"><div><el-tag size="small" v-for="(item,index) in viewList" :key="index">{{ item.name }}X{{ item.num }}份</el-tag></div><el-button slot="reference" type="text" size="small" @click="getmenu(scope.row.payOrder)">{{ scope.row.payOrder.length }}个菜品</el-button></el-popover><div v-else>无</div></template></avue-crud></div>
</template><script>import API from '@/components/common/Api';export default {data() {return {/* data:[]后端获取到的数据列表。option表格配置项.form 表单*/data: [],form: {},query: {}, //搜索键值viewList: [],option: {size: 'mini', //表格大小 medium/small/miniborder: true,align: 'center',viewBtn: false, //查看详情按钮editBtn: false, //编辑修改按钮delBtn: false, //删除按钮addBtn: false,menu: false,column: [{label: '消费商品', //表头prop: 'payOrder', //键值slot: true,}]},}},mounted() {this.onLoad()},methods: {// 根据接口获取data数据onLoad() {let params = {data: this.query,}API.yktPosPayLogAll(params).then(res => {if (res.data.code == 0) {this.data = res.data.data.list;//循环遍历商品this.data.forEach(item => {item.payOrder = JSON.parse(item.payOrder);})}})},getmenu(arr) {this.viewList = arr;},}}
</script><style></style>
<template><avue-crud :option="option" :data="data" v-model="form" ref="crud"><template slot-scope="scope" slot="posFoodReserveDetail"><el-popover trigger="click" title="菜单"><div><el-tag size="small" v-for="item in viewList" :key="item.foodId">{{ item.foodName }}X{{ item.reserveNum }}份</el-tag></div><el-button slot="reference" type="text" size="small" @click="getmenu(scope.row.posFoodReserveDetail)">{{ scope.row.posFoodReserveDetail.length }}个菜品</el-button></el-popover></template></avue-crud>
</template><script>import API from '@/components/common/newApi';export default {data() {return {data: [],form: {},query: {},option: {border: true,column: [{label: '预定内容',prop: 'posFoodReserveDetail',slot: true,overHidden: true,}]},viewList: []};},mounted() {this.onLoad();},methods: {// 加载表格数据onLoad() {let param = {data: this.query};API.selectMyReserve(param).then(res => {if (res.data.code === 0) {this.data = res.data.data.list;}});},getmenu(arr) {this.viewList = arr;},}};
</script><style></style>

代码详解:

        在这个插槽中,我使用了 el-popover 组件来显示菜单信息,并通过点击按钮触发了 getmenu 方法。根据我这边的业务需求,我将在点击按钮时调用 getmenu 方法,并将传入的 scope.row.posFoodReserveDetail 赋值给 viewList。

类型:数组

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

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

相关文章

我们如何在工作与生活中找到平衡点?

找到工作与生活中的平衡点是每个人都必须面对的问题。以下是一些建议&#xff0c;可以帮助你在工作和生活之间找到平衡&#xff1a; 制定时间表&#xff1a;确保你有足够的时间来处理工作和生活中的各种任务。为工作、学习和个人生活设定优先级&#xff0c;并确保时间分配合理…

ElasticSearch第三讲:ES详解 - Elastic Stack生态和场景方案

ElasticSearch第三讲&#xff1a;ES详解 - Elastic Stack生态和场景方案 本文是ElasticSearch第三讲&#xff0c;在了解ElaticSearch之后&#xff0c;我们还要了解Elastic背后的生态 即我们常说的ELK&#xff1b;与此同时&#xff0c;还会给你展示ElasticSearch的案例场景&…

浅谈限流式保护器在高校防火工作的应用

安科瑞 华楠 【摘要】摘要&#xff1a;为了预防火灾和减少火灾带来的危害&#xff0c;保护校园和师生生命财产安全&#xff0c; 建和谐安宁的校园环境&#xff0c;保障学校安全稳定发展&#xff0c;我们必须要时刻拧紧消防安全这弦&#xff0c;时刻注意这根高压线。随着近年来…

el-select下拉框定位问题

1.当el-select所在页面滚动时或者el-select上面区域高度发生变化时&#xff0c;定位存在偏差 2.解决办法&#xff1a; 1. el-select自带属性popper-append-to-body&#xff1a;true&#xff0c;可能会无效 2.设置ref,监听高度变化或者滚动时&#xff0c;手动执行刷新方法&…

应用在汽车新风系统中消毒杀菌的UVC灯珠

在病毒、细菌的传播可以说是一个让人敏感而恐惧的事情。而对于车内较小的空间&#xff0c;乘坐人员流动性大&#xff0c;更容易残留细菌病毒。车内缺少通风&#xff0c;残留的污垢垃圾也会滋生细菌&#xff0c;加快细菌的繁殖。所以对于车内消毒就自然不容忽视。 那么问题又来…

算法:贪心---跳一跳

1、题目&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 2…

【SpringMvc 丨跨域】

Spring MVC 支持跨域处理&#xff08;CORS&#xff09;。 CORS 简介处理CORS 过滤器CrossOrigin注解java配置xml配置 主页传送门&#xff1a;&#x1f4c0; 传送 简介 跨域是指在浏览器的同源策略下&#xff0c;不能执行其他网站的脚本。它是由浏览器的安全限制造成的&#xf…

2023-9-12 完全背包问题

题目链接&#xff1a;完全背包问题 初版(时间复杂度拉满) #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n, m; int v[N], w[N]; int f[N][N];int main() {cin >> n >> m;for(int i 1; i < n; i ) cin >…

欧洲汽车制造商押注电力合成燃料 | 2023中国可持续燃料峰会

欧洲几家汽车制造商表示&#xff0c;所谓的电力合成燃料(e-fuels&#xff0c;利用可再生电力合成的化石燃料&#xff0c;又称电子燃料)将在欧洲汽车行业的未来发挥关键作用&#xff0c;它们相信&#xff0c;布鲁塞尔方面在替代燃料问题上的让步&#xff0c;将使它们能够在未来1…

VoxWeekly|The Sandbox 生态周报|20230904

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…

Python - PyQt6、QDesigner、pyuic5-tool 安装使用

Python 开发可视化界面可以使用原生的 tkinter&#xff0c;但是原生框架使用起来颇为不方便&#xff0c;所以最流行的还是QT UI框架&#xff0c;QT是使用C语言开发&#xff0c;Python 想使用需要对其进行封装&#xff0c;所以就出现了PyQt框架&#xff0c;这个框架使用极其方便…

u盘制成系统盘之后如何让恢复普通盘

U盘装完pe后怎么还原成普通U盘 1.插入U盘&#xff0c;按WindowsR 输入diskpart 2.输入“list disk”回车&#xff0c;查看U盘代号&#xff0c;例如下图里我的U盘代号是磁盘1&#xff08;你的不一定是1&#xff0c;一定要分清楚&#xff09; 3.输入“select disk 2”选中U盘磁…

学习day59

昨天学了插槽&#xff0c;但是没有即笔记了 今天的是vuex 总体来说&#xff0c;vuex就是一个共享单车&#xff0c;每个人都可以使用他&#xff0c;也可也对他进行反馈。即把一个数据列为vuex&#xff0c;然后每个组件可以使用这个对象&#xff0c;也可也反过来反馈他 这一个设…

vim的使用介绍以及命令大全

懒羊羊感谢大家的关注和三连支持~ 目录 前言 一、vim的使用介绍 二、命令大全 1.命令模式 &#xff08;1&#xff09;复制&#xff08;配合粘贴命令p使用&#xff09; &#xff08;2&#xff09;剪切 &#xff08;3&#xff09;粘贴 &#xff08;4&#xff09;删除 …

centos安装flink,通过windows访问webui

1. 安装flink 1.1. flink的下载 通过flink官网下载flink安装包 https://flink.apache.org/ 下载安装包 1.2 flink在centos上的安装 将下载好的flink-1.17.1-bin-scala_2.12.tgz安装包放到centos目录下 解压文件&#xff1a; [rootlocalhost ~]# tar -zxvf flink-1.17.…

数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归...

完整报告链接&#xff1a;http://tecdat.cn/?p28579 作者&#xff1a;Nuo Liu 数据变得越来越重要&#xff0c;其核心应用“预测”也成为互联网行业以及产业变革的重要力量。近年来网络 P2P借贷发展形势迅猛&#xff0c;一方面普通用户可以更加灵活、便快捷地获得中小额度的贷…

【广州华锐互动】云智慧工厂数字孪生:打造高效、灵活的智能制造新模式

随着工业4.0的到来&#xff0c;数字孪生技术逐渐成为实现工业生产智能化升级的关键。云智慧工厂数字孪生利用先进的数字化技术&#xff0c;创建物理实体的虚拟模型&#xff0c;实现对生产过程的实时监控、优化与管理。 云智慧工厂数字孪生是指通过数字孪生技术&#xff0c;构建…

thinkphp5.0 composer 安装oss提示php版本异常

场景复现&#xff1a; 本地 phpstudy 环境&#xff0c;安装的有7.0到7.3三个版本&#xff0c;首先确认composer已经安装 composer安装阿里云oss的命令为&#xff1a;composer require aliyuncs/oss-sdk-php 运行报错&#xff1a; Problem 1- Root composer.json requires php…

leetcode 88:合并两个有序数组 。 双指针解法

题目 算法 双指针 code var merge function(nums1, m, nums2, n) {// 其实就是一个nums1数组从后向前的降序重排&#xff0c;从最后开始&#xff0c;比较nums1有效位置和nums2当前位置数的大小&#xff0c;依次填入&#xff0c;nums2最后若有剩余&#xff0c;则再多一步从后…

AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)

前段时间我分享了StableDiffusion的非常完整的教程&#xff1a;“AI绘画&#xff1a;Stable Diffusion 终极宝典&#xff1a;从入门到精通 ” 尽管如此&#xff0c;还有读者反馈说&#xff0c;尽管已经成功安装&#xff0c;但生成的图片与我展示的结果相去甚远。真实感和质感之…