lisiyan 5 месяцев назад
Родитель
Сommit
85bed2bea5

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
src/assets/images/fold.svg


Разница между файлами не показана из-за своего большого размера
+ 2 - 2
src/assets/images/unfold.svg


+ 1 - 1
src/components/icon/down.vue

@@ -1,7 +1,7 @@
 <template>
   <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
     <g clip-path="url(#clip0_2615_10010)">
-    <path fill-rule="evenodd" clip-rule="evenodd" d="M2.64645 4.14645C2.84171 3.95118 3.15829 3.95118 3.35355 4.14645L6 6.79289L8.64645 4.14645C8.84171 3.95118 9.15829 3.95118 9.35355 4.14645C9.54882 4.34171 9.54882 4.65829 9.35355 4.85355L6.35355 7.85355C6.15829 8.04882 5.84171 8.04882 5.64645 7.85355L2.64645 4.85355C2.45118 4.65829 2.45118 4.34171 2.64645 4.14645Z" fill="#1460F3"/>
+    <path fill-rule="evenodd" clip-rule="evenodd" d="M2.64645 4.14645C2.84171 3.95118 3.15829 3.95118 3.35355 4.14645L6 6.79289L8.64645 4.14645C8.84171 3.95118 9.15829 3.95118 9.35355 4.14645C9.54882 4.34171 9.54882 4.65829 9.35355 4.85355L6.35355 7.85355C6.15829 8.04882 5.84171 8.04882 5.64645 7.85355L2.64645 4.85355C2.45118 4.65829 2.45118 4.34171 2.64645 4.14645Z" fill="currentColor"/>
     </g>
     <defs>
     <clipPath id="clip0_2615_10010">

+ 1 - 1
src/components/sideMenu.vue

@@ -158,7 +158,7 @@ export default {
             <Settings />
             <span>Settings</span>
           </template>
-          <el-menu-item index="/samlsetting">Directory Settings</el-menu-item>
+          <el-menu-item index="/samlsetting" v-if="role?.indexOf('1') !== -1">Directory Settings</el-menu-item>
           <el-menu-item index="/settings">Personal Settings</el-menu-item>
         </el-submenu>
         <el-menu-item index="/support">

+ 6 - 1
src/router/index.js

@@ -269,7 +269,12 @@ router.beforeEach((to, from, next) => {
   } else if (token && to.path !== whiteList && to.path !== '/sign-up' && to.path !== '/non-admin-user' && to.path !== '/forget-password' && to.path !== '/free-trial-admin-console-signup') {
     // 判断权限
     if (userStore().user.role?.indexOf("2") !== -1 || userStore().user.role?.indexOf("1") !== -1 || userStore().user.role?.indexOf("4") !== -1) {
-      next()
+      // 目录设置非超级管理员不可进入
+      if (to.path === '/samlsetting' && userStore().user.role?.indexOf("1") === -1) {
+        next('/non-admin-user')
+      } else {
+        next()
+      }
     } else {
       next('/non-admin-user')
     }

+ 19 - 19
src/views/SamlSetting.vue

@@ -706,6 +706,7 @@ const synchronize = async () => {
   })
   if (data.code === 200) {
     setFrequency.value = false
+    syncTime.value = ''
     proxy.$message({
       duration: 5000,
       message: 'Synchronize Success',
@@ -833,7 +834,7 @@ const openSelectDialog = () => {
     <!-- 目录分签 -->
     <div v-show="active === 'directory'" class="bg-[#fff] card p-40px rounded-r-t-8px">
       <div v-show="!(addDirectory || directorySetting)">
-        <div class="text-28px leading-40px font-bold mb-4px text-[#232A40]">Single Sign-on</div>
+        <div class="text-16px leading-20px font-bold mb-4px text-[#232A40]">Single Sign-on</div>
         <div class="py-4px text-[#808185] text-14px leading-20px mb-48px">Single sign-on allows your users to log in using your organization's identity provider to access all your applications.</div>
         <div class="flex justify-between mb-16px">
           <div class="text-16px leading-20px font-bold text-[#232A40] py-4px">Directory List</div>
@@ -854,8 +855,8 @@ const openSelectDialog = () => {
                 <el-form-item label="Status details:">
                   <span v-if="props.row.sync" class="text-12px leading-16px">
                     <div v-if="!Number(props.row.sync?.status)">Synchronizing users/groups</div>
-                    <div v-else-if="Number(props.row.sync?.status) === 2">SAML user/group sync:Last synced at: {{ props.row.sync.syncTime }}</div>
-                    <div v-else>SAML user/group sync:Last synced succeeded at:  {{ props.row.sync.syncTime }}</div>
+                    <div v-else-if="Number(props.row.sync?.status) === 2">user/group sync:Last synced at: {{ props.row.sync.syncTime }}</div>
+                    <div v-else>user/group sync:Last synced succeeded at:  {{ props.row.sync.syncTime }}</div>
                   </span>
                   <span v-else class="text-12px leading-16px">The directory configuration is incomplete</span>
                 </el-form-item>
@@ -863,7 +864,7 @@ const openSelectDialog = () => {
               <!-- 解绑弹窗 -->
               <el-dialog :visible.sync="openUnbindDialog" width="556px" top="30vh" center :show-close="false">
                 <div class="text-[#232A40] text-24px leading-32px font-bold mb-12px w-full text-left flex justify-between items-center">Remove Domain <CloseBig class="cursor-pointer" @click.native="openUnbindDialog = false" /></div>
-                <div class="text-[#808185] text-14px leading-20px mb-24px w-full text-left">Are you sure you want to remove this Domain from the directory? After deletion, we will transfer the SAML users that you have synchronized to the Domain users list. They still able to access to this site and collaborate with your team.</div>
+                <div class="text-[#808185] text-14px leading-20px mb-24px w-full text-left">Are you sure you want to remove this Domain from the directory? After deletion, we will transfer the users that you have synchronized to the Domain users list. They still able to access to this site and collaborate with your team.</div>
                 <div class="flex w-full mt-24px">
                   <div class="bg-white rounded-8px text-16px leading-20px py-14px flex justify-center font-bold text-[#1460F3] w-[calc(50%-8px)] border-1 border-[#1460F3] mr-16px hover:bg-[#e8effe] cursor-pointer" @click="openUnbindDialog = false">Cancel</div>
                   <div class="bg-[#1460F3] rounded-8px text-16px leading-20px py-14px flex justify-center font-bold text-white w-[calc(50%-8px)] hover:bg-[#4380f5] cursor-pointer" @click="unbindDomain">Remove</div>
@@ -894,24 +895,24 @@ const openSelectDialog = () => {
           <el-table-column label="Actions" min-width="188px">
             <template slot-scope="scope">
               <div class="flex">
-                <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
-                  @click="hasDomain(scope.row)" :class="scope.row.domains.length && 'text-[#979898] cursor-not-allowed'">
+                <div class="h-20px rounded-4px text-center text-14px leading-20px"
+                  @click="hasDomain(scope.row)" :class="scope.row.domains.length ? 'text-[#979898] cursor-not-allowed' : 'text-[#1460F3] cursor-pointer hover:text-[#0C3A92]'">
                   Add Domain
                 </div>
                 <span class="text-[#D9D9D9]">丨</span>
-                <div v-if="Number(scope.row.sync?.status) === 1 || Number(scope.row.sync?.status) === 2" class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
+                <div v-if="Number(scope.row.sync?.status) === 1 || Number(scope.row.sync?.status) === 2" class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
                   @click="setFrequency = true, directoryId = scope.row.directoryId, daySync(scope.row.scheduleSetting)">
                   Synchronize
                 </div>
                 <div v-else-if="Number(scope.row.sync?.status) === 0" class="text-14px leading-20px text-[#1460F3] cursor-pointer">Synchronizing...</div>
-                <div v-else class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
+                <div v-else class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
                   @click="openSync(scope.row.domains.length), directoryId = scope.row.directoryId, formData.appId = scope.row.applicationId, formData.directoryId = scope.row.tenantId, formData.secret = scope.row.clientSecrets, isCreate = true">
                   Add Sync
                 </div>
                 <span class="text-[#D9D9D9]">丨</span>
                 <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer">
                   <el-dropdown>
-                    <span class="el-dropdown-link flex items-center text-[#1460F3]">More <PullDown class="ml-4px" /></span>
+                    <span class="el-dropdown-link flex items-center text-[#1460F3] hover:text-[#0C3A92]">More <PullDown class="ml-4px" /></span>
                     <el-dropdown-menu slot="dropdown">
                       <el-dropdown-item>
                         <button type="submit" :disabled="scope.row.sync?.status === '0'" @click="addDirectory = true, directoryName = scope.row.name, isUpdate = true, directoryId = scope.row.directoryId" :class="scope.row.sync?.status === '0' && 'text-[#979898] cursor-not-allowed'">Directory Settings</button>
@@ -973,7 +974,6 @@ const openSelectDialog = () => {
       <!-- 添加目录模块 -->
       <div v-show="addDirectory" class="addDirectory">
         <div @click="addDirectory = false" class="flex items-center text-[#505258] text-14px leading-20px py-2px mb-12px cursor-pointer"><Back class="mr-5px" />Back</div>
-        <div class="text-[#232A40] text-28px leading-40px mb-16px font-bold">Add a Directory</div>
         <div class="text-[#232A40] text-16px leading-20px mb-16px font-bold">Set directory name</div>
         <div class="text-[#808185] text-14px leading-20px mb-4px">Create a directory by naming it and selecting an authentication method for the directory.</div>
         <el-input v-model="directoryName" placeholder="Enter a directory name" class="text-[#808185] text-14px leading-20px" :class="directoryNameError && 'error'" @focus="directoryNameError = ''"></el-input>
@@ -987,12 +987,12 @@ const openSelectDialog = () => {
       <!-- 添加同步设置模块 -->
       <div v-show="directorySetting" v-loading="syncLoading">
         <div @click="directorySetting = false" class="flex items-center text-[#505258] text-14px leading-20px py-2px mb-12px cursor-pointer"><img src="@/assets/images/back.png" width="12" height="12" class="mr-5px" />Back</div>
-        <div class="text-[#232A40] text-28px leading-40px mb-16px font-bold">SAML User Sync Configuration</div>
+        <div class="text-[#232A40] text-16px leading-20px mb-16px font-bold">User Sync Configuration</div>
         <div class="text-[#232A40] font-bold test-16px leading-20px mt-16px mb-4px">Connector:</div>
         <div class="p-12px mb-16px">
           <div class="text-[#232A40] test-16px leading-20px mb-4px">Azure AD</div>
           <div class="text-[#808185] test-14px leading-20px mt-16px">
-            The sync source cannot be changed. If you want to change the sync source, you need to delete the directory first. All the configuration with the sync source will be deleted. The previously synced user and user groups will be kept inside the Foxit Admin Console.
+            The sync source cannot be changed. If you want to change the sync source, you need to delete the directory first. All the configuration with the sync source will be deleted. The previously synced user and user groups will be kept inside the PDFTech Editor Admin Console.
           </div>
         <div class="text-[#232A40] font-bold test-16px leading-20px mt-16px mb-4px">Connector Settings</div>
           <div class="p-12px mb-16px">
@@ -1094,8 +1094,7 @@ const openSelectDialog = () => {
     </div>
     <!-- 域名分签 -->
     <div v-show="active === 'domains'" class="p-40px bg-white">
-      <div class="text-[#232A40] text-28px leading-40px mb-36px font-bold">Domain Settings</div>
-      <div class="text-[#232A40] text-16px leading-20px font-700 mb-4px">Title</div>
+      <div class="text-[#232A40] text-16px leading-20px font-700 mb-4px">Domain Settings</div>
       <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="tag === 'dns' && 'border-b-2px border-[#1460F3] text-[#065CBC]'" @click="tag = 'dns'">DNS</div>
         <div class="py-12px tet-14px leading-20px mb-[-2px] cursor-pointer" :class="tag === 'https' && 'border-b-2px border-[#1460F3] text-[#065CBC]'" @click="tag = 'https'">HTTPS</div>
@@ -1156,7 +1155,7 @@ const openSelectDialog = () => {
                   Verify
                 </div>
                 <span v-if="!Number(scope.row.verified)" class="text-[#D9D9D9]">丨</span>
-                <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer"
+                <div class="h-20px rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer hover:text-[#0C3A92]"
                   @click="isVerify(scope.row)">
                   Remove
                 </div>
@@ -1199,12 +1198,12 @@ const openSelectDialog = () => {
     </el-dialog>
     <!-- 同步设置弹窗 -->
     <el-dialog :visible.sync="setFrequency" width="556px" top="30vh" center :show-close="false">
-      <div class="text-left text-24px leading-32px font-bold text-[#232A40] w-full flex justify-between items-center">Synchronize <CloseBig class="cursor-pointer" @click.native="setFrequency = false" /></div>
+      <div class="text-left text-24px leading-32px font-bold text-[#232A40] w-full flex justify-between items-center">Synchronize <CloseBig class="cursor-pointer" @click.native="setFrequency = false, syncTime = ''" /></div>
       <div class="text-left text-14px leading-20px text-[#808185] w-full mt-12px mb-24px">You can set the frequency of synchronization here</div>
       <div class="text-left text-16px leading-20px text-[#232A40] w-full mb-8px">synchronize</div>
       <el-cascader class="w-full h-40px" v-model="syncTime" :options="options"></el-cascader>
       <div class="flex w-full mt-40px">
-        <div class="bg-white rounded-8px text-16px leading-20px py-14px flex justify-center font-bold text-[#1460F3] w-[calc(50%-8px)] border-1 border-[#1460F3] mr-16px hover:bg-[#e8effe] cursor-pointer" @click="setFrequency = false">Cancel</div>
+        <div class="bg-white rounded-8px text-16px leading-20px py-14px flex justify-center font-bold text-[#1460F3] w-[calc(50%-8px)] border-1 border-[#1460F3] mr-16px hover:bg-[#e8effe] cursor-pointer" @click="setFrequency = false, syncTime = ''">Cancel</div>
         <button type="submit" :disabled="!syncTime"
           :class="!syncTime && '!bg-[#1460F333] cursor-not-allowed'"
           class="bg-[#1460F3] rounded-8px text-16px leading-20px py-14px flex justify-center font-bold text-white w-[calc(50%-8px)] hover:bg-[#4380f5] cursor-pointer" @click="synchronize">
@@ -1216,7 +1215,7 @@ const openSelectDialog = () => {
     <el-dialog :visible.sync="deleteDirectoryDialog" width="556px" top="30vh" center :show-close="false">
       <h5 class="text-left w-full text-24px leading-32px font-bold text-[#232A40] flex justify-between items-center">Remove Directory<CloseBig class="cursor-pointer" @click.native="deleteDirectoryDialog = false" /></h5>
       <p class="text-left mt-12px mb-24px text-14px leading-20px text-[#808185]">
-        Are you sure you want to remove this directory? After deletion, we will transfer the SAML users that you have synchronized to the Domain users list. They can still access this site and collaborate with your team.
+        Are you sure you want to remove this directory? After deletion, we will transfer the users that you have synchronized to the Domain users list. They can still access this site and collaborate with your team.
       </p>
       <div slot="footer" class="dialog-footer flex justify-end">
         <el-button @click="deleteDirectoryDialog = false" class="!font-700" >Cancel</el-button>
@@ -1273,7 +1272,8 @@ const openSelectDialog = () => {
         <div @click="getMicrosoftList(), loading = true" class="text-[#1460F3] cursor-pointer">{{ microsoftList ? 'Sync group' : 'Refresh list' }}</div>
         <div class="flex">
           <div class="bg-white rounded-8px text-16px leading-20px py-10px flex justify-center font-bold text-[#1460F3] w-152px border-1 border-[#1460F3] mr-16px hover:bg-[#e8effe] cursor-pointer" @click="microsoftDialog = false">Cancel</div>
-          <div class="bg-[#1460F3] rounded-8px text-16px leading-20px py-10px flex justify-center font-bold text-white w-152px hover:bg-[#4380f5] cursor-pointer" @click="microsoftDialog = false, getGroupNameList()">Add</div>
+          <button :disabled="!groupIds.length" :class="groupIds.length ? 'bg-[#1460F3] hover:bg-[#4380f5] cursor-pointer' : 'bg-[#1460F333] cursor-not-allowed'"
+            class="bg-[#1460F3] rounded-8px text-16px leading-20px py-10px flex justify-center font-bold text-white w-152px" @click="microsoftDialog = false, getGroupNameList()">Add</button>
         </div>
       </div>
     </el-dialog>

+ 4 - 4
src/views/TeamManagement/ManageMember.vue

@@ -619,11 +619,11 @@ 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">Access</span>
-                <span @click="revokeDialogVisible = true" v-else>Revoke</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"
+              <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>
@@ -676,7 +676,7 @@ const handleDownload = () => {
         <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"
+              <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>

+ 1 - 1
src/views/TeamManagement/ManageTeam.vue

@@ -331,7 +331,7 @@ onMounted(() => {
               <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.$index, scope.row)"
-                v-if="role?.indexOf('1') !== -1 && scope.row.type !== 3"
+                v-if="role?.indexOf('1') !== -1 && scope.row.type === 2"
               >
                 Delete
               </div>