實習隨筆-8、antd-vue Table元件根據許可權在對應行渲染操作
序言:
需求:最近在開發一個功能,是需要根據使用者身份與建議書的狀態兩者的結合來得出使用者所擁有的操作,並需要渲染到對應的表格行上面。由於本專案是用antd-vue來進行開發的,筆者也是第一次用這套元件,著實費了我一些功夫才搞出來,用的是比較直觀的方法,優化上尚有欠缺,希望各路大佬補充
需求
實現:
程式碼實現:
一、首先,我們要想的是,怎麼將這些操作渲染到表格的操作列上面
1、我們先來看看,antd-vue Table元件的api,這時我們發現了,在Table 的Column裡面,有這樣的api,是不是很熟悉,沒錯,這就是插槽!
2、有了插槽後,我們就可以這樣實現,附上程式碼
template部分:
<a-table :columns="columns" :data-source="dataSource" :pagination="pagination" @change="changePage" >
<template slot="actions" slot-scope=" text , record ">
<a @click="actionLook">檢視</a>
</template>
</a-table>
script部分:
const columns = [ {
title: '操作',
dataIndex: 'actions',
key: 'actions',
scopedSlots: { customRender: 'actions' },
width:300,
align:'center',
},
];
注意!我這裡只是擷取了操作這一部分的程式碼
二、我怎麼根據使用者的身份以及專案建議書的狀態來進行按需渲染呢
這裡就得提到一個表格特有的引數了,通過這個引數,我們可以拿到表格每一行的資料,這個引數就是record
用法:例如,表格行中有一個屬性是name
,那麼,我要拿到這個每一行name
的值,我就可以用過record.name
來拿到
言歸正傳,既然我們有了這個引數,那麼我們是不是就可以拿到表格中的作者名字、專案建議書狀態、提審人名字,拿到這幾個資料後,再通過v-if進行判斷就可以了
附上程式碼:
<!-- 表格 -->
<a-table :columns="columns" :data-source="dataSource" :pagination="pagination" @change="changePage" >
<template slot="actions" slot-scope=" text , record ">
<a @click="actionLook(record)">檢視</a>
<a @click="actionCopy()" class="mgl10">複製</a>
<a @click="actionPreview()" class="mgl10" target="view_window" :href="record.pdfpath">預覽</a>
<a @click="actionEdit()" v-if="stateShowList.indexOf(record.state)!=-1 && author.indexOf(record.author)!=-1" class="mgl10">編輯</a>
<a @click="clickFlag && actionArraignment(record.author,record.reviewer)" v-if="(stateShowList.indexOf(record.state)!=-1 && author.indexOf(record.author)!=-1) || (stateShowList1.indexOf(record.state) !=-1 &&reviewer.indexOf(record.reviewer) !=-1)" class="mgl10">提審</a>
<a v-if="stateShowList.indexOf(record.state)!=-1 && author.indexOf(record.author)!=-1" class="mgl10">刪除</a>
<a @click="actionDownload()" v-if="stateShowList2.indexOf(record.state)!=-1" class="mgl10">下載</a>
<a @click="actionShare(record.key)" v-if="stateShowList2.indexOf(record.state)!=-1" class="mgl10" >分享</a>
<a @click="actionViewRecords()" v-if="stateShowList2.indexOf(record.state)!=-1" class="mgl10" >檢視記錄</a>
<a @click="actionWhiteList()" v-if="stateShowList2.indexOf(record.state)!=-1 && (reviewer.indexOf(record.reviewer)!=-1 || author.indexOf(record.author)!=-1 )" class="mgl10">白名單</a>
<a @click="actionFile()" v-if="stateShowList2.indexOf(record.state)!=-1 && (reviewer.indexOf(record.reviewer)!=-1 || author.indexOf(record.author)!=-1 )" class="mgl10" >歸檔</a>
</template>
</a-table>
data
中的資料,其中,author
和reviewer
需要後臺傳入當前使用者身份再去進行賦值
stateShowList:['草稿','未通過'], //建議書狀態列表
stateShowList1:['待稽核'],//建議書狀態列表
stateShowList2:['終稿'],//建議書狀態列表
author:[],//登入進去的作者
reviewer:[],//提審人
賦值的程式碼::
if(res.code==1){
this.author=res.name;
}
if(res.code==2){
this.reviewer=res.name;
}
部落格記錄程式碼,程式碼記錄生活,一切都是為了改BUG
相關文章
- 1.6.2. 許可權對應的操作
- MYSQL學習筆記13: DCL許可權控制(使用者許可權操作)MySql筆記
- DcatAdmin 根據選單資料自動填充許可權資訊 (Artisan命令)
- Linux檔案許可權對應數值Linux
- CentOS8中恢復根目錄為預設許可權CentOS
- android 許可權元件設計Android元件
- DRF內建許可權元件之自定義許可權管理類元件
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 檔案目錄許可權操作
- iview Table元件渲染操作按鈕, render 渲染icon圖示更改方法View元件
- 根據提示操作
- 許可權系統:許可權應用服務設計
- k8s結合jumpserver做kubectl許可權控制 使用者在多個namespaces的訪問許可權 rbac許可權控制K8SServernamespace訪問許可權
- linux許可權字串rwxr-xrw-所對應的八進位制許可權數字Linux字串
- Android 6.0 在執行時請求許可權Android
- vxe-table 校驗,根據行屬性校驗
- Hyperf 使用 hyperf-permission 元件實現許可權管理元件
- 在Windows低許可權下利用服務進行提權Windows
- Security8:許可權模擬
- 許可權系統:許可權應用服務設計Tu
- Lnmp 網站根目錄檔案許可權LNMP網站
- 許可權控制庫 Casbin 在 Slim 中的應用
- java BigInteger 對許可權進行2的權的和計算Java
- django | 根據 model 建立對應的表Django
- 許可權之選單許可權
- Laravel 許可權 Policy 學習Laravel
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- Mysql學習筆記4--使用者許可權MySql筆記
- k8s許可權管理(RBAC)K8S
- element table的selection根據條件禁用
- 一對一原始碼,前端頁面許可權和按鈕許可權控制原始碼前端
- vuejs單頁應用的許可權管理實踐VueJS
- 類的許可權與應用
- 許可權系統:一文搞懂功能許可權、資料許可權
- Laravel實現許可權控制Laravel
- MySQL許可權管理實戰MySql
- Linux 筆記分享九:ACL 許可權Linux筆記
- Linux 筆記分享十:sudo 許可權Linux筆記