<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          「免費(fèi)開源」基于Vue和Quasar的前端SPA項(xiàng)目crudapi后臺(tái)管理系統(tǒng)實(shí)戰(zhàn)之模塊管理(十四)

          共 3448字,需瀏覽 7分鐘

           ·

          2021-09-09 13:24

          基于Vue和Quasar的前端SPA項(xiàng)目實(shí)戰(zhàn)之模塊管理(十四)


          回顧


          通過之前一篇文章?基于Vue和Quasar的前端SPA項(xiàng)目實(shí)戰(zhàn)之動(dòng)態(tài)表單(五)的介紹,通過配置的方式可以零代碼實(shí)現(xiàn)表單管理功能,但是所有表單都沒有分類,如果表單數(shù)量很多的情況下不方便查找,因此本文主要介紹表單模塊管理相關(guān)內(nèi)容。


          簡介


          屬于同一類型的表單可以添加到同一個(gè)模塊,比如字典相關(guān)的表建立“字典”模塊,用戶相關(guān)的表建立“用戶管理”模塊,模塊在首頁直接展示,用戶可以快速的操作對(duì)應(yīng)的表單。


          UI界面


          home

          首頁顯示模塊和表單鏈接


          表單配置


          table

          通過數(shù)據(jù)庫逆向的方式,將元數(shù)據(jù)物理表ca_meta_table通過動(dòng)態(tài)表單方式管理起來,可以利用動(dòng)態(tài)表單功能進(jìn)行查詢數(shù)據(jù),但是不能修改數(shù)據(jù)。為了避免誤操作,這里設(shè)置屬性為只讀。

          relation

          模塊和模塊行是一對(duì)多關(guān)系,模塊行和表是多對(duì)一關(guān)系。


          模塊配置


          module

          字典模塊添加3個(gè)省,市,區(qū)三個(gè)表。


          核心代碼


          說明


          表單配置好之后,api自動(dòng)生成了,直接通過模塊api獲取后臺(tái)數(shù)據(jù),首頁展示模塊,每個(gè)模塊可以折疊。


          代碼


          async loadData() {
            try {
              const modules = await tableService.list("module", 0, 9999, null, null, null);
          
              for (let i = 0; i < modules.length; i++) {
                  modules[i].expanded = true;
              }
          
              this.modules = modules;
            } catch (error) {
              console.error(error);
            }
          }
          

          獲取模塊數(shù)據(jù)


          <div class="q-pt-md">
            <q-banner inline-actions class="text-black bg-listcolor">
                <span class="title">業(yè)務(wù)數(shù)據(jù)</span>
                <template v-slot:action>
                  <q-btn
                    dense
                    flat
                    unelevated
                    round
                    color="primary"
                    @click="businessExpand = !businessExpand" 
                    :icon="businessExpand ? 'expand_less' : 'expand_more'"
                  />
                </template>
            </q-banner>
          
            <div v-show="businessExpand">
              <div class="q-pt-md  q-pl-md" :key="item.id" v-for="item in modules">
                <q-banner clickable inline-actions class="text-black bg-listcolor">
                    <span class="title">{{item.name}}</span>
                    <template v-slot:action>
                      <q-btn
                        dense
                        flat
                        unelevated
                        round
                        color="primary"
                        @click="onConfigClick(item)"
                        icon="settings"
                      />
                      <q-btn
                        dense
                        flat
                        unelevated
                        round
                        color="primary"
                        @click="item.expanded = !item.expanded" 
                        :icon="item.expanded ? 'expand_less' : 'expand_more'"
                      />
                    </template>
                </q-banner>
          
                <div v-show="item.expanded" class="q-pt-md row items-start q-gutter-md">
                    <q-item 
                    :active="active" active-class="text-primary"
                    clickable v-ripple @click="onModuleLineClick(moduleLine)" 
                    :key="moduleLine.id" v-for="moduleLine in item.moduleLines"
                    > 
                      <q-item-section>
                        <q-item-label>{{moduleLine.table.caption}}</q-item-label>
                        <q-item-label caption>{{moduleLine.table.name}}</q-item-label>
                      </q-item-section>
                    </q-item>
                </div>
              </div>
            </div>
          </div>
          

          頁面繪制

          #

          小結(jié)


          本文主要介紹了表單的模塊化管理,配置了用戶管理,文件,字典等模塊,優(yōu)化了首頁布局,使用起來更方便快捷。


          crudapi簡介


          crudapi是crud+api組合,表示增刪改查接口,是一款零代碼可配置的產(chǎn)品。使用crudapi可以告別枯燥無味的增刪改查代碼,讓您更加專注業(yè)務(wù),節(jié)約大量成本,從而提高工作效率。 crudapi的目標(biāo)是讓處理數(shù)據(jù)變得更簡單,所有人都可以免費(fèi)使用! 無需編程,通過配置自動(dòng)生成crud增刪改查RESTful API,提供后臺(tái)UI管理業(yè)務(wù)數(shù)據(jù)。基于主流的開源框架,擁有自主知識(shí)產(chǎn)權(quán),支持二次開發(fā)。


          demo演示


          crudapi屬于產(chǎn)品級(jí)的零代碼平臺(tái),不同于自動(dòng)代碼生成器,不需要生成Controller、Service、Repository、Entity等業(yè)務(wù)代碼,程序運(yùn)行起來就可以使用,真正0代碼,可以覆蓋基本的和業(yè)務(wù)無關(guān)的CRUD RESTful API。

          官網(wǎng)地址: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

          由于網(wǎng)絡(luò)原因,GitHub可能速度慢,改成訪問Gitee即可,代碼同步更新。




          瀏覽 105
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  羽月希奶水一区二区三区 | 成人爽a毛片一区二区免费 | 日本黄免费观看 | 在线看黄色视频网站 | 日本东京热高清 |