马宇豪
2024-11-15 d8b570430066fae42d6884671cef541fc820de1c
src/views/components/loginForm.vue
@@ -46,10 +46,6 @@
              <img :src="codeUrl" @click="getCode" class="login-code-img"/>
            </div>
          </el-form-item>
    <!--      <el-radio-group v-model="loginForm.role" class="mb5">-->
    <!--        <el-radio :label="0" size="large">监管部门</el-radio>-->
    <!--        <el-radio :label="1" size="large">机构管理员</el-radio>-->
    <!--      </el-radio-group>-->
          <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 25px">
            <div class="btn-cont">
              <button class="login-btn" @click.prevent="handleLogin">
@@ -74,16 +70,17 @@
</template>
<script setup>
import {onMounted, ref, watch, defineAsyncComponent, nextTick} from "vue"
import {onMounted, ref, watch, defineAsyncComponent, nextTick, computed} from "vue"
import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt";
import useUserStore from '@/store/modules/user'
import { Register } from "@/layout/components";
import { Base64 } from 'js-base64'
import menu from "@/layout/components/Sidebar/menu";
import ExpertForm from "../safetyReview/expertManage/applyRecords/components/expertForm";
import usePermissionStore from '@/store/modules/permission'
const permissionStore = usePermissionStore()
const sidebarRouters =  computed(() => permissionStore.sidebarRouters);
const userStore = useUserStore()
const route = useRoute();
const router = useRouter();
@@ -93,8 +90,7 @@
  username: "",
  password: "",
  code: "",
  uuid: "",
  role: 0
  uuid: ""
});
const loginRules = {
@@ -113,7 +109,7 @@
const redirect = ref(undefined);
onMounted(()=>{
  Cookies.remove("userState");
})
const openRegist = ()=>{
@@ -123,10 +119,6 @@
watch(route, (newRoute) => {
    redirect.value = newRoute.query && newRoute.query.redirect;
}, { immediate: true });
const sidebarRouters = ref([])
const expertFormRef = ref()
@@ -154,7 +146,8 @@
      // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
      // if (loginForm.value.rememberMe) {
        Cookies.set("username", loginForm.value.username, { expires: 30 });
        Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 });
        Cookies.set("password", loginForm.value.password, { expires: 30 });
        // Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 });
      //   Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 });
      // } else {
        // 否则移除
@@ -166,48 +159,19 @@
      // loginForm.value.password = Base64.encode(loginForm.value.password)
        const param = {
            username: loginForm.value.username,
            password: Base64.encode(loginForm.value.password),
            password: loginForm.value.password,
            code: loginForm.value.code,
            uuid: loginForm.value.uuid,
            identity: loginForm.value.role
        }
      userStore.login(param).then(() => {
        // const query = route.query;
        // const otherQueryParams = Object.keys(query).reduce((acc, cur) => {
        //   if (cur !== "redirect") {
        //     acc[cur] = query[cur];
        //   }
        //   return acc;
        // }, {});
        const userInfo = JSON.parse(Cookies.get('userInfo'))
          if(userInfo.identity === 0 ) {
              //监管用户
              sidebarRouters.value =  menu.adminMenu
              Cookies.set('routers',JSON.stringify(sidebarRouters.value))
          }else if(userInfo.identity === 1) {
            const userState = JSON.parse(Cookies.get('userState'))
            console.log("userState",userState)
              //机构用户
              //未审核状态不显示菜单
              if(userState !==2 ){
                sidebarRouters.value = menu.noMenu
                Cookies.set('routers',JSON.stringify(sidebarRouters.value))
              }else {
                sidebarRouters.value =  menu.agencyMenu
                Cookies.set('routers',JSON.stringify(sidebarRouters.value))
              }
        const query = route.query;
        const otherQueryParams = Object.keys(query).reduce((acc, cur) => {
          if (cur !== "redirect") {
            acc[cur] = query[cur];
          }
          let path = ""
          if(sidebarRouters.value[0].children && sidebarRouters.value[0].children.length > 0){
              path = sidebarRouters.value[0].path + '/'+ sidebarRouters.value[0].children[0].path
          }else {
              path = sidebarRouters.value[0].path
          }
        router.push({
            path: path
        })
        // router.push({ path: redirect.value || "/", query: otherQueryParams });
          return acc;
        }, {});
        router.push({ path: redirect.value || "/", query: otherQueryParams });
      }).catch(() => {
        loading.value = false;
        // 重新获取验证码
@@ -221,22 +185,22 @@
function getCode() {
  getCodeImg().then(res => {
    captchaEnabled.value = res.data.captchaEnabled === undefined ? true : res.captchaEnabled
    captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
    if (captchaEnabled.value) {
      codeUrl.value = "data:image/gif;base64," + res.data.image
      loginForm.value.uuid = res.data.uuid
      codeUrl.value = "data:image/gif;base64," + res.img
      loginForm.value.uuid = res.uuid
    }
  });
}
// function getCookie() {
//   const username = Cookies.get("username")
//   const password = Cookies.get("password")
//   loginForm.value = {
//     username: username === undefined ? loginForm.value.username : username,
//     password: password === undefined ? loginForm.value.password : decrypt(password),
//   };
// }
function getCookie() {
  const username = Cookies.get("username")
  const password = Cookies.get("password")
  loginForm.value = {
    username: username === undefined ? loginForm.value.username : username,
    password: password === undefined ? loginForm.value.password : decrypt(password),
  };
}
getCode();
// getCookie();