瀏覽代碼

feat:获取管理员列表接口调整

liyangbin 5 月之前
父節點
當前提交
1054900b0c
共有 5 個文件被更改,包括 256 次插入234 次删除
  1. 15 5
      src/views/Dashboard.vue
  2. 101 123
      src/views/Device.vue
  3. 11 5
      src/views/LicenseManage.vue
  4. 11 5
      src/views/ManageAdmin.vue
  5. 118 96
      src/views/TeamManagement/ManageMember.vue

+ 15 - 5
src/views/Dashboard.vue

@@ -340,12 +340,22 @@ export default {
     },
     // 获取所有团队
     getTeamList() {
-      get('/pdf-tech/vppTeam/getManageTeamList', {
-        teamId: '',
-        keyword: ''
-      }).then((res) => {
+      // get('/pdf-tech/vppTeam/getManageTeamList', {
+      //   teamId: '',
+      //   keyword: ''
+      // }).then((res) => {
+      //   if (res.data.code === 200) {
+      //     res.data.result.list.forEach(item => {
+      //       this.teamList.push({
+      //           label: item.name,
+      //           value: item.id
+      //       })
+      //     })
+      //   }
+      // })
+      get('/pdf-tech/vppTeam/listWithAdmin').then((res) => {
         if (res.data.code === 200) {
-          res.data.result.list.forEach(item => {
+          res.data.result.forEach(item => {
             this.teamList.push({
                 label: item.name,
                 value: item.id

+ 101 - 123
src/views/Device.vue

@@ -46,24 +46,24 @@ export default {
     pagingQuery() {
       get(
         '/pdf-tech/vppDevice/page?page=' +
-          this.currentPage +
-          '&' +
-          'pageSize=' +
-          this.size +
-          '&' +
-          'productId=' +
-          this.productId +
-          '&' +
-          'teamId=' +
-          this.teamId +
-          '&' +
-          'status=' +
-          this.status +
-          '&' +
-          'queryString=' +
-          this.queryString
+        this.currentPage +
+        '&' +
+        'pageSize=' +
+        this.size +
+        '&' +
+        'productId=' +
+        this.productId +
+        '&' +
+        'teamId=' +
+        this.teamId +
+        '&' +
+        'status=' +
+        this.status +
+        '&' +
+        'queryString=' +
+        this.queryString
       ).then((res) => {
-        if(res.data.code === 200){
+        if (res.data.code === 200) {
           const data = res.data.result?.list
           for (let i = 0; i < data.length; i++) {
             if (data[i].status === 0) {
@@ -84,12 +84,17 @@ export default {
     },
     // 获取团队管理列表
     getTeamList() {
-      get('/pdf-tech/vppTeam/getManageTeamList', {
-        teamId: '',
-        keyword: ''
-      }).then((res) => {
+      // get('/pdf-tech/vppTeam/getManageTeamList', {
+      //   teamId: '',
+      //   keyword: ''
+      // }).then((res) => {
+      //   if (res.data.code === 200) {
+      //     this.teamList = res.data.result.list
+      //   }
+      // })
+      get('/pdf-tech/vppTeam/listWithAdmin').then((res) => {
         if (res.data.code === 200) {
-          this.teamList = res.data.result.list
+          this.teamList = res.data.result
         }
       })
     },
@@ -103,43 +108,43 @@ export default {
     },
     //取消设备授权
     cancelAuthorization() {
-        if (this.downloadLoading) return
-        this.downloadLoading = true
-        setTimeout(() => {
-          this.downloadLoading = false
-        }, 2000)
-        var urlencoded = new URLSearchParams()
-        urlencoded.append('deviceId', this.deviceId)
-        post(
-          '/pdf-tech/vppDevice/cancel',
-          urlencoded
-        ).then((res) => {
-          if (res.data.code === 200 && res.data.msg == ' Canceled!') {
-            this.dialogVisible = false
-            this.$message({
-              duration: 5000,
-              message: 'Canceled Successfully',
-              type: 'success'
-            })
-            this.pagingQuery()
-          } else {
-            this.$message({
-              duration: 5000,
-              message: 'Canceled Failed',
-              type: 'error'
-            })
-          }
-        })
-      
+      if (this.downloadLoading) return
+      this.downloadLoading = true
+      setTimeout(() => {
+        this.downloadLoading = false
+      }, 2000)
+      var urlencoded = new URLSearchParams()
+      urlencoded.append('deviceId', this.deviceId)
+      post(
+        '/pdf-tech/vppDevice/cancel',
+        urlencoded
+      ).then((res) => {
+        if (res.data.code === 200 && res.data.msg == ' Canceled!') {
+          this.dialogVisible = false
+          this.$message({
+            duration: 5000,
+            message: 'Canceled Successfully',
+            type: 'success'
+          })
+          this.pagingQuery()
+        } else {
+          this.$message({
+            duration: 5000,
+            message: 'Canceled Failed',
+            type: 'error'
+          })
+        }
+      })
+
     },
     //打开对话框
     handleClick(val) {
       // if (this.deviceStatus === 'Activated'){
-        this.dialogVisible = true
-        this.cancelEmail = val.email
-        this.cancelUniqueSn = val.uniqueSn
-        this.deviceId = val.id
-        this.deviceStatus = val.status
+      this.dialogVisible = true
+      this.cancelEmail = val.email
+      this.cancelUniqueSn = val.uniqueSn
+      this.deviceId = val.id
+      this.deviceStatus = val.status
       // }
     },
     handleSizeChange(value) {
@@ -156,7 +161,7 @@ export default {
       this.pagingQuery()
     },
     // 下载设备文件
-    downLoad(){
+    downLoad() {
       if (this.downloadLoading) return
       this.downloadLoading = true
       var urlencoded = new URLSearchParams()
@@ -164,12 +169,12 @@ export default {
       urlencoded.append("productId", this.productId)
       urlencoded.append("teamId", this.teamId)
       urlencoded.append("status", this.status)
-      downLoad("/pdf-tech/vppDevice/download", urlencoded).then((res)=>{
+      downLoad("/pdf-tech/vppDevice/download", urlencoded).then((res) => {
         setTimeout(() => {
           this.downloadLoading = false
         }, 2000)
         let url = window.URL.createObjectURL(new Blob([res.data], { type: '.xlsx' }))
-        let a= document.createElement('a')
+        let a = document.createElement('a')
         a.style.display = 'none'
         a.href = url
         // 自定义文件名
@@ -179,8 +184,8 @@ export default {
         a.click()
         // 释放内存
         url = window.URL.revokeObjectURL(url)
-        document.body.removeChild(a) 
-  })
+        document.body.removeChild(a)
+      })
     }
   }
 }
@@ -190,8 +195,7 @@ export default {
   <div class="flex flex-col items-center">
     <div class="w-full">
       <h1 class="leading-40px">Device Management</h1>
-      <div
-        class="
+      <div class="
           mt-36px
           mb-16px
           leading-20px
@@ -199,17 +203,10 @@ export default {
           font-bold
           flex
           justify-between
-        "
-      >
+        ">
         <span>Content</span>
-        <el-tooltip
-          class="item"
-          effect="dark"
-          content="Export Data (.xlsx)"
-          placement="bottom"
-        >
-        <span
-          class="
+        <el-tooltip class="item" effect="dark" content="Export Data (.xlsx)" placement="bottom">
+          <span class="
             flex
             justify-center
             items-center
@@ -217,21 +214,15 @@ export default {
             min-w-28px min-h-28px
             bg-[#fff]
             cursor-pointer
-          "
-          @click="downLoad"
-          >
-          <Download/>
-        </span>
+          " @click="downLoad">
+            <Download />
+          </span>
         </el-tooltip>
       </div>
       <div class="flex bg-[#fff] pt-32px px-24px rounded-t-8px w-full">
         <select v-model="productId" class="w-140px" :class="{ '!text-[#232A40]': productId !== '' }">
           <option value="" selected>Product</option>
-          <option
-            v-for="item in productList"
-            :key="item.value"
-            :value="item.id"
-          >
+          <option v-for="item in productList" :key="item.value" :value="item.id">
             {{ item.name }}
           </option>
         </select>
@@ -243,25 +234,20 @@ export default {
           <option value="4" selected>Expired</option>
         </select>
         <select v-model="teamId" class="w-140px ml-16px" :class="{ '!text-[#232A40]': teamId !== '' }">
-          <option value="" selected >Team</option>
+          <option value="" selected>Team</option>
           <option v-for="item in teamList" :key="item.value" :value="item.id">
             {{ item.name }}
           </option>
         </select>
         <div class="relative">
-          <el-input
-            v-model="queryString"
-            size="mini"
-            class="!w-316px ml-16px input-with-select"
-            placeholder="Search User Name / Email / UUID"
-          >
+          <el-input v-model="queryString" size="mini" class="!w-316px ml-16px input-with-select"
+            placeholder="Search User Name / Email / UUID">
           </el-input>
-          <button class="absolute top-8px right-8px" @click="searchInfo()"><Search /></button>
+          <button class="absolute top-8px right-8px" @click="searchInfo()">
+            <Search />
+          </button>
         </div>
-        <button
-          type="button"
-          @click="searchInfo()"
-          class="
+        <button type="button" @click="searchInfo()" class="
             w-70px
             h-28px
             border-1px border-[#1460F3]
@@ -269,40 +255,34 @@ export default {
             ml-16px
             text-[#1460F3]
             hover:opacity-80
-          "
-        >
+          ">
           Confirm
         </button>
       </div>
       <el-table :data="tableData" class="px-24px rounded-b-8px !w-full">
         <el-table-column prop="productName" label="Product"> </el-table-column>
-        <el-table-column prop="memberName" label="User Name"  label-class-name="wordBreak"> </el-table-column>
+        <el-table-column prop="memberName" label="User Name" label-class-name="wordBreak"> </el-table-column>
         <el-table-column prop="email" label="Email">
         </el-table-column>
         <el-table-column prop="teamName" label="Team"> </el-table-column>
         <el-table-column prop="uniqueSn" label="UUID"> </el-table-column>
         <el-table-column prop="status" label="Status"> </el-table-column>
-        <el-table-column prop="activeDate" label="Activated Date"  label-class-name="wordBreak">
+        <el-table-column prop="activeDate" label="Activated Date" label-class-name="wordBreak">
         </el-table-column>
-        <el-table-column prop="expireDate" label="Expiration Data"  label-class-name="wordBreak">
+        <el-table-column prop="expireDate" label="Expiration Data" label-class-name="wordBreak">
         </el-table-column>
-        <el-table-column prop="canceledDate" label="Canceled Date"  label-class-name="wordBreak">
+        <el-table-column prop="canceledDate" label="Canceled Date" label-class-name="wordBreak">
         </el-table-column>
         <el-table-column prop="operate" label="Action" align="left" min-width="110">
           <template slot-scope="scope">
-            <button
-              v-show="scope.row.status === 'Activated'"
-              @click="handleClick(scope.row)"
-              type="text"
-              class="
+            <button v-show="scope.row.status === 'Activated'" @click="handleClick(scope.row)" type="text" class="
                 w-60px
                 h-20px
                 rounded-4px
                 border-1px border-[#1460F3]
                 text-[#1460F3]
                 leading-12px
-              "
-            >
+              ">
               Unbind
             </button>
             <el-dialog :visible.sync="dialogVisible" width="376px" top="30vh" center :show-close="false">
@@ -322,17 +302,10 @@ export default {
         </el-table-column>
         <p slot="empty">No Data Available</p>
       </el-table>
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page.sync="currentPage"
-        :page-sizes="[5, 10, 20]"
-        :page-size="size"
-        :background="true"
-        layout="prev, pager, next, sizes, jumper"
-        :total="total"
-        class="px-24px !rounded-0 rounded-b-8px mt-20px flex justify-end"
-      >
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page.sync="currentPage" :page-sizes="[5, 10, 20]" :page-size="size" :background="true"
+        layout="prev, pager, next, sizes, jumper" :total="total"
+        class="px-24px !rounded-0 rounded-b-8px mt-20px flex justify-end">
       </el-pagination>
     </div>
   </div>
@@ -340,8 +313,9 @@ export default {
 
 <style lang="scss" scoped>
 select option:checked {
-    color: #000 !important;
+  color: #000 !important;
 }
+
 .el-table__header-wrapper::v-deep .el-table__header {
   display: flex;
   width: 1100px !important;
@@ -352,7 +326,7 @@ select option:checked {
   width: 1100px !important;
 }
 
-.el-table::v-deep .el-table__cell{
+.el-table::v-deep .el-table__cell {
   padding-right: 10px !important;
   padding-left: 10px !important;
 }
@@ -360,21 +334,25 @@ select option:checked {
 .el-table::v-deep thead {
   color: #000 !important;
 }
+
 ::v-deep .input-with-select .el-input__inner {
   padding: 0 20px 0 8px;
   border-color: #d9d9d9;
   font-size: 14px;
   color: #232A40;
 }
+
 ::v-deep .input-with-select .el-input__inner::placeholder {
   font-size: 14px;
   font-weight: 400;
   color: #808185;
 }
-.el-table::v-deep .el-table__cell .wordBreak{
-  word-break: normal!important;
+
+.el-table::v-deep .el-table__cell .wordBreak {
+  word-break: normal !important;
 }
-.el-table::v-deep .cell{
+
+.el-table::v-deep .cell {
   word-break: break-word;
 }
 </style>

+ 11 - 5
src/views/LicenseManage.vue

@@ -154,12 +154,18 @@ const selectAllField = () => {
 }
 // 获取团队管理列表
 const getTeamList = (val) => {
-  get('/pdf-tech/vppTeam/getManageTeamList', {
-    teamId: '',
-    keyword: ''
-  }).then((res) => {
+  // get('/pdf-tech/vppTeam/getManageTeamList', {
+  //   teamId: '',
+  //   keyword: ''
+  // }).then((res) => {
+  //   if (res.data.code === 200) {
+  //     teamList.value = res.data.result.list
+  //   }
+  // })
+  //获取团队列表
+  get('/pdf-tech/vppTeam/listWithAdmin').then((res) => {
     if (res.data.code === 200) {
-      teamList.value = res.data.result.list
+      teamList.value = res.data.result
     }
   })
 }

+ 11 - 5
src/views/ManageAdmin.vue

@@ -82,12 +82,18 @@ const searchInfo = () => {
 }
 // 获取团队管理列表
 const getTeamList = (val) => {
-  get('/pdf-tech/vppTeam/getManageTeamList', {
-    teamId: '',
-    keyword: ''
-  }).then((res) => {
+  // get('/pdf-tech/vppTeam/getManageTeamList', {
+  //   teamId: '',
+  //   keyword: ''
+  // }).then((res) => {
+  //   if (res.data.code === 200) {
+  //     teamList.value = res.data.result.list
+  //   }
+  // })
+  //获取团队列表
+  get('/pdf-tech/vppTeam/listWithAdmin').then((res) => {
     if (res.data.code === 200) {
-      teamList.value = res.data.result.list
+      teamList.value = res.data.result
     }
   })
 }

+ 118 - 96
src/views/TeamManagement/ManageMember.vue

@@ -26,7 +26,7 @@ const product = ref('')
 const size = ref(5)
 const memberId = ref('')
 const tag = ref('invited')
-const tagSecond  = ref('all')
+const tagSecond = ref('all')
 const userList = ref([])
 const directoryEmail = ref('')
 const directoryMemberId = ref('')
@@ -86,14 +86,14 @@ const getDirectoryUser = async () => {
 // 获取删除目录用户列表
 const getDeleteDirectoryUser = async () => {
   const { data } = await get('/pdf-tech/vppRTeamMemberRole/pageForSSOMember?page=' +
-      currentPage.value +
-      '&pageSize=' +
-      size.value +
-      '&status=0' +
-      '&queryString=' +
-      queryString.value +
-      '&domain=' +
-      domain.value)
+    currentPage.value +
+    '&pageSize=' +
+    size.value +
+    '&status=0' +
+    '&queryString=' +
+    queryString.value +
+    '&domain=' +
+    domain.value)
   loading.value = false
   deleteDirectoryData.value = data.result.list
   deleteDirectoryTotal.value = data.result.total
@@ -149,12 +149,18 @@ const handleCurrentChange = (val) => {
 }
 // 获取团队管理列表
 const getTeamList = () => {
-  get('/pdf-tech/vppTeam/getManageTeamList', {
-    teamId: '',
-    keyword: ''
-  }).then((res) => {
+  // get('/pdf-tech/vppTeam/getManageTeamList', {
+  //   teamId: '',
+  //   keyword: ''
+  // }).then((res) => {
+  //   if (res.data.code === 200) {
+  //     teamList.value = res.data.result.list
+  //   }
+  // })
+  //获取团队列表
+  get('/pdf-tech/vppTeam/listWithAdmin').then((res) => {
     if (res.data.code === 200) {
-      teamList.value = res.data.result.list
+      teamList.value = res.data.result
     }
   })
 }
@@ -169,34 +175,34 @@ const getManageMemberList = () => {
   // 初始化表格
   tableData.value = []
   get('/pdf-tech/vppRTeamMemberRole/pageForMember?page=' +
-      currentPage.value +
-      '&pageSize=' +
-      size.value +
-      '&teamId=' +
-      teamId.value +
-      '&status=' +
-      status.value +
-      '&queryString=' +
-      queryString.value +
-      '&productCode=' +
-      product.value).then((res) => {
-    let data = res.data.result.list
-    data = productListNameMapping(data)
-    for (let i = 0; i < data.length; i++) {
-      if (data[i].validFlag === '0') {
-        data[i].validFlag = 'Deleted'
-      } else if (data[i].validFlag === '1') {
-        data[i].validFlag = 'Joined'
-      } else {
-        data[i].validFlag = 'Invited'
+    currentPage.value +
+    '&pageSize=' +
+    size.value +
+    '&teamId=' +
+    teamId.value +
+    '&status=' +
+    status.value +
+    '&queryString=' +
+    queryString.value +
+    '&productCode=' +
+    product.value).then((res) => {
+      let data = res.data.result.list
+      data = productListNameMapping(data)
+      for (let i = 0; i < data.length; i++) {
+        if (data[i].validFlag === '0') {
+          data[i].validFlag = 'Deleted'
+        } else if (data[i].validFlag === '1') {
+          data[i].validFlag = 'Joined'
+        } else {
+          data[i].validFlag = 'Invited'
+        }
+        data[i].productNames = res.data.result.list[i].productNames
+          ?.replace(/,/g, ',|')
+          .split('|')
       }
-      data[i].productNames = res.data.result.list[i].productNames
-        ?.replace(/,/g, ',|')
-        .split('|')
-    }
-    tableData.value = data
-    total.value = res.data.result.total
-  })
+      tableData.value = data
+      total.value = res.data.result.total
+    })
 }
 // 团队成员列表导出
 const exportManageMemberList = () => {
@@ -447,8 +453,7 @@ const handleDownload = () => {
   <div>
     <h1 class="mb-16px">Manage Member</h1>
     <div class="flex">
-      <span
-        class="flex justify-center bg-[#C6C9CC] rounded-t-8px items-center font-bold w-200px h-32px cursor-pointer"
+      <span class="flex justify-center bg-[#C6C9CC] rounded-t-8px items-center font-bold w-200px h-32px cursor-pointer"
         @click="changeTag('directory')" :class="tag === 'directory' && 'active'">Directory Users</span>
       <span
         class="flex justify-center bg-[#C6C9CC] rounded-t-8px items-center font-bold w-200px h-32px cursor-pointer ml-8px"
@@ -461,10 +466,13 @@ const handleDownload = () => {
           <a class="w-28px h-28px border-1 border-[#D9D9D9] rounded-4px bg-[#F9FAFB] flex justify-center items-center mr-12px cursor-pointer relative"
             @click="exportManageMemberList">
             <img src="@/assets/images/download.svg" alt="download" />
-            <div class="hidden absolute w-110px bg-[#373A47] rounded-4px px-8px py-2px text-14px leading-20px text-white top-33px z-3 left-[-40px]">Download data</div>
+            <div
+              class="hidden absolute w-110px bg-[#373A47] rounded-4px px-8px py-2px text-14px leading-20px text-white top-33px z-3 left-[-40px]">
+              Download data</div>
           </a>
           <router-link :to="{ name: 'AddManageMember' }">
-            <div class="h-28px px-10px py-4px bg-[#1460F3] rounded-4px text-14px leading-20px font-400 text-[#fff] cursor-pointer hover:opacity-80">
+            <div
+              class="h-28px px-10px py-4px bg-[#1460F3] rounded-4px text-14px leading-20px font-400 text-[#fff] cursor-pointer hover:opacity-80">
               Add Member
             </div>
           </router-link>
@@ -478,19 +486,22 @@ const handleDownload = () => {
               {{ item.name }}
             </option>
           </select>
-          <select name="status" class="min-w-100px mr-16px" v-model="status" :class="{ '!text-[#232A40]': status !== '' }">
+          <select name="status" class="min-w-100px mr-16px" v-model="status"
+            :class="{ '!text-[#232A40]': status !== '' }">
             <option value="" selected>Status</option>
             <option value="1">Joined</option>
             <option value="0">Deleted</option>
           </select>
-          <select name="Assigned Product" class="min-w-100px mr-16px" v-model="product" :class="{ '!text-[#232A40]': product !== '' }">
+          <select name="Assigned Product" class="min-w-100px mr-16px" v-model="product"
+            :class="{ '!text-[#232A40]': product !== '' }">
             <option value="" selected>Assigned Product</option>
             <option v-for="item in productList" :key="item.value" :value="item.code">
               {{ item.name }}
             </option>
           </select>
           <div class="relative mr-16px">
-            <el-input v-model="queryString" size="mini" clearable class="!w-316px input-with-select" placeholder="Search Member Name/Email">
+            <el-input v-model="queryString" size="mini" clearable class="!w-316px input-with-select"
+              placeholder="Search Member Name/Email">
             </el-input>
             <button class="absolute top-8px right-8px" @click="searchInfo()">
               <Search />
@@ -513,19 +524,22 @@ const handleDownload = () => {
           <el-table-column label="Assigned Product" min-width="150px">
             <template slot-scope="scope">
               <span v-for="(item, index) in scope.row.productNames" :key="index">
-                {{ item }}<br/>
+                {{ item }}<br />
               </span>
             </template>
           </el-table-column>
           <el-table-column label="Action" min-width="100px">
             <template slot-scope="scope">
               <div>
-                <router-link :to="{ name: 'EditManageMember', query: { MemberName: scope.row.fullName, Email: scope.row.email, Team: scope.row.teamName, Id: scope.row.id } }">
-                  <div class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer mb-8px">
+                <router-link
+                  :to="{ name: 'EditManageMember', query: { MemberName: scope.row.fullName, Email: scope.row.email, Team: scope.row.teamName, Id: scope.row.id } }">
+                  <div
+                    class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer mb-8px">
                     Edit
                   </div>
                 </router-link>
-                <div class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
+                <div
+                  class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
                   @click="handleClick(scope.row)">
                   Delete
                 </div>
@@ -542,26 +556,33 @@ const handleDownload = () => {
     <div v-show="tag === 'directory'" class="block directory p-40px">
       <h2 class="!text-28px !leading-40px mb-12px">Content</h2>
       <div class="border-b-2px border-[#F1F1F2] text-[#404653] flex mb-12px">
-        <div class="py-12px tet-14px leading-20px mb-[-2px] cursor-pointer mr-20px" :class="tagSecond === 'all' && 'border-b-2px border-[#1460F3] text-[#065CBC]'" @click="changeSecondTag('all')">All Users</div>
-        <div class="py-12px tet-14px leading-20px mb-[-2px] cursor-pointer" :class="tagSecond === 'delete' && 'border-b-2px border-[#1460F3] text-[#065CBC]'" @click="changeSecondTag('delete')">Removed Users</div>
+        <div class="py-12px tet-14px leading-20px mb-[-2px] cursor-pointer mr-20px"
+          :class="tagSecond === 'all' && 'border-b-2px border-[#1460F3] text-[#065CBC]'" @click="changeSecondTag('all')">
+          All Users</div>
+        <div class="py-12px tet-14px leading-20px mb-[-2px] cursor-pointer"
+          :class="tagSecond === 'delete' && 'border-b-2px border-[#1460F3] text-[#065CBC]'"
+          @click="changeSecondTag('delete')">Removed Users</div>
       </div>
       <!-- 筛选模块 -->
       <div class="flex justify-between mb-12px pt-24px">
         <div class="flex">
           <div class="relative mr-16px">
-            <el-input v-model="queryString" size="mini" clearable class="!w-316px input-with-select" placeholder="Search user name or email">
+            <el-input v-model="queryString" size="mini" clearable class="!w-316px input-with-select"
+              placeholder="Search user name or email">
             </el-input>
             <button class="absolute top-8px right-8px" @click="searchInfo()">
               <Search />
             </button>
           </div>
-          <select name="Status" v-show="tagSecond === 'all'" class="min-w-50px mr-16px" v-model="directoryStatus" :class="{ '!text-[#232A40]': directoryStatus !== '' }">
+          <select name="Status" v-show="tagSecond === 'all'" class="min-w-50px mr-16px" v-model="directoryStatus"
+            :class="{ '!text-[#232A40]': directoryStatus !== '' }">
             <option value="" selected>Status</option>
             <option value="">All</option>
             <option value="1">Available access</option>
             <option value="3">Revoked</option>
           </select>
-          <select name="Domains" v-show="tagSecond === 'all'" class="min-w-100px mr-16px" v-model="domain" :class="{ '!text-[#232A40]': domain !== '' }">
+          <select name="Domains" v-show="tagSecond === 'all'" class="min-w-100px mr-16px" v-model="domain"
+            :class="{ '!text-[#232A40]': domain !== '' }">
             <option value="" selected>Domains</option>
             <option v-for="(item, index) in domainList" :key="index" :value="item.domain">{{ item.domain }}</option>
           </select>
@@ -574,7 +595,9 @@ const handleDownload = () => {
           <a class="w-28px h-28px border-1 border-[#D9D9D9] rounded-4px bg-[#F9FAFB] flex justify-center items-center mx-12px cursor-pointer relative"
             @click="handleDownload">
             <img src="@/assets/images/download.svg" alt="download" />
-            <div class="hidden absolute bg-[#373A47] rounded-4px px-8px py-2px text-14px leading-20px text-white top-33px z-3 left-[-16px]">Export</div>
+            <div
+              class="hidden absolute bg-[#373A47] rounded-4px px-8px py-2px text-14px leading-20px text-white top-33px z-3 left-[-16px]">
+              Export</div>
           </a>
           <button v-show="tagSecond === 'all'" :disabled="!userList.length" @click="handleClickSecond"
             class="h-28px px-10px py-4px bg-[#1460F3] rounded-4px text-14px leading-20px font-400 text-[#fff] cursor-pointer hover:opacity-80"
@@ -585,21 +608,17 @@ const handleDownload = () => {
         </div>
       </div>
       <!-- 所有用户 -->
-      <el-table
-        v-show="tagSecond === 'all'"
-        ref="multipleTable"
-        v-loading="loading"
-        :data="directoryData"
-        tooltip-effect="dark"
-        @selection-change="handleSelectionChange"
-      >
+      <el-table v-show="tagSecond === 'all'" ref="multipleTable" v-loading="loading" :data="directoryData"
+        tooltip-effect="dark" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="fullName" label="User Name" min-width="100px"></el-table-column>
         <el-table-column prop="email" label="Email" min-width="100px"></el-table-column>
         <el-table-column label="Status" min-width="100px">
           <template slot-scope="scope">
-            <div class="text-14px leading-20px flex items-center" :class="Number(scope.row.validFlag) === 1 ? 'text-[#41CC00]' : 'text-[#808185]'">
-              <span class="flex w-6px h-6px rounded-[50%] mr-8px" :class="Number(scope.row.validFlag) === 1 ? 'bg-[#41CC00]' : 'bg-[#808185]'"></span>
+            <div class="text-14px leading-20px flex items-center"
+              :class="Number(scope.row.validFlag) === 1 ? 'text-[#41CC00]' : 'text-[#808185]'">
+              <span class="flex w-6px h-6px rounded-[50%] mr-8px"
+                :class="Number(scope.row.validFlag) === 1 ? 'bg-[#41CC00]' : 'bg-[#808185]'"></span>
               <template v-if="Number(scope.row.validFlag) === 1">
                 Available access
               </template>
@@ -619,11 +638,13 @@ const handleDownload = () => {
             <div class="flex">
               <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
                 @click="directoryEmail = scope.row.email, directoryMemberId = scope.row.id">
-                <span @click="unRevoke" v-if="Number(scope.row.validFlag) === 3" class="hover:text-[#0C3A92]">Access</span>
+                <span @click="unRevoke" v-if="Number(scope.row.validFlag) === 3"
+                  class="hover:text-[#0C3A92]">Access</span>
                 <span @click="revokeDialogVisible = true" v-else class="hover:text-[#0C3A92]">Revoke</span>
               </div>
               <span class="text-[#D9D9D9]">丨</span>
-              <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
+              <div
+                class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
                 @click="openDeleteDialog(), directoryEmail = scope.row.email, directoryMemberId = scope.row.id, handleMultiple = false">
                 Remove
               </div>
@@ -637,13 +658,17 @@ const handleDownload = () => {
       </el-table>
       <!-- 吊销对话框 -->
       <el-dialog :visible.sync="revokeDialogVisible" width="556px" top="30vh" center :show-close="false">
-        <h5 class="w-full text-24px leading-32px font-bold text-[#232A40] flex justify-between items-center"><p>Revoke</p><CloseBig class="cursor-pointer" @click.native="revokeDialogVisible = false" /></h5>
+        <h5 class="w-full text-24px leading-32px font-bold text-[#232A40] flex justify-between items-center">
+          <p>Revoke</p>
+          <CloseBig class="cursor-pointer" @click.native="revokeDialogVisible = false" />
+        </h5>
         <p class="text-left mt-12px text-14px leading-20px text-[#808185]">
           You are about to revoke user access for:
-          <ul class="py-12px">
-            <li class="flex items-center pl-12px"><span class="flex w-4px h-4px rounded-[50%] bg-[#808185] mr-8px"></span>{{ directoryEmail }}</li>
-          </ul>
-          This user won't be able to use your site. You can give them access again at any time.
+        <ul class="py-12px">
+          <li class="flex items-center pl-12px"><span class="flex w-4px h-4px rounded-[50%] bg-[#808185] mr-8px"></span>{{
+            directoryEmail }}</li>
+        </ul>
+        This user won't be able to use your site. You can give them access again at any time.
         </p>
         <div slot="footer" class="dialog-footer flex justify-end">
           <el-button @click="revokeDialogVisible = false" class="!font-700">Cancel</el-button>
@@ -652,9 +677,13 @@ const handleDownload = () => {
       </el-dialog>
       <!-- 删除目录用户对话框 -->
       <el-dialog :visible.sync="deleteDialogVisible" width="556px" top="30vh" center :show-close="false">
-        <h5 class="w-full text-24px leading-32px font-bold text-[#232A40] flex justify-between items-center"><p>Remove</p><CloseBig class="cursor-pointer" @click.native="deleteDialogVisible = false" /></h5>
+        <h5 class="w-full text-24px leading-32px font-bold text-[#232A40] flex justify-between items-center">
+          <p>Remove</p>
+          <CloseBig class="cursor-pointer" @click.native="deleteDialogVisible = false" />
+        </h5>
         <p class="text-left mt-12px text-14px leading-20px text-[#808185]">
-          The licenses of these users will be removed. They will no longer have access to this site and won't be able to collaborate with your team. You can restore these users in removed users list.
+          The licenses of these users will be removed. They will no longer have access to this site and won't be able to
+          collaborate with your team. You can restore these users in removed users list.
         </p>
         <div slot="footer" class="dialog-footer flex justify-end">
           <el-button @click="deleteDialogVisible = false" class="!font-700">Cancel</el-button>
@@ -662,21 +691,16 @@ const handleDownload = () => {
         </div>
       </el-dialog>
       <!-- 已删除用户 -->
-      <el-table
-        v-show="tagSecond === 'delete'"
-        ref="multipleTable"
-        v-loading="loading"
-        :data="deleteDirectoryData"
-        tooltip-effect="dark"
-        @selection-change="handleSelectionChange"
-      >
+      <el-table v-show="tagSecond === 'delete'" ref="multipleTable" v-loading="loading" :data="deleteDirectoryData"
+        tooltip-effect="dark" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"> </el-table-column>
         <el-table-column prop="fullName" label="User Name" min-width="100px"></el-table-column>
         <el-table-column prop="email" label="Email" min-width="275px"></el-table-column>
         <el-table-column prop="action" label="Actions" min-width="100px">
           <template slot-scope="scope">
             <div class="flex">
-              <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
+              <div
+                class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
                 @click="restore(scope.row), handleMultiple = false">
                 Restore
               </div>
@@ -701,17 +725,10 @@ const handleDownload = () => {
         <el-button type="primary" @click="deleteMember()">Delete</el-button>
       </span>
     </el-dialog>
-    <el-pagination
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-      :current-page.sync="currentPage"
-      :page-sizes="[5, 10, 20]"
-      :page-size="1"
-      :background="true"
-      layout="prev, pager, next, sizes, jumper"
+    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage"
+      :page-sizes="[5, 10, 20]" :page-size="1" :background="true" layout="prev, pager, next, sizes, jumper"
       :total="tag === 'invited' ? total : tagSecond === 'all' ? directoryTotal : deleteDirectoryTotal"
-      class="px-24px !rounded-0 rounded-b-8px flex justify-end"
-    >
+      class="px-24px !rounded-0 rounded-b-8px flex justify-end">
     </el-pagination>
   </div>
 </template>
@@ -720,15 +737,18 @@ const handleDownload = () => {
 .block {
   border-top-left-radius: 0px;
 }
+
 .active {
   color: #1460f3;
   background-color: #fff;
 }
+
 .relative:hover {
   .hidden {
     display: block;
   }
 }
+
 .el-table::v-deep thead {
   color: #000 !important;
 }
@@ -761,9 +781,11 @@ const handleDownload = () => {
   font-weight: 400;
   color: #808185;
 }
+
 .el-table::v-deep .cell {
   word-break: break-word;
 }
+
 .dialog-footer {
   ::v-deep .el-button {
     height: 40px;