grid---选择数据功能!!

目录

  • 总结
  • 一、步骤
    • 1.第一步-新建modelBody组件
    • 2.第二步-编写表的扩展js


总结

新建modelBody组件,编写表的扩展js

一、步骤

1.第一步-新建modelBody组件

  • 复制如下代码 修改相关内容
<template><VolBoxv-model="model":lazy="true"title="选择产品信息":height="800":width="1000":padding="15"><!-- 设置查询条件 --><div style="padding-bottom: 10px"><span style="margin-right: 20px">编号</span><el-inputplaceholder="请输入产品编号"style="width: 200px"v-model="PRODUCT_CODE"/><span style="margin: 0 20px">名称</span><el-inputplaceholder="请输入产品名称"style="width: 200px; margin-left: 10px"v-model="PRODUCT_NAME"/><span style="margin: 0 20px">型号</span><el-inputplaceholder="请输入产品型号"style="width: 200px; margin-left: 10px"v-model="PRODUCT_TYPE"/><el-buttontype="primary"style="margin-left: 10px"size="small"icon="Search"@click="search">搜索</el-button></div><!-- vol-table配置的这些属性见VolTable组件api文件 --><vol-tableref="mytable":loadKey="true":columns="columns":pagination="pagination":pagination-hide="false":max-height="380":url="url":index="true":single="true":defaultLoadPage="defaultLoadPage"@loadBefore="loadTableBefore"@loadAfter="loadTableAfter"></vol-table><!-- 设置弹出框的操作按钮 --><template #footer><div><el-button type="primary" @click="addRow()">添加选择的数据</el-button><el-button @click="model = false">关闭</el-button></div></template></VolBox>
</template>
<script>
import VolBox from "@/components/basic/VolBox.vue";
import VolTable from "@/components/basic/VolTable.vue";
export default {components: {VolBox: VolBox,VolTable: VolTable,},data() {return {model: false,defaultLoadPage: true, //第一次打开时不加载table数据,openDemo手动调用查询table数据PRODUCT_CODE: "", //查询条件字段  产品详细信息编号PRODUCT_NAME: "", //查询条件字段  产品详细信息名称PRODUCT_TYPE: "", //查询条件字段  产品型号modelType: "",url: "api/CY_RD_PRODUCT_INFO/GetPageData", //加载数据的接口columns: [{field: "PRODUCT_ID",title: "ID",type: "long",width: 80,hidden: true,readonly: true,require: true,align: "left",},{field: "PRODUCT_CODE",title: "产品编码",type: "string",link: true,width: 110,align: "left",sort: true,},{field: "PRODUCT_TYPE",title: "产品型号",type: "string",bind: { key: "产品型号", data: [] },width: 110,align: "left",},{field: "PRODUCT_NAME",title: "产品名称",type: "string",bind: { key: "产品名称", data: [] },width: 110,align: "left",},{field: "PRODUCT_CATEGID",title: "产品类别",type: "string",bind: {key: "产品分类",data: [{ key: "1", value: "电能表" },{ key: "2", value: "采集终端" },{ key: "3", value: "电流互感器" },{ key: "4", value: "电压互感器" },],},width: 110,align: "left",},{field: "PRODUCT_DESIGN_BASIS",title: "产品设计依据",type: "string",width: 110,align: "left",},],pagination: {}, //分页配置,见voltable组件api};},methods: {openDemo(_modelType) {this.modelType = _modelType;this.model = true;//打开弹出框时,加载table数据this.$refs.mytable && this.$refs.mytable.load();},search() {//点击搜索this.$refs.mytable.load();},addRow() {var rows = this.$refs.mytable.getSelected();if (!rows || rows.length == 0) {return this.$message.error("请选择行数据");}//获取回写到明细表的字段//使用数组的map()方法对rows数组进行遍历,并返回一个新的数组。let _rows = rows.map((row) => {console.log(row);return {PRODUCT_CODE: row.PRODUCT_CODE,PRODUCT_TYPE: row.PRODUCT_TYPE,PRODUCT_DESIGN_FUNCTION_BASIS: row.PRODUCT_DESIGN_BASIS,};});//回写数据到表单this.$emit("parentCall", ($parent) => {//将选择的数据合并到表单中(注意框架生成的代码都是大写,后台自己写的接口是小写的)//enable是数字类型,框架绑定下拉框的时候要转换成字符串// $parent.editFormFields.Development_project_no = rows[0].Development_project_no;// $parent.editFormFields.Product_code = rows[0].Product_code;$parent.getRow(_rows, this.modelType);});//关闭当前窗口this.model = false;},//这里是从api查询后返回数据的方法loadTableAfter(row) {},loadTableBefore(params) {//查询前,设置查询条件if (this.PRODUCT_CODE) {params.wheres.push({name: "PRODUCT_CODE",value: this.PRODUCT_CODE,displayType: "like",});}if (this.PRODUCT_NAME) {params.wheres.push({name: "PRODUCT_NAME",value: this.PRODUCT_NAME,displayType: "like",});}if (this.PRODUCT_TYPE) {params.wheres.push({name: "PRODUCT_TYPE",value: this.PRODUCT_TYPE,displayType: "like",});}return true;},},
};
</script>

2.第二步-编写表的扩展js

  • 导入刚创建的model子组件
import App_ExpertModelBody from '@/extension/business/cy_dev_business/extend/RD_PROJECT_ModelBody'
  • 注册组件
components: {//查询界面扩展组件gridHeader: '',gridBody: '',gridFooter: '',//新建、编辑弹出框扩展组件modelHeader: '',modelBody: App_ExpertModelBody,modelFooter: '',},
  • 添加回写方法
getRow(rows, modelType) {if (modelType == "RD_PROJECT_ModelBody") {//将选择的数据合并到表单中(注意框架生成的代码都是大写,后台自己写的接口是小写的)this.editFormFields.PRODUCT_CODE = rows[0].PRODUCT_CODE;this.editFormFields.PRODUCT_TYPE = rows[0].PRODUCT_TYPE;this.editFormFields.PRODUCT_DESIGN_FUNCTION_BASIS = rows[0].PRODUCT_DESIGN_FUNCTION_BASIS;}},
  • 添加选择数据的字段
onInit() {//选择数据源功能this.editFormOptions.forEach(x => {x.forEach(item => {if (item.field == 'PRODUCT_CODE') {//给编辑表单设置[选择数据]操作,extra具体配置见volform组件apiitem.extra = {icon: "el-icon-zoom-out",text: "选择数据",style: "color:#2196F3;font-size: 12px;cursor: pointer;",click: item => {this.$refs.modelBody.openDemo("RD_PROJECT_ModelBody");}}}})})
}

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

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

相关文章

数据库设计、JDBC、数据库连接池

数据库设计 数据库设计概念 数据库设计就是根据业务 系统的具体需求&#xff0c;结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。有哪些表?表里有哪些字段?表和表之间有什么关系? 数据库设计的步骤…

【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(深入)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;世界上的另一个我 1:02━━━━━━️&#x1f49f;──────── 3:58 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

Java+Swing+Txt实现通讯录管理系统

目录 一、系统介绍 1.开发环境 2.技术选型 3.功能模块 4.系统功能 1.系统登录 2.查看联系人 3.新增联系人 4.修改联系人 5.删除联系人 5.工程结构 二、系统展示 1.登录页面 2.主页面 3.查看联系人 4.新增联系人 5.修改联系人 三、部分代码 Login FileUtils …

2.18 day5/6 作业

作业&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园…

Kotlin基本语法 3 类

1.定义类 package classStudyclass Player {var name:String "jack"get() field.capitalize()set(value) {field value.trim()} }fun main() {val player Player()println(player.name)player.name " asdas "println(player.name)} 2.计算属性与防范…

Docker之MongoDB安装、创建用户及登录认证

Docker之MongoDB安装、创建用户及登录认证 文章目录 Docker之MongoDB安装、创建用户及登录认证1. 拉取镜像2. 创建宿主机容器数据卷3. 运行mongodb容器1. 运行容器2. 创建用户3. 创建数据库并设置密码 1. 拉取镜像 docker pull mongo:4.2.212. 创建宿主机容器数据卷 运行docke…

Java 学习和实践笔记(12)

这个就比较有意思了&#xff01;所有的事情&#xff0c;拆分完之后&#xff0c;都有且只有这三种状态流程&#xff01; //TIP To <b>Run</b> code, press <shortcut actionId"Run"/> or // click the <icon src"AllIcons.Actions.Execute&…

Redis分布式可重入锁实现方案

前言 在单进程环境下&#xff0c;要保证一个代码块的同步执行&#xff0c;直接用synchronized 关键字或ReetrantLock 即可。在分布式环境下&#xff0c;要保证多个节点的线程对代码块的同步访问&#xff0c;就必须要用到分布式锁方案。 分布式锁实现方案有很多&#xff0c;有基…

突破编程_C++_面试(变量与常量)

面试题 1 &#xff1a; C 中的变量存储类别有哪些&#xff0c;并简要描述它们的特点&#xff1f; 在C中&#xff0c;变量的存储类别决定了变量的生命周期和可见性。以下是C中的几种变量存储类别及其特点&#xff1a; 自动存储期 也称为局部存储类别。这类变量在函数或代码块…

正大国际期货:日内交易

日内交易是一种交易模式&#xff0c;英文名字是daytrade,主要是指持仓时间短&#xff0c;不留过夜持仓的交易方式。日内交易捕捉入市后能够马上脱离入市成本的交易机会&#xff0c;入市之后如果不能马上获利&#xff0c;就准备迅速离场

程序员可以做一辈子吗?大龄程序员出路在哪?

前言 随着2023年AI的出现&#xff0c;大家对待程序员工作有了一丝丝危机感&#xff0c;特别是今年整个IT行业进入了前所未有的寒冬期&#xff0c;让程序员不得不思考未来的职业发展。 甚至很多程序员一想到自己接近35岁&#xff0c;焦虑感油然而生&#xff0c;这也是大部分程…

基于YOLOv7算法的高精度实时雾天车辆行人目标检测系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时雾天车辆行人目标检测系统可用于日常生活中检测与定位bicycle、bus、car、motorbike和person&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。…

数据采集新纪元:Linux边缘计算技术在智慧工厂的应用解析

在当今全球智能制造的大潮下&#xff0c;Linux边缘计算网关正扮演着愈发重要的角色。它位于数据产生源头与云计算中心之间&#xff0c;为智慧工厂提供了关键的实时决策能力和高效的预测性维护解决方案。 以一家领先汽车零部件生产商为例&#xff0c;其高度自动化的生产线上的每…

C/C++数据结构——剖析排序算法

1. 排序的概念及其运用 1.1 排序的概念 https://en.wikipedia.org/wiki/Insertion_sorthttps://en.wikipedia.org/wiki/Insertion_sort 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的…

力扣hot2--哈希

推荐博客&#xff1a; for(auto i : v)遍历容器元素_for auto 遍历-CSDN博客 字母异位词都有一个特点&#xff1a;也就是对这个词排序之后结果会相同。所以将排序之后的string作为key&#xff0c;将排序之后能变成key的单词组vector<string>作为value。 class Solution …

探索未来科技前沿:深度学习的进展与应用

深度学习的进展 摘要&#xff1a;深度学习作为人工智能领域的重要分支&#xff0c;近年来取得了巨大的进展&#xff0c;并在各个领域展现出惊人的应用潜力。本文将介绍深度学习的发展历程、技术原理以及在图像识别、自然语言处理等领域的应用&#xff0c;展望深度学习在未来的…

SQL29 计算用户的平均次日留存率(lead函数的用法)

代码 with t1 as(select distinct device_id,date --去重防止单日多次答题的情况from question_practice_detail ) select avg(if(datediff(date2,date1)1,1,0)) as avg_ret from (selectdistinct device_id,date as date1,lead(date) over(partition by device_id order by d…

Effective Objective-C 学习(三)

理解引用计数 Objective-C 使用引用计数来管理内存&#xff1a;每个对象都有个可以递增或递减的计数器。如果想使某个对象继续存活&#xff0c;那就递增其引用计数&#xff1a;用完了之后&#xff0c;就递减其计数。计数变为 0时&#xff0c;就可以把它销毁。 在ARC中&#xf…

C++入门学习(二十八)跳转语句—continue语句

当在循环中遇到continue语句时&#xff0c;它会跳过当前迭代剩余的代码块&#xff0c;并立即开始下一次迭代。这意味着continue语句用于跳过循环中特定的执行步骤&#xff0c;而不是完全终止循环。 直接看一下下面的代码更清晰&#xff1a; 与上一节的break语句可以做一下对比…

什么是软件测试?软件测试的目的与原则是什么?

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…