From 22229c67d87f0fae4c4bc90db106b8a1e2c49b53 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 20 八月 2026 15:50:11 +0800
Subject: [PATCH] feat(permission): 为多个模块添加管理员权限控制功能

---
 src/views/basicData/supplierManage/components/HomeTab.vue |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/views/basicData/supplierManage/components/HomeTab.vue b/src/views/basicData/supplierManage/components/HomeTab.vue
index 7b90272..794f430 100644
--- a/src/views/basicData/supplierManage/components/HomeTab.vue
+++ b/src/views/basicData/supplierManage/components/HomeTab.vue
@@ -168,6 +168,16 @@
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
+            <el-form-item label="渚涘簲鍟嗙被鍨嬶細" prop="supplierType">
+              <el-select v-model="form.supplierType" placeholder="璇烽�夋嫨" clearable>
+                <el-option label="鐢�" value="鐢�" />
+                <el-option label="涔�" value="涔�" />
+                <el-option label="涓�" value="涓�" />
+                <el-option label="涓�" value="涓�" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="鏄惁鐧藉悕鍗曪細" prop="isWhite">
               <el-select v-model="form.isWhite" placeholder="璇烽�夋嫨" clearable>
                 <el-option label="鏄�" :value="0" />
@@ -232,7 +242,7 @@
 </template>
 
 <script setup>
-import { onMounted, ref } from "vue";
+import { onMounted, ref, computed } from "vue";
 import { Search } from "@element-plus/icons-vue";
 import { delSupplier } from "@/api/basicData/supplierManageFile.js";
 import { ElMessageBox } from "element-plus";
@@ -248,12 +258,20 @@
 import FilesDia from "../filesDia.vue";
 const { proxy } = getCurrentInstance();
 const userStore = useUserStore();
+const isAdminUser = computed(() =>
+  ["admin", "鏅��2", "鏈�楂�1"].some(r => (userStore.roles || []).includes(r))
+);
 
 const tableColumn = ref([
   {
     label: "渚涘簲鍟嗗悕绉�",
     prop: "supplierName",
     width: 250,
+  },
+  {
+    label: "渚涘簲鍟嗙被鍨�",
+    prop: "supplierType",
+    width: 120,
   },
   {
     label: "绾崇◣浜鸿瘑鍒彿",
@@ -352,6 +370,7 @@
     contactUserPhone: "",
     maintainUserId: "",
     maintainTime: "",
+    supplierType: "",
     isWhite: "",
   },
   rules: {
@@ -360,13 +379,14 @@
       { required: true, message: "璇疯緭鍏�", trigger: "blur" },
     ],
     companyAddress: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    companyPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    companyPhone: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     bankAccountName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     bankAccountNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     contactUserName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     contactUserPhone: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     maintainUserId: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
     maintainTime: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
+    supplierType: [{ required: true, message: "璇烽�夋嫨渚涘簲鍟嗙被鍨�", trigger: "change" }],
   },
 });
 const { searchForm, form, rules } = toRefs(data);
@@ -516,7 +536,7 @@
   let ids = [];
   if (selectedRows.value.length > 0) {
     // 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹�
-    const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName);
+    const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName && !isAdminUser.value);
     if (unauthorizedData.length > 0) {
       proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�");
       return;

--
Gitblit v1.9.3