Bladeren bron

为管理员添加权限控制,更新FishView.vue文件,确保只有管理员可以访问所有者相关字段和搜索功能,同时优化保存编辑功能以移除非管理员的所有者信息。

wuyi 4 maanden geleden
bovenliggende
commit
4b5a124380
1 gewijzigde bestanden met toevoegingen van 13 en 5 verwijderingen
  1. 13 5
      src/views/FishView.vue

+ 13 - 5
src/views/FishView.vue

@@ -33,6 +33,7 @@
           <InputText
             v-model="searchForm.ownerName"
             placeholder="所有者"
+            v-if="isAdmin"
             size="small"
             class="w-32"
             @keyup.enter="handleSearch"
@@ -146,7 +147,7 @@
         </template>
       </Column>
 
-      <Column field="ownerName" header="所有者" style="min-width: 100px; max-width: 150px">
+      <Column field="ownerName" header="所有者" v-if="isAdmin" style="min-width: 100px; max-width: 150px">
         <template #body="slotProps">
           <span
             class="owner-text copyable-text"
@@ -296,7 +297,7 @@
             />
           </div>
 
-          <div class="field">
+          <div class="field" v-if="isAdmin">
             <label for="edit-ownerName" class="font-medium text-sm mb-2 block">所有者</label>
             <Dropdown
               id="edit-ownerName"
@@ -478,7 +479,8 @@ const fetchData = async () => {
       searchForm.value.name || undefined,
       searchForm.value.phone || undefined,
       searchForm.value.result || undefined,
-      searchForm.value.ownerName || undefined,
+      // 只有管理员才能使用所有者搜索参数
+      isAdmin.value ? searchForm.value.ownerName || undefined : undefined,
       searchForm.value.createdAt ? formatDateForAPI(searchForm.value.createdAt) : undefined,
       searchForm.value.loginTime ? formatDateForAPI(searchForm.value.loginTime) : undefined
     )
@@ -659,7 +661,13 @@ const openEditDialog = (fish) => {
 const saveEdit = async () => {
   editLoading.value = true
   try {
-    await updateFish(editForm.value)
+    const dataToSave = { ...editForm.value }
+    if (!isAdmin.value) {
+      delete dataToSave.ownerId
+      delete dataToSave.ownerName
+    }
+
+    await updateFish(dataToSave)
     toast.add({
       severity: 'success',
       summary: '成功',
@@ -667,7 +675,7 @@ const saveEdit = async () => {
       life: 3000
     })
     editDialog.value = false
-    fetchData() // 刷新列表
+    fetchData()
   } catch (error) {
     toast.add({
       severity: 'error',