「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)

基于Vue和Quasar的前端SPA项目实战之联合索引(十一)

回顾

通过之前文章基于Vue和Quasar的前端SPA项目实战之动态表单(五)的介绍,关于表单元数据配置相关内容已经实现了,本文主要介绍联合索引功能的实现。

简介

联合索引又叫复合索引,如果索引只有一个字段,在设置列属性的时候直接设置。如果是多个字段联合索引,就需要单独设置了。这里可以创建普通或唯一两种类型的联合索引,通过下拉框选择多个字段。当然如果索引只有一个字段,也可以通过联合索引功能进行设置。

UI界面

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
索引管理

核心代码

由于在创建和编辑表单元数据时候都用到了联合索引功能,所以封装成组件component,名称为CIndexList,这样可以复用,避免代码冗余。

CIndexList组件

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
CIndexList

通过getData方法获取索引内容

getData() {
  let newIndexs = [];
  this.table.indexs.forEach(function(item){
      const newIndexLines = [];
      item.columns.forEach(function(column){
        newIndexLines.push({
          column: {
            id: column.id,
            name: column.name
          }
        })
      });

      const newIndex = {
        id: item.id,
        isNewRow: item.isNewRow,
        caption: item.caption,
        description: item.description,
        indexStorage: item.indexStorage,
        indexType: item.indexType,
        name: item.name,
        indexLines: newIndexLines
      }

      newIndexs.push(newIndex);
  });

  let data = {
    indexs: newIndexs
  }

  return data;
}

应用

在创建和编辑页面中引用即可


保存的表单时候,通过$refs[‘cIndexListRef’]获取索引内容

const ref = this.$refs['cIndexListRef'];
const data = ref.getData();

例子

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
创建表单时候,点击”联合索引”按钮,弹出对话框设置页面,添加3个联合索引。

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
保存表单之前,可以看到”联合索引”按钮括号里面的个数变成了3。

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
创建成功后,编辑表单打开联合索引页面可以再次编辑联合索引。

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)
打开phpmyadmin管理页面,最终确定表和索引都创建成功了。

小结

本文主要介绍了联合索引功能,在创建和编辑表单元数据时候都可以设置联合索引,索引可以用来优化查询速度,也可以用来唯一性验证,避免数据库中插入重复数据。下一篇文章会介绍数据库逆向,在数据库表单已经存在的基础上,通过数据库逆向功能,快速生成元数据,不需要一行代码,我们就可以得到已有数据库的基本crud功能,包括API和UI。类似于phpmyadmin等数据库UI管理系统,但是比数据库UI管理系统更灵活,更友好。

demo演示

官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login

附源码地址

GitHub地址

https://github.com/crudapi/crudapi-admin-web

Gitee地址

https://gitee.com/crudapi/crudapi-admin-web

由于网络原因,GitHub可能速度慢,改成访问Gitee即可,代码同步更新。

Original: https://www.cnblogs.com/crudapi/p/14962072.html
Author: crudapi
Title: 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574299/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Git的使用以及整理

    Usage of Git 1 Git区域划分 1)工作区(working directory):默认为项目根目录root 2)缓存区(stage):在版本库中设立一个缓存/暂存区,…

    Java 2023年6月8日
    091
  • 存储优化(2)-排序引起的慢查询优化

    排序引起的慢查询,通常不是那么容易发现,经常和数据分布有关系。往往在业务刚开始时并没有什么问题,但是随着业务的发展,数据分布呈现一种特定的规律,导致了慢查询,或者并不是什么慢查询,…

    Java 2023年6月8日
    082
  • Oracle数据库丢失表排查思路

    Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排…

    Java 2023年6月8日
    066
  • Java实现链表

    3、链表 MyLinkedList 有一个头指针,一个尾指针,还有链表长度size 内有两个类,一个是实现了Iterator接口的迭代器类,另一个是Node类,其中Node数据结构…

    Java 2023年6月15日
    060
  • java中的Map接口(Hashtable ,properties ,HashMap , LinkedHashMap , TreeMap)

    Map接口的特点 Map用于保存具有映射关系的数据:key,Value 补充:Collection接口 也是有映射关系的,底层Value 让一个static Object类的方法代…

    Java 2023年6月6日
    072
  • Java字节码含义

    Java字节码 操作数栈 在解释执行过程中,每当为Java方法分配栈桢时,Java虚拟机往往需要开辟一块额外的空间作为操作数栈,来存放计算的操作数以及返回结果。具体来说, JVM执…

    Java 2023年5月29日
    046
  • 选择排序

    选择排序 原理 第一次从数据中选出最小的元素,放置序列的起始位置([0,n-1]) 第二次从数据中选出最小的元素,放置序列第二个位置([0,n-2]) … 排序过程 &…

    Java 2023年6月9日
    074
  • Nacos服务注册为指定IP和端口

    转至:https://www.jianshu.com/p/64e1f7d50c6e 如果选择固定Ip注册可以配置 spring.cloud.nacos.discovery.ip =…

    Java 2023年6月8日
    091
  • 回形数格式方阵

    package com.atguigu.exer; import java.util.Scanner; public class Huixing{public static voi…

    Java 2023年6月13日
    077
  • Java 基础(Stream APl)

    Java8 中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是Stream API。 Stream API(java.util.stream)把真正的函数式编程风格引…

    Java 2023年5月29日
    074
  • ruoyi框架-将本地mybatis修改为mybatisplus

    1.修改根目录下pom.xml文件,注释mybatis依赖,引入mybatis-plus依赖。 <dependency> <groupId>com.baom…

    Java 2023年5月30日
    066
  • spring中的事件发布与监听

    点赞再看,养成习惯,微信搜索「 小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 spring事件发布与监听的应用场景 当处理完一段…

    Java 2023年6月8日
    057
  • SpringBoot在Tomcat部署war包

    启动类配置 继承SpringBootServletInitializer @SpringBootApplication public class TestApplication e…

    Java 2023年6月15日
    084
  • 动力节点Springboot教程学习笔记整理

    一丶概述 去年年底转后台不久,就接手了公司后台项目,虽然暂无开发需求,IDEA运行跑通程序,解决业务反馈问题断点跟近,打包发布都是问题,然而动力节点这个springboot视频帮了…

    Java 2023年6月7日
    080
  • 数据库的备份和恢复命令,使用视图,索引,事务

    备份库 直接在cmd窗口中直接输入,结束不需要输入; mysqldump -h端口号 -u用户名 -p密码 数据库名>备份地址 恢复库 在cmd窗口中进行 1、连接数据库 m…

    Java 2023年6月6日
    094
  • Ubuntu18.04编译OpenJDK12

    一、环境 VMware 16 下的 Ubuntu 18.04 LTS 虚拟机 二、下载OpenJDK源码 官网下载(速度较慢):https://download.java.net/…

    Java 2023年6月9日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球