vue 如何获取scope 所在行数,并且动态的给表格中的scope.row赋值scope.$index

vue scope.row 动态赋值

  1. 把scope.$index存为全局变量
  2. 通过 this. r e f s . s c o p e D a t a . d a t a [ t h i s . s c o p e d I n d e x ] 获取表信息( t h i s . s c o p e d I n d e x 是我保存的全局的 s c o p e . refs.scopeData.data[this.scopedIndex] 获取表信息(this.scopedIndex是我保存的全局的scope. refs.scopeData.data[this.scopedIndex]获取表信息(this.scopedIndex是我保存的全局的scope.index),然后赋值,案例如下

<template><div class="app-container"><el-row :gutter="10" class="mb8"><el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"v-hasPermi="['business:signConfig:add']">新增</el-button></el-col><!--      <el-col :span="1.5">--><!--        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"--><!--          v-hasPermi="['business:signConfig:edit']">修改--><!--        </el-button>--><!--      </el-col>--><!--      <el-col :span="1.5">--><!--        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"--><!--          v-hasPermi="['business:signConfig:remove']">删除--><!--        </el-button>--><!--      </el-col>--><right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar></el-row><el-table v-loading="loading" :data="signConfigList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center"/><el-table-column label="ID" align="center" prop="id"/><!--      <el-table-column label="${comment}" align="center" prop="dayDate" />--><el-table-column label="签到天数" align="center" prop="dayDate"/><el-table-column label="显示名称" align="center" prop="dayDesc"/><!--      <el-table-column label="奖励列表,对应的是道具表的id" align="center" prop="itemIdList" />--><el-table-column label="操作" align="center" class-name="small-padding fixed-width"><template slot-scope="scope"><el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"v-hasPermi="['business:signConfig:edit']">修改</el-button><el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"v-hasPermi="['business:signConfig:remove']">删除</el-button></template></el-table-column></el-table><pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"@pagination="getList"/><!-- 添加或修改签到配置对话框 --><el-dialog :title="title" center :visible.sync="open" width="800px" append-to-body><el-form ref="form" :model="form" :rules="rules" label-width="80px"><el-form-item label="签到天数" prop="dayDate"><el-input v-model="form.dayDate" :maxlength="5" placeholder="请输入签到天数"/></el-form-item><el-form-item label="显示名称" prop="dayDesc"><el-input v-model="form.dayDesc" type="text" show-word-limit :maxlength="100" placeholder="请输入显示名称"/></el-form-item><el-divider content-position="center">奖励</el-divider><el-row :gutter="10" class="mb8"><el-col :span="1.5"><el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAppItemConfig">添加</el-button></el-col><el-col :span="1.5"><el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAppItemConfig">删除</el-button></el-col></el-row><el-table  ref="scopeData" :data="appItemConfigList" :row-class-name="rowAppItemConfigIndex"@selection-change="handleAppItemConfigSelectionChange" ><el-table-column type="selection" align="center"/><el-table-column label="序号" align="center" prop="index" width="50"/><!--          <el-table-column label="道具id" prop="name" width="150">--><!--            <template slot-scope="scope">--><!--              <el-input v-model="scope.row.name" placeholder="请输入道具名称" />--><!--            </template>--><!--          </el-table-column>--><el-table-column label="道具id" prop="itemId"><template slot-scope="scope"><el-input v-model="scope.row.itemId" placeholder="请选择道具id" @focus="getItemListDataDisable(scope.$index,scope)"></el-input></template></el-table-column><el-table-column label="道具名字" prop="itemName"><template slot-scope="scope"><el-input v-model="scope.row.itemName" disabled="true" placeholder="请输入道具名字"></el-input></template></el-table-column><el-table-column label="奖励数量" prop="count"><template slot-scope="scope"><el-input v-model="scope.row.count"  autocomplete="off" placeholder="请输入正整数数值"@keyup.native="scope.row.count=test(scope.row.count)?scope.row.count:''"/></template></el-table-column></el-table></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></el-dialog><el-dialog title="选择道具" :visible.sync="open2" width="800px" append-to-body><el-table   v-loading="loading" :data="itemConfigList" highlight-current-row @current-change="handleCurrentChange"><el-table-column label="道具ID" align="center" width="100" prop="itemId"/><el-table-column label="道具名称" align="center" prop="name"/><el-table-column label="道具类型" align="center" width="100" prop="itemType"><template v-slot="scope"><span v-if="scope.row.itemType==1">食物</span><span v-if="scope.row.itemType==2">日用品</span><span v-if="scope.row.itemType==3">肥料</span><span></span></template></el-table-column><el-table-column label="道具描述" align="center" :show-overflow-tooltip="true" prop="itemDesc"/></el-table><div slot="footer" class="dialog-footer"><el-button type="primary" @click="submitForm2">确 定</el-button><el-button @click="open2=false">取 消</el-button></div></el-dialog></div>
</template><script>
import {listSignConfig,getSignConfig,delSignConfig,addSignConfig,updateSignConfig
} from "@/api/business/signConfig";
import {getAllItemConfig
} from "@/api/business/itemConfig";export default {name: "SignConfig",data() {return {scopedIndex:"",itemConfigList: "",selectData: "",open2: false,//道具下拉列表itemSelectData: [],// 遮罩层loading: true,// 选中数组ids: [],// 子表选中数据checkedAppItemConfig: [],// 非单个禁用single: true,// 非多个禁用multiple: true,// 显示搜索条件showSearch: true,// 总条数total: 0,// 签到配置表格数据signConfigList: [],// 道具配置表格数据appItemConfigList: [],// 弹出层标题title: "",// 是否显示弹出层open: false,// 查询参数queryParams: {pageNum: 1,pageSize: 10,dayDate: null,dayDesc: null,itemIdList: null},// 表单参数form: {},// 表单校验rules: {dayDate: [{required: true,message: "天数不能为空",trigger: "blur"},{validator: (rule, value, callback) => {if (/^(?:[1-9]\d*)$/.test(value) == false) {callback(new Error("请输入正整数"))} else {return callback()}},trigger: 'blur',}],scopedData:"",dayDesc: [{required: true,message: "显示名称不能为空",trigger: "blur"}],}};},created() {this.getList();this.getItemSelectData()},methods: {test(num) {debuggervar reg = /^\d+$/if (!num.match(reg)) {return false} else {return true}},/** 查询签到配置列表 */getList() {this.loading = true;listSignConfig(this.queryParams).then(response => {this.signConfigList = response.rows;this.total = response.total;this.loading = false;});},submitForm2(){debuggerthis.$refs.scopeData.data[this.scopedIndex].itemId= this.selectData.itemIdthis.$refs.scopeData.data[this.scopedIndex].itemName= this.selectData.namethis.open2=false;},// 取消按钮cancel() {this.open = false;this.reset();},// 表单重置reset() {this.form = {id: null,dayDate: null,dayDesc: null,itemIdList: null};this.appItemConfigList = [];this.resetForm("form");},// oninput(count){//   return count=count.replace(/\D/g, '')// },/** 搜索按钮操作 */handleQuery() {this.queryParams.pageNum = 1;this.getList();},/** 重置按钮操作 */resetQuery() {this.resetForm("queryForm");this.handleQuery();},// 多选框选中数据handleSelectionChange(selection) {this.ids = selection.map(item => item.id)this.single = selection.length !== 1this.multiple = !selection.length},/** 新增按钮操作 */handleAdd() {this.reset();this.open = true;this.title = "添加签到配置";},/** 修改按钮操作 */handleUpdate(row) {this.reset();const id = row.id || this.idsgetSignConfig(id).then(response => {this.form = response.data;this.appItemConfigList = response.data.appItemConfigList;this.open = true;this.title = "修改签到配置";});},getItemListDataDisable(index){this.open2=true;this.scopedIndex=index;},/** 提交按钮 */submitForm() {this.$refs["form"].validate(valid => {if (valid) {this.form.appItemConfigList = this.appItemConfigList;if (this.form.id != null) {updateSignConfig(this.form).then(response => {this.$modal.msgSuccess("修改成功");this.open = false;this.getList();});} else {addSignConfig(this.form).then(response => {this.$modal.msgSuccess("新增成功");this.open = false;this.getList();});}}});},/*** 获取道具的下拉选框**/// getSelectData() {//// },handleCurrentChange(val){this.selectData=val;},/** 删除按钮操作 */handleDelete(row) {const ids = row.id || this.ids;this.$modal.confirm('是否确认删除签到配置编号为"' + ids + '"的数据项?').then(function () {return delSignConfig(ids);}).then(() => {this.getList();this.$modal.msgSuccess("删除成功");}).catch(() => {});},/** 道具配置序号 */rowAppItemConfigIndex({row,rowIndex}) {row.index = rowIndex + 1;},/** 道具配置添加按钮操作 */handleAddAppItemConfig() {let obj = {};obj.name = "";obj.itemId = "";obj.itemName = "";obj.count = "";obj.itemSubType = "";obj.icon = "";obj.itemDesc = "";obj.single = "";obj.getMaxAcount = "";obj.mask = "";obj.effect = "";this.appItemConfigList.push(obj);},//获取下拉道具下拉选款数据getItemSelectData() {getAllItemConfig().then(res => {if (res.code === 200) {this.itemConfigList = res.data;}})},/** 道具配置删除按钮操作 */handleDeleteAppItemConfig() {if (this.checkedAppItemConfig.length == 0) {this.$modal.msgError("请先选择要删除的道具配置数据");} else {const appItemConfigList = this.appItemConfigList;const checkedAppItemConfig = this.checkedAppItemConfig;this.appItemConfigList = appItemConfigList.filter(function (item) {return checkedAppItemConfig.indexOf(item.index) == -1});}},/** 复选框选中数据 */handleAppItemConfigSelectionChange(selection) {this.checkedAppItemConfig = selection.map(item => item.index)},/** 导出按钮操作 */handleExport() {this.download('business/signConfig/export', {...this.queryParams}, `signConfig_${new Date().getTime()}.xlsx`)}}
};
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

opencv: 解决保存视频失败的问题

摘要&#xff1a;opencv能读取视频&#xff0c;但保存视频时报错。 一、首先要确保已经下载了openh264.dll文件&#xff0c;否则保存的视频无法打开&#xff0c;详细可以浏览这个&#xff1a;opencv&#xff1a;保存视频。 二、保存视频时出现一下问题&#xff1a; OpenCV:…

vue_Delete `␍`eslint(prettier/prettier)

Delete ␍eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码&#xff0c;在执行pre-commit时&#xff0c;出现如下错误&#xff1a; Delete ␍eslint(prettier/prettier)问题根源 罪魁祸首是git的一个配置属性&#xff1a;core.autocrlf 由于…

【空间-光谱联合注意网络:多时相遥感图像】

A Spatial–Spectral Joint Attention Network for Change Detection in Multispectral Imagery &#xff08;一种用于多光谱图像变化检测的空间-光谱联合注意网络&#xff09; 变化检测是通过比较双时相图像来确定和评估变化&#xff0c;这是遥感领域的一项具有挑战性的任务…

Oracle VM VirtualBox安装并下载安装CentOS7

Oracle VM VirtualBox安装并下载安装CentOS7 Oracle VM VirtualBox下载CentOS创建虚拟机 Oracle VM VirtualBox VM下载链接 https://www.oracle.com/cn/virtualization/virtualbox/ 点击链接直接下载就行&#xff0c;下载完默认安装或者更改一下安装目录。 下载CentOS http://…

快速排序与冒泡排序以及代码

快速排序 快速排序&#xff08;Quicksort&#xff09;是一种常用的排序算法&#xff0c;它基于分治的思想。 时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 空间复杂度&#xff1a;O&#xff08;logn&#xff09; 快速排序的基本思想如下&#xff1a; 选择一个元素…

vue3 + mark.js | 实现文字标注功能

页面效果 具体实现 新增 1、监听鼠标抬起事件&#xff0c;通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过 选中的文字长度是否大于0或window.getSelection().isCollapsed (返回一个布尔值用于描述选区的起始点和终止点是否位于一个位置&…

设计模式 - 代理模式

目录 一. 前言 二. 实现 三. 静态代理和动态代理 一. 前言 代理模式&#xff08;Proxy Pattern&#xff09;&#xff0c;为某个对象提供一种代理以控制对对象的访问。即客户端可通过代理对象间接访问目标对象&#xff0c;同时可限制、增强、修改目标对象的一些特性。访问者不…

KF32A学习笔记(一):工程导入、编译烧录方法(KF32 IDE+ KF32 PRO)

目录 概述KF32 IDE打开现有项目工程1.工程导入2.编译工程3.下载程序 KF32 PRO 概述 本文主要是对KF32A150芯片程序的编译、烧录方法进行说明。针对开发过程中的编译烧录和无代码情况下的烧录两种场景&#xff0c;需要安装ChipON PRO KF32和ChipON IDE KF32两个上位机工具&…

华为云智能化组装式交付方案 ——金融级PaaS业务洞察及Web3实践的卓越贡献

伴随信息技术与金融业务加速的融合&#xff0c;企业应用服务平台&#xff08;PaaS&#xff09;已从幕后走向台前&#xff0c;成为推动行业数字化转型的关键力量。此背景下&#xff0c;华为云PaaS智能化组装式交付方案闪耀全场&#xff0c;在近日结束的华为全联接大会 2023上倍受…

vue若依前端项目搭建

1.项目搭建 首先进入到你需要创建的项目目录下面&#xff0c;然后输入命令vue create .创建项目 接下来选择手动搭建&#xff0c;然后把下面图片中的内容选上 再然后继续配置一些参数信息 接下来运行npm run serve项目就启动起来了 2.配置登录界面文件 首先修改src/router…

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...

全文链接:http://tecdat.cn/?p27384 在本文中&#xff0c;数据包含有关葡萄牙“Vinho Verde”葡萄酒的信息&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 介绍 该数据集&#xff08;查看文末了解数据获取方式&#xff09;有1599个观测值和12个变量&#xf…

使用EPPlus实现C#控件Excel文件内容导入转换

使用EPPlus实现C#控件Excel文件内容导入转换 1.添加EPPlus库 在使用EPPlus库时&#xff0c;你需要确保在项目中添加了正确的引用。你可以通过以下方式添加引用&#xff1a; 打开你的项目。 在“解决方案资源管理器”中&#xff0c;右键单击“引用”并选择“管理NuGet程序包”…

作为一名独立开发者,如何获取客户?

很多程序员想成为一名独立开发者&#xff0c;从事自由职业&#xff0c;最大的困难在于如何赚钱&#xff0c;进一步来说&#xff0c;就是如何找到自己的客户&#xff0c;有很多开发者拥有丰富的经验&#xff0c;优秀的能力&#xff0c;但无法吸引客户。这篇文章的灵感正是为此而…

Python实现猎人猎物优化算法(HPO)优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

一创聚宽的实盘就要关闭了,有没有好用的实盘平台推荐

挺多的&#xff0c;比较普遍的是QMT和Ptrade&#xff0c;python语言&#xff0c;易上手&#xff0c;通用性好&#xff0c;要说适用性可以考虑Ptrade&#xff0c;问一下你的客户经理有没有&#xff0c;用Ptrade的券商也多&#xff0c;如果之前用一创聚宽你可以无缝切换&#xff…

单链表详细解析|画图理解

前言&#xff1a; 在前面我们学习了顺序表&#xff0c;相当于数据结构的凉菜&#xff0c;今天我们正式开始数据结构的硬菜了&#xff0c;那就是链表&#xff0c;链表有多种结构&#xff0c;但我们实际中最常用的还是无头单向非循环链表和带头双向循环链表&#xff0c;我们今天先…

ELF文件结构

目录 ELF文件类型 ELF文件结构 通过链接视角分析目标文件 ELF文件头(ELF Header) 节头表 .text代码节 .data 数据节 .rodata 只读数据节 .bss节 其他常见的节 字符串节 符号表 重定位表 通过运行视角分析目标文件 本节内容&#xff1a; ELF文件类型ELF文件结构 …

san.js源码解读之工具(util)篇——splitStr2Obj函数

一、 源码解析 /*** 将字符串逗号切分返回对象** param {string} source 源字符串* return {Object}*/ function splitStr2Obj(source) {var result {};each( // 2source.split(,), // 1function (key) { // 3result[key] key;});return result; }把字符串通过 split 函数以…

【AI视野·今日Robot 机器人论文速览 第三十六期】Tue, 19 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 19 Sep 2023 (showing first 100 of 112 entries) Totally 112 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;In-Hand Object Rotation, RotateIt 提出了一种基于视觉与触觉的物体旋转朝向的方法…

一文了解优先考虑结果的以「意图」为中心的 Intent-Centric 架构

Web3 用户体验成是阻碍区块链被大规模采用的原因之一&#xff0c;而 Intent-Centric 架构形式极大简化了用户的体验门槛。 Ac-Core&#xff1a;实现意图所需元素&#xff1a;1&#xff09;账户抽象&#xff1a;利用捆绑器加代付合约完成适合开发者的狭义意图&#xff1b;2&…