当前位置:网站首页 > 数据科学与大数据 > 正文

表格当前行-对象数据传递给弹框 & 父组件传对象数据给子组件 & 接口写法-增删改查-post-get-delete

表格当前行-对象数据传递给弹框 & 父组件传对象数据给子组件 & 接口写法-增删改查-post-get-delete

1、父组件-主页表格

结构

<el-table> <el-table-column label="操作"> <template slot-scope="scope"> <!-- @click="handleEdit(scope.$index, scope.row)" --> <!-- 编辑按钮 --> <i class="el-icon-edit-outline" type="success" style="font-size: 30px; color: #67c23a" @click="editFile(scope.$index, scope.row)" ></i> <!-- 删除按钮 --> <i class="el-icon-delete" type="danger" style="font-size: 30px; color: #f56c6c" @click="handleDelete(scope.$index, scope.row)" ></i> </template> </el-table-column> </el-table> <!-- 弹框模块 子组件 --> <EditBuild ref="dialog1" :tableValue="this.tableValue" /> 

数据

import EditBuild from "../../components/entityType/editBuild.vue"; data(){ 
    return{ 
    tableValue: { 
   }, } } 

方法

methods:{ 
    //编辑 editFile(index, row) { 
    console.log(index, row); this.tableValue = row; console.log(this.tableValue, "7777"); this.$refs.dialog1.dialogVisibleA = !this.$refs.dialog1.dialogVisibleA; }, //删除 handleDelete(index, row) { 
    // console.log(index, row); // console.log(row.serialNumber); this.deleteTable(row.serialNumber); }, // 删除列表数据 deleteTable(id) { 
    deletes(id).then((res) => { 
    this.getAllTable(); }); }, } 
父组件-接口DELETE
/* 删除数据(可批量) */ export function deletes(id) { 
    return axios({ 
    url: `/entity/deleteById?idList=${ 
     id}`, method: 'DELETE', }) } /* 获取列表数据 */ export function getListAll(params) { 
    return axios({ 
    url: '/entity/getAll', method: 'GET', params }) } /* 新建数据 */ export function add(data) { 
    return axios({ 
    url: '/entity/add', method: 'POST', data }) } /* 修改数据(可批量) */ export function update(data) { 
    return axios({ 
    url: '/entity/update', method: 'POST', data }) } /* 搜索数据 */ export function query(data) { 
    return axios({ 
    url: `/entity/getPage?name=${ 
     data}`, method: 'GET', }) } 

2、子组件-弹框

接收

export default { 
    name: "newlyBuild", // 父传子数据特点 只读 props: { 
    tableValue: { 
    type: Object, }, }, watch: { 
    tableValue(newData, prevData) { 
    // console.log(newData, ); this.ruleForm.entityName = newData.entityName; this.ruleForm.entityDictionaries = newData.entityDictionaries; this.ruleForm.serialNumber = newData.serialNumber; // console.log(this.ruleForm.entityName, 123); }, }, } 

使用

methods:{ 
    //提交-新建按钮 addEntity() { 
    // console.log(this.tableValue); // console.log(this.ruleForm.entityDictionaries, "55555"); // 新建列表数据 let params = { 
    entityDictionaries: this.ruleForm.entityDictionaries, entityName: this.ruleForm.entityName, serialNumber: this.ruleForm.serialNumber, }; update(params).then((res) => { 
    this.dialogVisibleB = false; this.getAllTable(); window.parent.location.reload(); }); }, } 
接口-POST
/* 修改数据(可批量) */ export function update(data) { 
    return axios({ 
    url: '/entity/update', method: 'POST', data }) } 

数据

data() { 
    return { 
    dialogVisibleA: false, ruleForm: { 
    entityName: "", entityDictionaries: "", }, } } 

页面使用

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" > <el-form-item label="名称" prop="entityName"> <el-input v-model="ruleForm.entityName" style="width: 85%" placeholder="请输入实体类型名称" ></el-input> </el-form-item> </el-form> 

3、附-vue通过props方式在子组件中获取相应的对象

子组件定义props,父组件传入数据,子组件在js中获取的时候使用,如果是在html里面,可以直接把变量渲染上去。

子组件-js代码
//子组件中,定义传入的变量的类型等  props: { 
    data: { 
    type: Array, require: true }, status: { 
    type: Boolean, require: false } } 

直接在生命周期函数里面打印props

mounted(){ 
    let _this=this; console.log(_this._props,66666); } 
方法一:直接拿取

所以就可以直接拿取-有时候会获取不到datas

mounted() { 
    let _this=this; let { 
   datas,status}=_this._props; console.log(this._props) console.log(this._props.datas,) }, 
方法二:定时器来获取

有时候会获取不到datas,this._props可以拿到值,这时候可以用一个定时器来获取

mounted() { 
    let _this=this; let { 
   datas,status}=_this._props; setTimeout(()=>{ 
    console.log(this._props) console.log(this._props.datas,) },1000) } 
方法三:深拷贝

深拷贝

mounted() { 
    let _this=this; let props = { 
   ..._this._props}; console.log(props,"props.......") }, 
方法四:利用watch监听

利用watch监听

//直接监听data,因为这里的props的变量名为data  watch:{ 
    data(newData,prevData){ 
    console.log(newData,"新数据") } } 

四种方法的使用,获取到想要的data-数组格式或对象格式(推荐方法三、方法四)

到此这篇表格当前行-对象数据传递给弹框 & 父组件传对象数据给子组件 & 接口写法-增删改查-post-get-delete的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • js中,封装一个判断所有数据类型的方法getType,入参为任意变量,返回值为该参数类型的字符串形式2024-11-28 19:54:07
  • js之对象分类、数据类型分类和存储位置、函数 function介绍、变量的作用域2024-11-28 19:54:07
  • Node学习(五)022-处理静态资源——自定义中间件处理post提交的数据 & 将接收到的数据,赋值给req.body & 使用express和body-parser中间件处理post提交数据2024-11-28 19:54:07
  • Node学习(六)03-SQL语句——添加数据insert into、修改数据update、删除数据delete from、连接查询select from之内连接、左连接、右连接和定义别名2024-11-28 19:54:07
  • Node学习(七)01-mysql基本用法——Node中使用MySQL模块的5个步骤 & select查询语句-查询的结果是一个数组,数组中的每个对象就是一行数据 & SQL中有多个占位符2024-11-28 19:54:07
  • jdbc使用java连接数据库学习笔记2024-11-28 19:54:07
  • 《第一行代码》 第七章:跨程序共享数据-内容提供器2024-11-28 19:54:07
  • 《第一行代码》 第六章:数据库与存储方案2024-11-28 19:54:07
  • 响应式数据2024-11-28 19:54:07
  • vuex实例方法replaceState解决vuex页面刷新数据丢失问题2024-11-28 19:54:07
  • 全屏图片