經過上一篇文章 基於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便可,代碼同步更新。