经过上一篇文章 基于Vue和Quasar的前端SPA项目实战之布局菜单(三)的介绍,咱们已经完成了布局菜单,本文主要介绍序列号功能的实现。javascript
MySQL数据库没有单独的Sequence,只支持自增加(increment)主键,可是不能设置步长、开始索引、格式等,最重要的是一张表只能由一个字段使用自增,但有的时候咱们须要多个字段实现序列号功能或者须要支持复杂格式,MySQL自己是实现不了的,因此crudapi封装了复杂序列号,支持字符串和数字,自定义格式,也能够设置为时间戳。能够用于产品编码、订单流水号等场景!前端
序列号列表vue
建立序列号java
编辑序列号ios
序列号API包括基本的CRUD操做,具体的经过swagger文档能够查看。经过axios封装api,名称为metadataSequencegit
import { axiosInstance } from "boot/axios"; const metadataSequence = { create: function(data) { return axiosInstance.post("/api/metadata/sequences", data ); }, update: function(id, data) { return axiosInstance.patch("/api/metadata/sequences/" + id, data ); }, list: function(page, rowsPerPage, search, query) { if (!page) { page = 1 } if (!rowsPerPage) { rowsPerPage = 10 } return axiosInstance.get("/api/metadata/sequences", { params: { offset: (page - 1) * rowsPerPage, limit: rowsPerPage, search: search, ...query } } ); }, count: function(search, query) { return axiosInstance.get("/api/metadata/sequences/count", { params: { search: search, ...query } } ); }, get: function(id) { return axiosInstance.get("/api/metadata/sequences/" + id, { params: { } } ); }, delete: function(id) { return axiosInstance.delete("/api/metadata/sequences/" + id); }, batchDelete: function(ids) { return axiosInstance.delete("/api/metadata/sequences", {data: ids} ); } }; export { metadataSequence };
经过列表页面,新建页面和编辑页面实现了序列号基本的crud操做,其中新建和编辑页面相似,普通的表单提交,这里就不详细介介绍了,直接查看代码便可。对于列表查询页面,用到了自定义组件,这里重点介绍了一下自定义组件相关知识。github
序列号列表页面中用到了分页控件,由于其它列表页面也会用到,因此适合封装成component, 名称为CPage。主要功能包括:设置每页的条目个数,切换分页,统同样式等。web
首先在components目录下建立文件夹CPage,而后建立CPage.vue和index.js文件。数据库
用到了q-pagination控件axios
<q-pagination unelevated v-model="pagination.page" :max="Math.ceil(pagination.count / pagination.rowsPerPage)" :max-pages="10" :direction-links="true" :ellipses="false" :boundary-numbers="true" :boundary-links="true" @input="onRequestAction" > </q-pagination>
实现install方法
import CPage from "./CPage.vue"; const cPage = { install: function(Vue) { Vue.component("CPage", CPage); } }; export default cPage;
首先,建立boot/cpage.js文件
import cPage from "../components/CPage"; export default async ({ Vue }) => { Vue.use(cPage); };
而后,在quasar.conf.js里面boot节点添加cpage,这样Quasar就会自动加载cpage。
boot: [ 'i18n', 'axios', 'cpage' ]
在序列号列表中经过标签CPage使用
<CPage v-model="pagination" @input="onRequestAction"></CPage>
当切换分页的时候,经过@input回调,传递当前页数和每页个数给父页面,而后经过API获取对应的序列号列表。
本文主要介绍了元数据中序列号功能,用到了q-pagination分页控件,而且封装成自定义组件cpage, 而后实现了序列号的crud增删改查功能,下一章会介绍元数据中表定义功能。
官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login
https://github.com/crudapi/crudapi-admin-web
https://gitee.com/crudapi/crudapi-admin-web
因为网络缘由,GitHub可能速度慢,改为访问Gitee便可,代码同步更新。