Explorar o código

按钮权限控制

cxmo hai 7 meses
pai
achega
62f4cd98f5

+ 2 - 2
src/layout/Index.vue

@@ -9,8 +9,8 @@ const { getPermissionData } = usePermission()
 
 const { menuClose } = useLayoutState()
 
-//暂时注释 方便调试
-//getPermissionData()
+
+getPermissionData()
 
 </script>
 

+ 3 - 4
src/views/author/List.vue

@@ -32,7 +32,7 @@ function getTableData(){
     apiAuthor.getAuthorList({
         PageSize:tableQuery.pageSize,
         CurrentIndex:tableQuery.currentPage,
-        Keyword:tableQuery.keyWord
+        KeyWord:tableQuery.keyWord
     }).then(res=>{
         if(res.Ret!==200) return 
         tableData.value = res.Data.List||[]
@@ -100,7 +100,6 @@ async function handleSaveAuthor(){
         <div class="table-box">
             <el-table stripe border :data="tableData">
                 <el-table-column 
-                    align="center"
                     v-for="column in tableColumns" :key="column.key"
                     :prop="column.key" :label="column.label" :sortable="column.sortable" :width="column.width">
                     <template #default="{row}">
@@ -116,9 +115,9 @@ async function handleSaveAuthor(){
                         <span v-else>{{ row[column.key]||'-' }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" align="center">
+                <el-table-column label="操作">
                     <template #default="{row}">
-                        <el-link type="primary" :underline="false" @click="handleModifyAuthorShow(row)">配置</el-link>
+                        <el-link type="primary" :underline="false" @click="handleModifyAuthorShow(row)" v-permission="'analyst:config'">配置</el-link>
                     </template>
                 </el-table-column>
             </el-table>

+ 1 - 1
src/views/customer/NotificationList.vue

@@ -202,7 +202,7 @@ function pushMessage(data){
                 </el-table-column>
                 <el-table-column label="操作">
                     <template #default="{row}">
-                        <el-link type="primary" :underline="false" @click="pushMessage(row)" v-if="checkDataStatus(row)">推送</el-link>
+                        <el-link type="primary" :underline="false" @click="pushMessage(row)" v-if="checkDataStatus(row)" v-permission="'customer:sendMessage'">推送</el-link>
                         <span v-else style="color:#666666;">已推送</span>
                     </template>
                 </el-table-column>

+ 0 - 1
src/views/customer/TempUserList.vue

@@ -78,7 +78,6 @@ function handleSortChange({order,prop}){
         <div class="table-box">
             <el-table stripe border :data="tableData" @sort-change="handleSortChange">
                 <el-table-column 
-                    align="center"
                     v-for="column in tableColumns" :key="column.key"
                     :prop="column.key" :label="column.label" :sortable="column.sortable"/>
             </el-table>

+ 8 - 4
src/views/media/AudioList.vue

@@ -31,6 +31,7 @@ function getTableData(){
         PageSize:tableQuery.pageSize,
         CurrentIndex:tableQuery.currentPage,
         SortType:tableQuery.sortType,
+        KeyWord:tableQuery.keyWord
     }).then(res=>{
         if(res.Ret!==200) return 
         tableData.value = res.Data.List||[]
@@ -92,8 +93,10 @@ function handleSortChange({order,prop}){
 <template>
     <div class="audio-list-wrap">
         <div class="top-box">
-            <el-button type="primary" :icon="Plus" @click="handleEdit">上传音频</el-button>
-            <el-input style="width:400px;margin-left: auto;" placeholder="音频名称" v-model="tableQuery.keyWord" :prefix-icon="Search" clearable></el-input>
+            <el-button type="primary" :icon="Plus" @click="handleEdit" v-permission="'media:uploadAudio'">上传音频</el-button>
+            <el-input style="width:400px;margin-left: auto;" placeholder="音频名称" 
+                v-model="tableQuery.keyWord" :prefix-icon="Search" clearable 
+                @input="handlePageChange(1)"/>
         </div>
         <div class="table-box">
             <el-table stripe border :data="tableData" @sort-change="handleSortChange">
@@ -109,8 +112,8 @@ function handleSortChange({order,prop}){
                 </el-table-column>
                 <el-table-column label="操作" >
                     <template #default="{row}">
-                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;">编辑</el-link>
-                        <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;" v-permission="'media:editAudio'">编辑</el-link>
+                        <el-link type="danger" :underline="false" @click="handleDelete(row)" v-permission="'media:deleteAudio'">删除</el-link>
                     </template>
                 </el-table-column>
             </el-table>
@@ -130,6 +133,7 @@ function handleSortChange({order,prop}){
         mediaType="audio"
         modifyType="add"
         :modifydata="curData"
+        @save="getTableData"
     ></MediaUpload>
     <MediaPlayer 
         v-model:show="mediaPlayerShow"

+ 3 - 3
src/views/media/PictureLibrary.vue

@@ -113,7 +113,7 @@ async function handleSavePic(){
 <template>
     <div class="picture-libraray-wrap">
         <div class="top-box">
-            <el-button type="primary" @click="handlePicUploadShow({})">上传图片</el-button>
+            <el-button type="primary" @click="handlePicUploadShow({})" v-permission="'source:uploadImage'">上传图片</el-button>
             <el-tooltip
                 class="box-item"
                 effect="dark"
@@ -160,8 +160,8 @@ async function handleSavePic(){
                 </el-table-column>
                 <el-table-column label="操作">
                     <template #default="{row}">
-                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;">编辑</el-link>
-                        <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;" v-permission="'source:edit'">编辑</el-link>
+                        <el-link type="danger" :underline="false" @click="handleDelete(row)" v-permission="'source:delete'">删除</el-link>
                     </template>
                 </el-table-column>
             </el-table>

+ 8 - 4
src/views/media/VideoList.vue

@@ -32,6 +32,7 @@ function getTableData(){
         PageSize:tableQuery.pageSize,
         CurrentIndex:tableQuery.currentPage,
         SortType:tableQuery.sortType,
+        KeyWord:tableQuery.keyWord
     }).then(res=>{
         if(res.Ret!==200) return 
         tableData.value = res.Data.List||[]
@@ -93,8 +94,10 @@ function handleSortChange({order,prop}){
 <template>
     <div class="video-list-wrap">
         <div class="top-box">
-            <el-button type="primary" :icon="Plus" @click="handleEdit">上传视频</el-button>
-            <el-input style="width:400px;margin-left: auto;" placeholder="视频名称" v-model="tableQuery.keyWord" :prefix-icon="Search" clearable></el-input>
+            <el-button type="primary" :icon="Plus" @click="handleEdit" v-permission="'media:uploadVideo'">上传视频</el-button>
+            <el-input style="width:400px;margin-left: auto;" placeholder="视频名称" 
+                v-model="tableQuery.keyWord" :prefix-icon="Search" clearable 
+                @input="handlePageChange(1)"/>
         </div>
         <div class="table-box">
             <el-table stripe border :data="tableData" @sort-change="handleSortChange">
@@ -120,8 +123,8 @@ function handleSortChange({order,prop}){
                 </el-table-column>
                 <el-table-column label="操作">
                     <template #default="{row}">
-                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;">编辑</el-link>
-                        <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+                        <el-link type="primary" :underline="false" @click="handleEdit(row)" style="margin-right: 20px;" v-permission="'media:editVideo'">编辑</el-link>
+                        <el-link type="danger" :underline="false" @click="handleDelete(row)" v-permission="'media:deleteVideo'">删除</el-link>
                     </template>
                 </el-table-column>
             </el-table>
@@ -143,6 +146,7 @@ function handleSortChange({order,prop}){
         :modifyType="modifyType"
         ImageUploadWidth="192px"
         ImageUploadHeight="108px"
+        @save="getTableData"
     ></MediaUpload>
     <MediaPlayer 
         v-model:show="mediaPlayerShow"

+ 3 - 3
src/views/media/components/MediaUpload.vue

@@ -101,6 +101,7 @@ function handleUpload(){
     uploadRef.value?.$el.getElementsByTagName('input')[0].click()
 }
 async function handleUploadMedia(file){
+    uploadLoading.value = true
     //如果是音频,则获取音频长度 单位秒
     if(props.mediaType==='audio'){
         mediaData.duration = await getAudioDuration(file)
@@ -108,10 +109,9 @@ async function handleUploadMedia(file){
     const {type} = file.file
     if(type!==uploadType.value){
         ElMessage.warning(`仅支持${uploadAccept.value}格式的文件`)
+        uploadLoading.value = false
         return 
     }
-
-    uploadLoading.value = true
     let form = new FormData();
     form.append('File',file.file);
     const res = props.mediaType==='audio'
@@ -215,7 +215,7 @@ function handleUploadImg(file){
                                 :loading="uploadLoading"
                                 @click="handleUpload" 
                                 style="background-color: #086CE0;color:#fff;border-top-left-radius:0;border-bottom-left-radius:0;">
-                                {{uploadLoading?`上传中...`:`上传${mediaName}`}}
+                                {{uploadLoading?`上传中`:`上传${mediaName}`}}
                             </el-button>
                             <el-upload
                                 ref="uploadRef"

+ 2 - 2
src/views/system/AuthSet.vue

@@ -100,8 +100,8 @@ function handleSave(){
         </el-select>
       </div>
       <div v-if="!isAdmin">
-        <el-button v-permission="'permission:cancel'" type="primary" plain @click="$router.back()">取消</el-button>
-        <el-button v-permission="'permission:save'" type="primary" :disabled="loading" @click="handleSave">保存</el-button>
+        <el-button v-permission="'sysuser:authCancel'" type="primary" plain @click="$router.back()">取消</el-button>
+        <el-button v-permission="'sysuser:authSave'" type="primary" :disabled="loading" @click="handleSave">保存</el-button>
       </div>
     </div>
     <div class="shadow-box content-box" v-loading="loading" element-loading-text="loading...">

+ 1 - 0
src/views/system/userList/Index.vue

@@ -148,6 +148,7 @@ function handleSubmitForm(){
             <template #default="{ row }">
               <el-button
                 v-if="row.SysRoleName!=='admin'"
+                v-permission="'sysuser:userConfig'"
                 type="primary"
                 link
                 @click.stop="changeUserAuth(row)"