Browse Source

系统管理toolit 目录新建 密码强制修改密码

liuQiang 2 năm trước cách đây
mục cha
commit
a1e71a1a93

+ 2 - 1
src/permission.js

@@ -25,7 +25,8 @@ router.beforeEach((to, from, next) => {
       if (useUserStore().roles.length === 0) {
         isRelogin.show = true
         // 判断当前用户是否已拉取完user_info信息
-        useUserStore().getInfo().then(() => {
+        useUserStore().getInfo().then((res) => {
+          // console.log('perres',res);
           isRelogin.show = false
           usePermissionStore().generateRoutes().then(accessRoutes => {
             // 根据roles权限生成可访问的路由表

+ 1 - 0
src/store/modules/user.js

@@ -44,6 +44,7 @@ const useUserStore = defineStore(
 			getInfo() {
 				return new Promise((resolve, reject) => {
 					getInfo().then(res => {
+						// console.log('storeres',res);
 						const user = res.user
 						const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar/* @vite-ignore */;
 						if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组

+ 15 - 2
src/views/department/MyFile.vue

@@ -79,7 +79,7 @@
                                 </span>
                             </div>
                         </div>
-                        <div
+                        <div v-if="thisFolder.dirType"
                             style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
@@ -92,6 +92,19 @@
                                 <span style="font-size: 14px;">新建</span>
                             </div>
                         </div>
+                        <div v-else
+                            style="display: flex;opacity:0.5;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
+                            <div style="margin-left: 5px;">
+                                <el-icon
+                                    style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
+                                    @click="createNewMenu(0)">
+                                    <Plus />
+                                </el-icon>
+                            </div>
+                            <div style="margin-left: 5px;" @click="createNewMenu(0)">
+                                <span style="font-size: 14px;">新建</span>
+                            </div>
+                        </div>
                         <template v-for="(item, index) in useMenu" :key="index">
                             <div :class="{ 'isCheck': haveCheck }"
                                 style="display: flex;width: 82px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;cursor: pointer;"
@@ -161,7 +174,7 @@
                                 <el-table-column prop="createTime" label="时间" width="180" />
                                 <el-table-column prop="dirType" label="类型">
                                     <template #default="scope">
-                                        <span>{{ scope.row.dirType === "1" ? "文件夹" : "未知类型" }}</span>
+                                        <span>文件夹</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="大小">

+ 4 - 4
src/views/department/modalComponebts/CreateFloder.vue

@@ -6,7 +6,7 @@
                     <el-form-item label="目录名称">
                         <el-input v-model="boserForm.dirName" />
                     </el-form-item>
-                    <el-form-item label="目录分类" v-if="thisType.dirType != '2'">
+                    <el-form-item label="目录分类" v-if="free || (!free && thisType.dirType != '2' )">
                         <el-radio-group v-model="boserForm.dirType">
                             <el-radio :label="1">公开目录</el-radio>
                             <el-radio :label="2">组织目录</el-radio>
@@ -110,9 +110,9 @@ export default {
         let drId = props.impDirId
         let newspid = props.newSpaceId
         let newdrid = props.newDirId
-        const FolderRole = props.thisFolderRole
-        const thisRole = props.thisRole
-        const thisType = props.thisType
+        const FolderRole =free?'': props.thisFolderRole
+        const thisRole = free?'': props.thisRole
+        const thisType = free?'': props.thisType
         const users = ref()
         const openTrans = ref(true)
         console.log("FolderRole",FolderRole);

+ 154 - 30
src/views/login.vue

@@ -101,26 +101,64 @@
           >
           </el-input>
         </el-form-item>
-        <el-checkbox v-model="loginForm.rememberMe" class="re_checkout">记住密码</el-checkbox>
-      <el-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="large"
-          type="primary"
-          class="login_btn"
-          @click.prevent="handleLogin"
+        <el-checkbox v-model="loginForm.rememberMe" class="re_checkout"
+          >记住密码</el-checkbox
         >
-          <span v-if="!loading">登 录</span>
-          <span v-else>登 录 中...</span>
-        </el-button>
-      </el-form-item>
+        <el-form-item style="width: 100%">
+          <el-button
+            :loading="loading"
+            size="large"
+            type="primary"
+            class="login_btn"
+            @click.prevent="handleLogin"
+          >
+            <span v-if="!loading">登 录</span>
+            <span v-else>登 录 中...</span>
+          </el-button>
+        </el-form-item>
       </el-form>
     </div>
+    <el-dialog
+      v-model="showEdit"
+      title="新建文件夹"
+      width="30%"
+      @close="closeRepass"
+    >
+      <div class="repassBox">
+        <div class="msgText">
+          <span>由于长时间未登录,账号信息已失效,请您修改密码重新登录</span>
+        </div>
+        <el-form
+          :model="formData"
+          label-width="120px"
+          ref="ruleFormRef"
+          :rules="rePassRules"
+        >
+          <el-form-item label="旧密码" prop="oldpss">
+            <el-input type="password" v-model="formData.oldpss" />
+          </el-form-item>
+          <el-form-item label="新密码" prop="newpass">
+            <el-input type="password" v-model="formData.newpass" />
+          </el-form-item>
+          <el-form-item label="确认密码" prop="rePass">
+            <el-input type="password" v-model="formData.rePass" />
+          </el-form-item>
+          <el-form-item>
+            <el-button @click="closeRepass"> 取消 </el-button>
+            <el-button type="primary" @click="submitForm(ruleFormRef)"
+              >确认</el-button
+            >
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script setup>
-import { getCodeImg } from "@/api/login";
+import { getCodeImg, getInfo } from "@/api/login";
+import { updateUserPwd } from "@/api/system/user";
+import { ElMessage } from "element-plus";
 import Cookies from "js-cookie";
 import { encrypt, decrypt } from "@/utils/jsencrypt";
 import useUserStore from "@/store/modules/user";
@@ -137,13 +175,44 @@ const loginForm = ref({
   code: "",
   uuid: "",
 });
+const ruleFormRef = ref();
+const formData = ref({ oldpss: "", newpass: "", rePass: "" });
 
+const repassRule = (rule, value, callback) => {
+  if (value === "") {
+    callback(new Error("请确认密码"));
+  } else if (value !== formData.value.newpass) {
+    callback(new Error("请与新密码保持一致"));
+  } else {
+    callback();
+  }
+};
+const newPassRule = (rule, value, callback) => {
+  var pPattern = new RegExp(
+    /^.*(?=.{8,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*?,.?/|!@#$%^&*()~ ]).*$/
+  );
+  if (value === "") {
+    callback(new Error("请输入密码"));
+  } else if (!pPattern.test(value)) {
+    callback(
+      new Error("密码长度最少为8位,且需包含大写字母、小写数字、字母、特殊字符")
+    );
+  } else {
+    callback();
+  }
+};
 const loginRules = {
   username: [{ required: true, trigger: "blur", message: "请输入您的账号" }],
   password: [{ required: true, trigger: "blur", message: "请输入您的密码" }],
   code: [{ required: true, trigger: "change", message: "请输入验证码" }],
 };
 
+const rePassRules = {
+  oldpss: [{ required: true, trigger: "blur", message: "请输入旧密码" }],
+  newpass: [{ required: true, validator: newPassRule, trigger: "blur" }],
+  rePass: [{ required: true, validator: repassRule, trigger: "blur" }],
+};
+
 const codeUrl = ref("");
 const loading = ref(false);
 // 验证码开关
@@ -152,6 +221,9 @@ const captchaEnabled = ref(false);
 const register = ref(false);
 const redirect = ref(undefined);
 
+//显示强制修改密码
+const showEdit = ref(false);
+
 watch(
   route,
   (newRoute) => {
@@ -160,14 +232,15 @@ watch(
   { immediate: true }
 );
 
-function handleLogin() {
+async function handleLogin() {
   proxy.$refs.loginRef.validate((valid) => {
     if (valid) {
+      // console.log('loginvalid',valid);
       loading.value = true;
       // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
-        Cookies.set("pass", encrypt(loginForm.value.password), {
-          expires: 30,
-        });
+      Cookies.set("pass", encrypt(loginForm.value.password), {
+        expires: 30,
+      });
       if (loginForm.value.rememberMe) {
         Cookies.set("username", loginForm.value.username, { expires: 30 });
         Cookies.set("password", encrypt(loginForm.value.password), {
@@ -183,8 +256,17 @@ function handleLogin() {
       // 调用action的登录方法
       userStore
         .login(loginForm.value)
-        .then(() => {
-          router.push({ path: redirect.value || "/" });
+        .then(async (res) => {
+          const infoRes = await getInfo();
+          console.log("infoRes", infoRes);
+          // console.log('loginres',res);
+          if (infoRes.repass) {
+            showEdit.value = true;
+            loading.value = false;
+            // userStore.logOut();
+          } else {
+            router.push({ path: redirect.value || "/" });
+          }
         })
         .catch(() => {
           loading.value = false;
@@ -219,6 +301,34 @@ function getCookie() {
     rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
   };
 }
+const closeRepass = () => {
+  userStore.logOut();
+  showEdit.value = false;
+};
+
+const submitForm = async (formEl) => {
+  const passwordCookies = Cookies.get("pass");
+  const oldPass = decrypt(passwordCookies);
+  if (formData.value.oldpss != oldPass) {
+    userStore.logOut();
+    return ElMessage({ message: "旧密码输入错误", type: "error" });
+  }
+  if (!formEl) return;
+  console.log("formEl", formEl);
+  await formEl.validate((valid) => {
+    if (valid) {
+      updateUserPwd(formData.value.oldpss, formData.value.newpass).then((response) => {
+        console.log('response',response);
+        ElMessage({ message: "修改成功,请重新登录", type: "success" });
+        showEdit.value = false;
+      });
+    } else {
+      ElMessage({ message: "请输入符合规则的密码", type: "error" });
+      userStore.logOut();
+      return false;
+    }
+  });
+};
 
 getCode();
 getCookie();
@@ -238,7 +348,7 @@ getCookie();
   background-image: url("../assets/images/bigLogin.png");
   // background-image: url("../assets/images/Rectangle 229.png");
   background-repeat: no-repeat;
-  background-size:100% 100%;
+  background-size: 100% 100%;
 }
 .login_box {
   .center_box {
@@ -265,32 +375,46 @@ getCookie();
       font-weight: bold;
       font-family: Inter-SemiBold;
     }
-    .re_checkout{
+    .re_checkout {
       color: #505870;
       font-size: 14px;
-      margin:0px 0px 16px 0px;
+      margin: 0px 0px 16px 0px;
     }
-    .login_btn{
+    .login_btn {
       width: 186px;
       height: 40px;
-      background-color: #2E6BC8;
+      background-color: #2e6bc8;
       border-radius: 4px;
     }
   }
 }
+.repassBox {
+  width: 100%;
+  // border: 1px solid #000;
+}
+.msgText {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  color: #dd2025;
+  font-size: 13px;
+  font-weight: 400;
+  line-height: 22px;
+  margin-bottom: 16px;
+}
 // 输入框样式
 ::v-deep .el-input__wrapper {
   background-color: #f5f6f7 !important;
   border-radius: 4px;
   box-shadow: inset 0px 2px 4px 0px rgba(188, 188, 188, 0.2);
 }
-::v-deep .el-checkbox__inner{
-  border-color: #2E6BC8;
+::v-deep .el-checkbox__inner {
+  border-color: #2e6bc8;
 }
-::v-deep .is-checked .el-checkbox__inner{
-background-color: #2E6BC8;
+::v-deep .is-checked .el-checkbox__inner {
+  background-color: #2e6bc8;
 }
-::v-deep .is-checked .el-checkbox__label{
-color: #505870;
+::v-deep .is-checked .el-checkbox__label {
+  color: #505870;
 }
 </style>

+ 125 - 121
src/views/myfile/MyFile.vue

@@ -70,8 +70,6 @@
                     </div>
 
                 </div> -->
-                <!-- 展示文件夹盒子 -->
-                <!-- 文件夹 -->
                 <div v-if="editOnline">
                     <!-- 众多功能 -->
                     <div class="manyUse">
@@ -136,134 +134,137 @@
                 <!-- </div> -->
                 <!-- 展示文件夹盒子 -->
                 <!-- 文件夹 -->
-                <div class="detailBox file-jia" @click="mouseClick">
-                    <el-collapse v-model="folder">
-                        <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
-                            <el-table v-if="folderGrid" height="100%" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
-                                @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
-                                @row-contextmenu="folderRClick" ref="taskTableRef">
-                                <el-table-column type="selection" width="55" />
-                                <el-table-column label="名称" width="180">
-                                    <template #default="scope">
-                                        <span>
-                                            <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,true)">
-                                                <Star />
-                                            </el-icon>
-                                            <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="">
-                                            <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
-                                                alt="">
-                                                 <el-tooltip
-                                                    class="box-item"
-                                                    effect="dark"
-                                                    :content="scope.row.dirName"
-                                                    placement="top"
-                                                    :show-after="1000"
-                                                >
-                                                   {{ scope.row.dirName }}
-                                                </el-tooltip>
-                                        </span>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="createTime" label="时间" width="180" />
-                                <el-table-column prop="dirType" label="类型">
-                                    <template #default="scope">
-                                        <span>{{ scope.row.dirType === "1" ? "文件夹" : "未知类型" }}</span>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column label="大小">
-                                    <template #default="scope">
-                                        <span>
-                                            10KB
-                                        </span>
-                                    </template>
-                                </el-table-column>
-
-                                </el-table>
-                                <PlaceGridFolder v-else :folderClick="folderClick" :restName="restName"
-                                    :collectFolder="collectFolder" :getAllTop="getAllTop" @folderBack="folderBack">
-                                </PlaceGridFolder>
-                            </el-collapse-item>
-                        </el-collapse>
-                        <!-- 右键唤出的菜单 -->
-                        <div class="right_menu" v-if="folderVisible"
-                            :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
-                            <!-- <div class="menu_item" @click="folderClick(null, null)">
-                                <img src="@/assets/images/trash.png" alt="" />
-                                <span>打开</span>
-                            </div> -->
-                            <div class="menu_item" @click="restName(null, null)">
-                                <img src="@/assets/images/textbox.png" alt="" />
-                                <span>重命名</span>
-                            </div>
-                            <div class="menu_item" @click="collectFolder">
-                                <img src="@/assets/images/collect.png" alt="" />
-                                <span>收藏</span>
-                            </div>
-                        </div>
-                    </div>
-                    <!-- 文件 -->
-                    <div class="fileTable">
-                        <el-collapse v-model="files" >
-                            <el-collapse-item title="文件" name="2" class="">
-                                <el-table v-if="fileGrid" :data="fileList" height="100%" :scrollbar-always-on="true" style="width: 100%;position: relative;"
-                                    @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
-                                    @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
+                <div class="showBox">
+                    <div class="detailBox file-jia" @click="mouseClick">
+                        <el-collapse v-model="folder" style="height: 100%;">
+                            <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
+                                <el-table v-if="folderGrid" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
+                                    @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
+                                    @row-contextmenu="folderRClick" ref="taskTableRef">
                                     <el-table-column type="selection" width="55" />
-                                    <el-table-column label="名称" width="200">
+                                    <el-table-column label="名称" width="180">
                                         <template #default="scope">
-                                            <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
-                                            <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,false)">
-                                                <Star />
-                                            </el-icon>
-                                            <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="">
-                                            <img :src="getImage(scope.row.fileType)" alt="">
-                                                  <el-tooltip
-                                                    class="box-item"
-                                                    effect="dark"
-                                                    :content="scope.row.fileName"
-                                                    placement="top"
-                                                    :show-after="1000"
-                                                >
-                                                   {{ scope.row.fileName }}
-                                                </el-tooltip>
-                                        </span>
+                                            <span>
+                                                <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,true)">
+                                                    <Star />
+                                                </el-icon>
+                                                <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="">
+                                                <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
+                                                    alt="">
+                                                    <el-tooltip
+                                                        class="box-item"
+                                                        effect="dark"
+                                                        :content="scope.row.dirName"
+                                                        placement="top"
+                                                        :show-after="1000"
+                                                    >
+                                                    {{ scope.row.dirName }}
+                                                    </el-tooltip>
+                                            </span>
+                                        </template>
+                                    </el-table-column>
+                                    <el-table-column prop="createTime" label="时间" width="180" />
+                                    <el-table-column prop="dirType" label="类型">
+                                        <template #default="scope">
+                                            <span>文件夹</span>
                                         </template>
                                     </el-table-column>
-                                    <el-table-column prop="createTime" label="时间" sortable width="180" />
-                                    <el-table-column prop="fileType" label="类型" />
                                     <el-table-column label="大小">
                                         <template #default="scope">
                                             <span>
-                                                {{ formatFileSize(scope.row.fileSize) }}
+                                                10KB
                                             </span>
                                         </template>
                                     </el-table-column>
-                                </el-table>
-                                <PalaceGridFile v-else @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
-                                    @lastBB="lastBB" @onlineCase="onlineCase" @shareBack="shareBack"></PalaceGridFile>
-                            </el-collapse-item>
-                        </el-collapse>
-                        <div class="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 260 + 'px' }">
-                            <template v-for="(item, index) in filterMouseCli()" :key="index">
-                                <p @click="chooseSet(item, index, 1)" class="chooseSet">
-                                    <img :src="item.img" alt="">
-                                    {{ item.name }}
-                                    <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
-                                        style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
-                                </p>
-                            </template>
+
+                                    </el-table>
+                                    <PlaceGridFolder v-else :folderClick="folderClick" :restName="restName"
+                                        :collectFolder="collectFolder" :getAllTop="getAllTop" @folderBack="folderBack">
+                                    </PlaceGridFolder>
+                                </el-collapse-item>
+                            </el-collapse>
+                            <!-- 右键唤出的菜单 -->
+                            <div class="right_menu" v-if="folderVisible"
+                                :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
+                                <!-- <div class="menu_item" @click="folderClick(null, null)">
+                                    <img src="@/assets/images/trash.png" alt="" />
+                                    <span>打开</span>
+                                </div> -->
+                                <div class="menu_item" @click="restName(null, null)">
+                                    <img src="@/assets/images/textbox.png" alt="" />
+                                    <span>重命名</span>
+                                </div>
+                                <div class="menu_item" @click="collectFolder">
+                                    <img src="@/assets/images/collect.png" alt="" />
+                                    <span>收藏</span>
+                                </div>
+                            </div>
                         </div>
-                        <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
-                            <p @click="chooseSet1(0)" class="chooseSet">
-                                <img src="../../assets/images/user.png" alt="">
-                                选择人员
-                            </p>
-                            <p class="chooseSet" @click="goLock">
-                                <img src="../../assets/images/archiveTray.png" alt="">
-                                归档
-                            </p>
+                        <!-- 文件 -->
+                        <div class="fileTable">
+                            <el-collapse v-model="files" style="height: 100%;" >
+                                <el-collapse-item title="文件" name="2" class="">
+                                    <el-table v-if="fileGrid" :data="fileList" :scrollbar-always-on="true" style="width: 100%;position: relative;"
+                                        @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
+                                        @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
+                                        <el-table-column type="selection" width="55" />
+                                        <el-table-column label="名称" width="200">
+                                            <template #default="scope">
+                                                <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
+                                                <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,false)">
+                                                    <Star />
+                                                </el-icon>
+                                                <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="">
+                                                <img :src="getImage(scope.row.fileType)" alt="">
+                                                    <el-tooltip
+                                                        class="box-item"
+                                                        effect="dark"
+                                                        :content="scope.row.fileName"
+                                                        placement="top"
+                                                        :show-after="1000"
+                                                    >
+                                                    {{ scope.row.fileName }}
+                                                    </el-tooltip>
+                                            </span>
+                                            </template>
+                                        </el-table-column>
+                                        <el-table-column prop="createTime" label="时间" sortable width="180" />
+                                        <el-table-column prop="fileType" label="类型" />
+                                        <el-table-column label="大小">
+                                            <template #default="scope">
+                                                <span>
+                                                    {{ formatFileSize(scope.row.fileSize) }}
+                                                </span>
+                                            </template>
+                                        </el-table-column>
+                                    </el-table>
+                                    <PalaceGridFile v-else @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
+                                        @lastBB="lastBB" @onlineCase="onlineCase" @shareBack="shareBack"></PalaceGridFile>
+                                </el-collapse-item>
+                            </el-collapse>
+                            <div class="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 260 + 'px' }">
+                                <template v-for="(item, index) in filterMouseCli()" :key="index">
+                                    <p @click="chooseSet(item, index, 1)" class="chooseSet">
+                                        <img :src="item.img" alt="">
+                                        {{ item.name }}
+                                        <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
+                                            style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
+                                    </p>
+                                </template>
+                            </div>
+                            <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
+                                <p @click="chooseSet1(0)" class="chooseSet">
+                                    <img src="../../assets/images/user.png" alt="">
+                                    选择人员
+                                </p>
+                                <p class="chooseSet" @click="goLock">
+                                    <img src="../../assets/images/archiveTray.png" alt="">
+                                    归档
+                                </p>
+                            </div>
                         </div>
-                    </div>
+                </div>
+               
                     </div>
                 <div v-else>
                     <div>
@@ -1809,10 +1810,13 @@ p {
     height: 24px !important;
     background-color: #EBEFF6 !important;
 }
+.showBox{
+    height: 100%;
+}
 
 .detailBox {
     width: 100%;
-    height: 270px;
+    height: 50%;
 }
 
 :deep(.el-dialog__header) {
@@ -1821,7 +1825,7 @@ p {
 }
 
 .fileTable {
-    height: 100%;
+    height: 50%;
     overflow-y: hidden;
     margin-top: 55px;
 }
@@ -1953,7 +1957,7 @@ p {
 }
 
 :deep(.el-collapse-item__wrap) {
-    height: 300px;
+    // height: 100%;
 }
 
 // 隐藏全选按钮

+ 1 - 1
src/views/myfile/modalComponebts/CreateFloder.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="addBoser" title="新建文件夹" width="30%" @close="diClose">
+            <el-dialog v-model="addBoser" title="修改密码" width="30%" @close="diClose">
                 <el-form :model="boserForm" label-width="120px">
                     <el-form-item label="目录名称">
                         <el-input v-model="boserForm.dirName" />

+ 15 - 2
src/views/publicment/MyFile.vue

@@ -79,7 +79,7 @@
                                 </span>
                             </div>
                         </div>
-                        <div
+                        <div v-if="thisFolder.dirType"
                             style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
@@ -92,6 +92,19 @@
                                 <span style="font-size: 14px;">新建</span>
                             </div>
                         </div>
+                        <div v-else
+                            style="display: flex;opacity:0.5;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
+                            <div style="margin-left: 5px;">
+                                <el-icon
+                                    style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
+                                    @click="createNewMenu(0)">
+                                    <Plus />
+                                </el-icon>
+                            </div>
+                            <div style="margin-left: 5px;" @click="createNewMenu(0)">
+                                <span style="font-size: 14px;">新建</span>
+                            </div>
+                        </div>
                         <template v-for="(item, index) in useMenu" :key="index">
                             <div :class="{ 'isCheck': haveCheck }"
                                 style="display: flex;width: 82px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;cursor: pointer;"
@@ -161,7 +174,7 @@
                                 <el-table-column prop="createTime" label="时间" width="180" />
                                 <el-table-column prop="dirType" label="类型">
                                     <template #default="scope">
-                                        <span>{{ scope.row.dirType === "1" ? "文件夹" : "未知类型" }}</span>
+                                        <span>文件夹</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="大小">

+ 4 - 4
src/views/publicment/modalComponebts/CreateFloder.vue

@@ -6,7 +6,7 @@
                     <el-form-item label="目录名称">
                         <el-input v-model="boserForm.dirName" />
                     </el-form-item>
-                    <el-form-item label="目录分类" v-if="thisType.dirType != '2'">
+                    <el-form-item label="目录分类" v-if="free || (!free && thisType.dirType != '2' )">
                         <el-radio-group v-model="boserForm.dirType">
                             <el-radio :label="1">公开目录</el-radio>
                             <el-radio :label="2">组织目录</el-radio>
@@ -110,9 +110,9 @@ export default {
         let drId = props.impDirId
         let newspid = props.newSpaceId
         let newdrid = props.newDirId
-        const FolderRole = props.thisFolderRole
-        const thisRole = props.thisRole
-        const thisType = props.thisType
+        const FolderRole =free?'': props.thisFolderRole
+        const thisRole = free?'': props.thisRole
+        const thisType = free?'': props.thisType
         const users = ref()
         const openTrans = ref(true)
         // console.log("FolderRole",FolderRole);

+ 5 - 5
src/views/system/user/index.vue

@@ -90,23 +90,23 @@
 					</el-table-column>
 					<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
 						<template #default="scope">
-							<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
+							<el-tooltip content="修改" placement="top" :show-after="1000" v-if="scope.row.userId !== 1">
 								<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
 									v-hasPermi="['system:user:edit']"></el-button>
 							</el-tooltip>
-							<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
+							<el-tooltip content="删除" placement="top" :show-after="1000" v-if="scope.row.userId !== 1">
 								<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
 									v-hasPermi="['system:user:remove']"></el-button>
 							</el-tooltip>
-							<el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1">
+							<el-tooltip content="重置密码" placement="top" :show-after="1000" v-if="scope.row.userId !== 1">
 								<el-button link type="primary" icon="Key" @click="handleResetPwd(scope.row)"
 									v-hasPermi="['system:user:resetPwd']"></el-button>
 							</el-tooltip>
-							<el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
+							<el-tooltip content="分配角色" placement="top" :show-after="1000" v-if="scope.row.userId !== 1">
 								<el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)"
 									v-hasPermi="['system:user:edit']"></el-button>
 							</el-tooltip>
-							<el-tooltip content="登录限制" placement="top" v-if="scope.row.userId !== 1">
+							<el-tooltip content="登录限制" placement="top" :show-after="1000" v-if="scope.row.userId !== 1">
 								<!-- <i class="el-icon-info"></i> -->
 								<el-button link type="primary" icon="Operation" @click="handleLoginLimit(scope.row)"
 									v-hasPermi="['system:user:resetPwd']"></el-button>

+ 2 - 2
vite.config.js

@@ -39,10 +39,10 @@ export default defineConfig(({
 			proxy: {
 				// https://cn.vitejs.dev/config/#server-proxy
 				'/dev-api': {
-					target: 'http://192.168.1.28:8080/',
+					// target: 'http://192.168.1.28:8080/',
 					// target: 'http://8.142.173.95:19527/',
 					// target:'http://192.168.1.28:8080/',
-					// target:'http://192.168.1.11:8080',
+					target:'http://192.168.1.11:8080',
 					changeOrigin: true,
 					rewrite: (p) => p.replace(/^\/dev-api/, '')
 				},