'-'
zhangwei
2025-07-28 bb576469eb1e2cb2bf8e1717902702ca28f5ef65
'-'
18个文件已修改
1070 ■■■■■ 已修改文件
src/App.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/register/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/user.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/lay-navbar/index.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/lay-tag/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/hooks/useNav.ts 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/hooks/useTag.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/modules/error.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/modules/item.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/types.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/auth.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mine/index.vue 808 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register/registernav.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -6,7 +6,7 @@
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { defineComponent, onMounted } from "vue";
import { ElConfigProvider } from "element-plus";
import { ReDialog } from "@/components/ReDialog";
import zhCn from "element-plus/es/locale/lang/zh-cn";
@@ -24,3 +24,10 @@
  }
});
</script>
<script lang="ts" setup>
import { onMounted } from "vue";
import { useUserStoreHook } from "@/store/modules/user";
onMounted(() => {
  useUserStoreHook().getRoleList();
});
</script>
src/api/register/index.ts
@@ -65,3 +65,4 @@
    }
  );
};
src/api/user.ts
@@ -70,3 +70,11 @@
export const refreshTokenApi = (data?: object) => {
  return http.request<RefreshTokenResult>("post", "/refresh-token1", { data });
};
// 切换角色
export const getChangeLogoInExRule = params => {
  return http.request<LoginResult>(
    "post",
    baseUrlApi(`/api/auth/changeLogoInExRule/${params.ruleCode}`)
  );
};
src/layout/components/lay-navbar/index.vue
@@ -21,6 +21,8 @@
  userAvatar,
  avatarsStyle,
  userRoles,
  userRolesList,
  changRole,
  toggleSideBar
} = useNav();
</script>
@@ -60,11 +62,18 @@
        </span>
        <template #dropdown>
          <el-dropdown-menu class="logout">
            <el-dropdown-item
              v-for="item in userRolesList"
              :key="item.code"
              @click="changRole(item)"
            >
              {{ item.name }}
            </el-dropdown-item>
            <el-dropdown-item @click="logout">
              <IconifyIconOffline
              <!-- <IconifyIconOffline
                :icon="LogoutCircleRLine"
                style="margin: 5px"
              />
              /> -->
              退出系统
            </el-dropdown-item>
          </el-dropdown-menu>
src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue
@@ -111,9 +111,7 @@
        :key="item.path"
        class="inline! items-stretch!"
      >
        <a @click.prevent="handleLink(item)">
          {{ item.meta.title }}
        </a>
        <a @click.prevent="handleLink(item)"> {{ item.meta.title }} </a>
      </el-breadcrumb-item>
    </transition-group>
  </el-breadcrumb>
src/layout/components/lay-tag/index.vue
@@ -647,7 +647,7 @@
        >
          <li v-if="item.show" @click="selectTag(key, item)">
            <IconifyIconOffline :icon="item.icon" />
            {{ item.text }}
            {{ item.text }}11
          </li>
        </div>
      </ul>
src/layout/hooks/useNav.ts
@@ -2,7 +2,7 @@
import { getConfig } from "@/config";
import { emitter } from "@/utils/mitt";
import Avatar from "@/assets/user.jpg";
import { getTopMenu } from "@/router/utils";
import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils";
import { useFullscreen } from "@vueuse/core";
import type { routeMetaType } from "../types";
import { useRouter, useRoute } from "vue-router";
@@ -14,6 +14,7 @@
import { usePermissionStoreHook } from "@/store/modules/permission";
import ExitFullscreen from "~icons/ri/fullscreen-exit-fill";
import Fullscreen from "~icons/ri/fullscreen-fill";
import { unref } from "vue";
const errorInfo =
  "The current routing configuration is incorrect, please check the configuration";
@@ -53,7 +54,12 @@
  /** 角色 */
  const userRoles = computed(() => {
    return useUserStoreHook()?.exRoles[0];
    return useUserStoreHook()?.nowRole;
  });
  /** 角色 */
  const userRolesList = computed(() => {
    return useUserStoreHook()?.exRoles ?? [];
  });
  const avatarsStyle = computed(() => {
@@ -83,7 +89,29 @@
    if (Title) document.title = `${meta.title} | ${Title}`;
    else document.title = meta.title;
  }
  /** 刷新路由 */
  function onFresh() {
    const { fullPath, query } = unref(route);
    router.replace({
      path: "/redirect" + fullPath,
      query
    });
    handleAliveRoute(route as ToRouteType, "refresh");
  }
  /** 切换角色 */
  const changRole = item => {
    useUserStoreHook()
      .changeLogoInExRule({
        ruleCode: item.code
      })
      .then(res => {
        if (res.code == 200) {
          // 获取后端路由
          initRouter();
          onFresh();
        }
      });
  };
  /** 退出登录 */
  function logout() {
    useUserStoreHook().logOut();
@@ -156,8 +184,10 @@
    pureApp,
    username,
    userRoles,
    userRolesList,
    userAvatar,
    avatarsStyle,
    tooltipEffect
    tooltipEffect,
    changRole
  };
}
src/layout/hooks/useTag.ts
@@ -8,6 +8,7 @@
  getCurrentInstance
} from "vue";
import type { tagsViewsType } from "../types";
import { useUserStoreHook } from "@/store/modules/user";
import { useRoute, useRouter } from "vue-router";
import { responsiveStorageNameSpace } from "@/config";
import { useSettingStoreHook } from "@/store/modules/settings";
@@ -42,6 +43,7 @@
  // 当前右键选中的路由信息
  const currentSelect = ref({});
  const isScrolling = ref(false);
  const hasFlash = useUserStoreHook()?.nowRole.hasFlsh;
  /** 显示模式,默认灵动模式 */
  const showModel = ref(
src/router/index.ts
@@ -195,7 +195,6 @@
  } else {
    if (to.path !== "/login") {
      if (whiteList.indexOf(to.path) !== -1) {
        console.log(to.path, "====1", noLoginList.indexOf(to.path));
        next();
      } else {
        // if (noLoginList.indexOf(to.path) == -1) {
src/router/modules/error.ts
@@ -3,7 +3,7 @@
  redirect: "/error/403",
  meta: {
    icon: "ri/information-line",
    // showLink: false,
    showLink: false,
    title: "异常页面",
    rank: 9
  },
src/router/modules/item.ts
@@ -5,7 +5,7 @@
  // redirect: "/error/403",
  meta: {
    icon: "ri/information-line",
    // showLink: false,
    // showLink: hasFlash,
    title: "项目管理",
    rank: 9
  }
src/store/modules/user.ts
@@ -11,16 +11,20 @@
  type LoginResult,
  type RefreshTokenResult,
  getLogin,
  refreshTokenApi
  refreshTokenApi,
  getChangeLogoInExRule
} from "@/api/user";
import { useMultiTagsStoreHook } from "./multiTags";
import {
  type DataInfo,
  setToken,
  setRoleListInfo,
  setNowRole,
  removeToken,
  userKey,
  setEnterpriseInfo
} from "@/utils/auth";
import { exRole } from "@/api/register/index";
import { cusExtendInfo } from "@/api/mine";
export const useUserStore = defineStore("pure-user", {
@@ -42,7 +46,10 @@
    loginDay: 1,
    // 企业资料
    enterpriseInfo:
      storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}
      storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {},
    nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {},
    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [],
    isFlsh: storageLocal().getItem<DataInfo<number>>("isFlsh") ?? false
  }),
  actions: {
    /** 存储头像 */
@@ -57,9 +64,21 @@
    SET_NICKNAME(nickname: string) {
      this.nickname = nickname;
    },
    /** 存储角色 */
    /** 存储用户角色 */
    SET_ROLES(exRoles: Array<string>) {
      this.exRoles = exRoles;
    },
    /** 存储角色当前角色 */
    SET_NOW_ROLE(nowRole: object) {
      this.nowRole = nowRole;
    },
    /** 存储角色列表 */
    SET_ROLES_LIST(rolesList: Array<string>) {
      this.rolesList = rolesList;
    },
    /** 当前角色是否审核 */
    SET_IS_FLSH(isFlsh: boolean | string) {
      this.isFlsh = isFlsh;
    },
    /** 存储按钮级别权限 */
    SET_PERMS(permissions: Array<string>) {
@@ -78,11 +97,59 @@
      this.loginDay = Number(value);
    },
    /** 登入 */
    async loginByUsername(data) {
    async loginByUsername(obj) {
      return new Promise<LoginResult>((resolve, reject) => {
        getLogin(data)
        getLogin(obj)
          .then(data => {
            if (data?.code == 200) setToken(data.result);
            if (data?.code == 200) {
              setToken(data.result);
              this.getNowRole(obj.exRuleCode);
            }
            resolve(data);
          })
          .catch(error => {
            reject(error);
          });
      });
    },
    /** 获取角色列表 */
    async getRoleList() {
      return new Promise<LoginResult>((resolve, reject) => {
        exRole()
          .then(data => {
            if (data?.code == 200) {
              setRoleListInfo(data.result);
              if (this.nowRole.code) {
                this.getNowRole(this.nowRole.code);
              }
            }
            resolve(data);
          })
          .catch(error => {
            reject(error);
          });
      });
    },
    /** 获取当前角色 */
    async getNowRole(code) {
      return new Promise<LoginResult>((resolve, reject) => {
        const data = this.rolesList.find(item => {
          return item.code == code;
        });
        setNowRole(data);
        resolve(data);
      });
    },
    /** 切换角色 */
    async changeLogoInExRule(obj) {
      return new Promise<LoginResult>((resolve, reject) => {
        getChangeLogoInExRule(obj)
          .then(data => {
            if (data?.code == 200) {
              setToken(data.result);
              this.getNowRole(obj.ruleCode);
              this.getCusExtendInfo();
            }
            resolve(data);
          })
          .catch(error => {
@@ -108,16 +175,12 @@
    /** 前端登出(不调用接口) */
    logOut() {
      this.username = "";
      this.exRoles = [];
      this.permissions = [];
      removeToken();
      useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
      resetRouter();
      if (this.exRoles && this.exRoles.length == 1) {
        router.push({ name: "Login", query: this.exRoles[0] });
      } else {
        router.push({ name: "Login" });
      }
      removeToken();
      this.exRoles = [];
      router.push("/index");
    },
    /** 刷新`token` */
    async handRefreshToken(data) {
src/store/types.ts
@@ -45,4 +45,6 @@
  isRemembered?: boolean;
  loginDay?: number;
  enterpriseInfo: object;
  nowRole: object;
  rolesList: object;
};
src/utils/auth.ts
@@ -123,6 +123,24 @@
  obj.username = data.enterpriseName;
  storageLocal().setItem(userKey, obj);
}
export function setRoleListInfo(data: DataInfo<Date>) {
  useUserStoreHook().SET_ROLES_LIST(data);
  storageLocal().setItem("rolesList", data);
}
export function setNowRole(data: DataInfo<Date>) {
  const list = storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [];
  if (list.length > 0) {
    const obj = list.find(item => {
      return item.code == data.code;
    });
    data = { ...obj, ...data };
  }
  useUserStoreHook().SET_NOW_ROLE(data);
  storageLocal().setItem("nowRole", data);
}
export function removeEnterpriseInfo() {
  storageLocal().removeItem("enterpriseInfo");
}
src/views/home/index.vue
@@ -177,7 +177,7 @@
              v-else
              :underline="false"
              class="hover:cursor-pointer"
              @click="toApply"
              @click="toApply(item)"
              ><span v-if="item.name !== '评审专家'">申请</span></el-link
            ><span v-if="item.name !== '评审专家'" class="m-2">|</span>
            <el-link
@@ -426,9 +426,10 @@
  accessToken: ""
});
onMounted(() => {
  exRole().then(res => {
    state.roleList = res.result;
  });
  // exRole().then(res => {
  //   state.roleList = res.result;
  // });
  state.roleList = useUserStoreHook().rolesList;
  getUseRoles();
  state.accessToken = getToken()?.accessToken;
});
@@ -441,17 +442,17 @@
  useUserStoreHook().logOut();
};
// 申请
const toApply = () => {};
const toApply = item => {
  router.push({ name: "RegisterNav", query: { code: item.code } });
};
// 去首页
const toWelcome = item => {
  let role = state.userInfo?.exRoles.find(ele => {
    return item.code == ele.code;
  });
  console.log(role);
  if (role.hasFlsh) {
    return router.push({ name: "Welcome" });
const toWelcome = async item => {
  if (useUserStoreHook().nowRole.code !== item.code) {
    await useUserStoreHook().changeLogoInExRule({
      ruleCode: item.code
    });
  }
  router.push({ name: "RegisterNav", query: { code: role.code } });
  router.push({ name: "Mine" });
};
// 去登录
const toLogin = item => {
src/views/login/index.vue
@@ -176,19 +176,33 @@
          if (res.code == 200) {
            // 获取后端路由
            return initRouter().then(() => {
              if (!res.result.exRoles[0].hasFlsh) {
              if (res.result.exRoles.length == 0) {
                disabled.value = true;
                router
                  .replace({
                    name: "RegisterNav",
                    query: { code: res.result.exRoles[0].code }
                    query: { code: state.ruleForm.exRoleCode }
                  })
                  .then(() => {
                    message("登录成功", { type: "success" });
                  })
                  .finally(() => (disabled.value = false));
              } else {
                router.replace("welcome");
              } else if (res.result.exRoles.length > 0) {
                let data = res.result.exRoles.find(item => {
                  return item.code == state.ruleForm.exRoleCode;
                });
                console.log(data, "------------");
                if (!data) {
                  router.replace({
                    name: "RegisterNav",
                    query: { code: state.ruleForm.exRoleCode }
                  });
                } else if (data?.hasFlsh) {
                  router.replace("index");
                } else {
                  router.replace("mine");
                }
              }
              useUserStoreHook().getCusExtendInfo();
            });
src/views/mine/index.vue
@@ -22,6 +22,7 @@
const ruleFormRef = ref<FormInstance>();
const isLoading = ref(false);
const showDialog = ref(false);
const nowRole = ref({});
const state = reactive({
  userInfo: useUserStoreHook().enterpriseInfo,
  headers: {
@@ -188,25 +189,13 @@
  showDialog: false
});
onMounted(async () => {
  // let res = await useUserStoreHook().getCusExtendInfo();
  // if (res.code == 200) {
  //   state.userInfo = res.result;
  //   state.userInfo.enterpriseTypeName = res.result.enterpriseType;
  //   state.ruleForm = res.result;
  //   state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
  // } else {
  //   message(res.message, {
  //     type: "error"
  //   });
  // }
  state.ruleForm = cloneDeep(state.userInfo);
  console.log(state.userInfo);
  state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
  let nowRole = useUserStoreHook()?.exRoles;
  if (nowRole.length >= 1 && !route.query.code) {
    state.ruleForm.transactionCode = nowRole[0].code;
    state.userInfo.transactionName = nowRole[0].name;
  nowRole.value = useUserStoreHook()?.nowRole;
  console.log(nowRole.value);
  if (nowRole.value) {
    state.ruleForm.transactionCode = nowRole.value.code;
    state.userInfo.transactionName = nowRole.value.name;
  } else {
    state.ruleForm.transactionCode = route.query.code;
    state.userInfo.enterpriseTypeName = route.query.name;
@@ -348,167 +337,169 @@
</script>
<template>
  <el-descriptions class="margin-top" title="" :column="3" :size="size" border>
    <!-- <template #extra>
  <div>
    <el-descriptions class="margin-top" title="" :column="3" border>
      <!-- <template #extra>
      <el-button type="primary">Operation</el-button>
    </template> -->
    <el-descriptions-item :span="3">
      <template #label>
        <div class="cell-item">交易主体</div>
      </template>
      {{ state.userInfo.transactionName }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">企业名称</div>
      </template>
      {{ state.userInfo.enterpriseName }}
      <el-descriptions-item :span="3">
        <template #label>
          <div class="cell-item">交易主体</div>
        </template>
        {{ state.userInfo.transactionName }}
        <el-tag v-if="!nowRole.hasFlsh" type="danger">资料审核中 </el-tag>
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">企业名称</div>
        </template>
        {{ state.userInfo.enterpriseName }}
      <span @click="showImg('businessLicense')">
        <el-link type="primary" underline>查看营业执照</el-link>
      </span>
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">统一社会信用代码</div>
      </template>
      {{ state.userInfo.unifiedSocialCreditCode }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">注册资金</div>
      </template>
      {{ state.userInfo.registeredCapital }}
    </el-descriptions-item>
    <el-descriptions-item :span="2">
      <template #label>
        <div class="cell-item">企业类型</div>
      </template>
      {{ state.userInfo.enterpriseType }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">住所地</div>
      </template>
      {{ state.userInfo.residence }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">联系电话</div>
      </template>
      {{ state.userInfo.legalRepresentativePhone }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">成立时间</div>
      </template>
      {{ state.userInfo.establishmentTime }}
    </el-descriptions-item>
    <el-descriptions-item :span="2">
      <template #label>
        <div class="cell-item">电子邮箱</div>
      </template>
      {{ state.userInfo.enterpriseEmail }}
    </el-descriptions-item>
    <el-descriptions-item :span="3" label-width="100">
      <template #label>
        <div class="cell-item">主营业务</div>
      </template>
      {{ state.userInfo.mainBusiness }}
    </el-descriptions-item>
        <span @click="showImg('businessLicense')">
          <el-link type="primary" underline>查看营业执照</el-link>
        </span>
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">统一社会信用代码</div>
        </template>
        {{ state.userInfo.unifiedSocialCreditCode }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">注册资金</div>
        </template>
        {{ state.userInfo.registeredCapital }}
      </el-descriptions-item>
      <el-descriptions-item :span="2">
        <template #label>
          <div class="cell-item">企业类型</div>
        </template>
        {{ state.userInfo.enterpriseType }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">住所地</div>
        </template>
        {{ state.userInfo.residence }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">联系电话</div>
        </template>
        {{ state.userInfo.legalRepresentativePhone }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">成立时间</div>
        </template>
        {{ state.userInfo.establishmentTime }}
      </el-descriptions-item>
      <el-descriptions-item :span="2">
        <template #label>
          <div class="cell-item">电子邮箱</div>
        </template>
        {{ state.userInfo.enterpriseEmail }}
      </el-descriptions-item>
      <el-descriptions-item :span="3" label-width="100">
        <template #label>
          <div class="cell-item">主营业务</div>
        </template>
        {{ state.userInfo.mainBusiness }}
      </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">法定代表人</div>
      </template>
      {{ state.userInfo.legalRepresentativeName }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">身份证</div>
      </template>
      {{ state.userInfo.legalRepresentativeIdNumber }}
      <span @click="showImg('legalRepresentativeIdCard')">
        <el-link type="primary" underline>查看身份证</el-link>
      </span>
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">联系电话</div>
      </template>
      {{ state.userInfo.legalRepresentativePhone }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">业务经办人</div>
      </template>
      {{ state.userInfo.operatorName }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">身份证</div>
      </template>
      {{ state.userInfo.operatorIdNumber }}
      <span style="margin-right: auto" @click="showImg('operatorIdCard')">
        <el-link type="primary" underline>查看身份证</el-link>
      </span>
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">联系电话</div>
      </template>
      {{ state.userInfo.operatorPhone }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">开户银行</div>
      </template>
      {{ state.userInfo.bankName }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
        <div class="cell-item">银行账号</div>
      </template>
      {{ state.userInfo.bankAccount }}
    </el-descriptions-item>
  </el-descriptions>
  <div class="m-5">
    <el-button type="primary" :icon="Edit" @click="() => (showDialog = true)"
      >修改资料</el-button
    >
  </div>
  <el-dialog
    v-model="showDialog"
    title="修改资料"
    :width="1500"
    draggable
    :close-on-click-modal="false"
  >
    <div v-loading="isLoading" class="flex justify-center mt-5">
      <el-form
        ref="ruleFormRef"
        style="width: 95%"
        :model="state.ruleForm"
        :rules="state.rules"
        label-width="auto"
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">法定代表人</div>
        </template>
        {{ state.userInfo.legalRepresentativeName }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">身份证</div>
        </template>
        {{ state.userInfo.legalRepresentativeIdNumber }}
        <span @click="showImg('legalRepresentativeIdCard')">
          <el-link type="primary" underline>查看身份证</el-link>
        </span>
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">联系电话</div>
        </template>
        {{ state.userInfo.legalRepresentativePhone }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">业务经办人</div>
        </template>
        {{ state.userInfo.operatorName }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">身份证</div>
        </template>
        {{ state.userInfo.operatorIdNumber }}
        <span style="margin-right: auto" @click="showImg('operatorIdCard')">
          <el-link type="primary" underline>查看身份证</el-link>
        </span>
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">联系电话</div>
        </template>
        {{ state.userInfo.operatorPhone }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">开户银行</div>
        </template>
        {{ state.userInfo.bankName }}
      </el-descriptions-item>
      <el-descriptions-item>
        <template #label>
          <div class="cell-item">银行账号</div>
        </template>
        {{ state.userInfo.bankAccount }}
      </el-descriptions-item>
    </el-descriptions>
    <div class="m-5">
      <el-button type="primary" :icon="Edit" @click="() => (showDialog = true)"
        >修改资料</el-button
      >
        <el-row>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="企业类型" prop="enterpriseType">
              <el-tree-select
                v-model="state.ruleForm.enterpriseType"
                :data="state.enterpriseList"
                multiple
                node-key="name"
                :render-after-expand="false"
                show-checkbox
                check-strictly
                check-on-click-node
                :load="loadNode"
                lazy
                :props="{ label: 'name', children: 'child', isLeaf: 'leaf' }"
              />
              <!-- <el-select
    </div>
    <el-dialog
      v-model="showDialog"
      title="修改资料"
      :width="1500"
      draggable
      :close-on-click-modal="false"
    >
      <div v-loading="isLoading" class="flex justify-center mt-5">
        <el-form
          ref="ruleFormRef"
          style="width: 95%"
          :model="state.ruleForm"
          :rules="state.rules"
          label-width="auto"
        >
          <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="企业类型" prop="enterpriseType">
                <el-tree-select
                  v-model="state.ruleForm.enterpriseType"
                  :data="state.enterpriseList"
                  multiple
                  node-key="name"
                  :render-after-expand="false"
                  show-checkbox
                  check-strictly
                  check-on-click-node
                  :load="loadNode"
                  lazy
                  :props="{ label: 'name', children: 'child', isLeaf: 'leaf' }"
                />
                <!-- <el-select
                v-model="state.ruleForm.enterpriseType"
                placeholder="请选择"
                clearable
@@ -521,11 +512,11 @@
                  :value="item.code"
                />
              </el-select> -->
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><div class="baseclass">基本资料</div></el-row>
        <!-- <el-row>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row><div class="baseclass">基本资料</div></el-row>
          <!-- <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="交易主体">
                <el-input
@@ -535,241 +526,242 @@
              </el-form-item>
            </el-col>
          </el-row> -->
        <el-row>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="营业执照" prop="businessLicense">
              <el-upload
                :action="`${baseUrlApi('/api/upFile/upBizLicense')}`"
                :show-file-list="false"
                :on-success="handleAvatarSuccess"
                :before-upload="beforeAvatarUpload"
                :headers="state.headers"
              >
                <img
                  v-if="state.ruleForm.businessLicense"
                  :src="state.ruleForm.businessLicense"
                  width="200px"
                  height="150px"
          <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="营业执照" prop="businessLicense">
                <el-upload
                  :action="`${baseUrlApi('/api/upFile/upBizLicense')}`"
                  :show-file-list="false"
                  :on-success="handleAvatarSuccess"
                  :before-upload="beforeAvatarUpload"
                  :headers="state.headers"
                >
                  <img
                    v-if="state.ruleForm.businessLicense"
                    :src="state.ruleForm.businessLicense"
                    width="200px"
                    height="150px"
                  />
                  <el-button v-else type="primary">上传</el-button>
                </el-upload>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="企业名称" prop="enterpriseName">
                <el-input
                  v-model="state.ruleForm.enterpriseName"
                  disabled
                  placeholder="请输入"
                />
                <el-button v-else type="primary">上传</el-button>
              </el-upload>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="企业名称" prop="enterpriseName">
              <el-input
                v-model="state.ruleForm.enterpriseName"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item
              label="统一社会信用代码"
              prop="unifiedSocialCreditCode"
            >
              <el-input
                v-model="state.ruleForm.unifiedSocialCreditCode"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="注册资金" prop="registeredCapital">
              <el-input
                v-model="state.ruleForm.registeredCapital"
                disabled
                placeholder="请输入"
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item
                label="统一社会信用代码"
                prop="unifiedSocialCreditCode"
              >
                <template #append>万元</template></el-input
              >
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="8">
            <el-form-item label="法定代表人" prop="legalRepresentativeName">
              <el-input
                v-model="state.ruleForm.legalRepresentativeName"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
                <el-input
                  v-model="state.ruleForm.unifiedSocialCreditCode"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="注册资金" prop="registeredCapital">
                <el-input
                  v-model="state.ruleForm.registeredCapital"
                  disabled
                  placeholder="请输入"
                >
                  <template #append>万元</template></el-input
                >
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="8">
              <el-form-item label="法定代表人" prop="legalRepresentativeName">
                <el-input
                  v-model="state.ruleForm.legalRepresentativeName"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16">
            <el-form-item label="住所地" prop="residence">
              <el-input
                v-model="state.ruleForm.residence"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="成立时间" prop="establishmentTime">
              <el-input
                v-model="state.ruleForm.establishmentTime"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="主营业务" prop="mainBusiness">
              <el-input
                v-model="state.ruleForm.mainBusiness"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="联系电话" prop="enterprisePhone">
              <el-input
                v-model="state.ruleForm.enterprisePhone"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="邮箱" prop="enterpriseEmail">
              <el-input
                v-model="state.ruleForm.enterpriseEmail"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="法定代表人" prop="legalRepresentativeIdCard">
              <el-upload
                :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`"
                :show-file-list="false"
                :on-success="handleAvatarSuccessLegalRepresentative"
                :before-upload="beforeAvatarUpload"
                :headers="state.headers"
              >
                <img
                  v-if="state.ruleForm.legalRepresentativeIdCard"
                  :src="state.ruleForm.legalRepresentativeIdCard"
                  width="85.6px"
                  height="5.4px"
            <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16">
              <el-form-item label="住所地" prop="residence">
                <el-input
                  v-model="state.ruleForm.residence"
                  disabled
                  placeholder="请输入"
                />
                <el-button v-else type="primary">上传身份证</el-button>
              </el-upload>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="姓名" prop="legalRepresentativeName">
              <el-input
                v-model="state.ruleForm.legalRepresentativeName"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="身份证" prop="legalRepresentativeIdNumber">
              <el-input
                v-model="state.ruleForm.legalRepresentativeIdNumber"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="联系电话" prop="legalRepresentativePhone">
              <el-input
                v-model="state.ruleForm.legalRepresentativePhone"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
            <el-form-item label="业务经办人" prop="operatorIdCard">
              <el-upload
                :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`"
                :show-file-list="false"
                :on-success="handleAvatarSuccessOperator"
                :before-upload="beforeAvatarUpload"
                :headers="state.headers"
              >
                <img
                  v-if="state.ruleForm.operatorIdCard"
                  :src="state.ruleForm.operatorIdCard"
                  width="85.6px"
                  height="5.4px"
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="成立时间" prop="establishmentTime">
                <el-input
                  v-model="state.ruleForm.establishmentTime"
                  disabled
                  placeholder="请输入"
                />
                <el-button v-else type="primary">上传身份证</el-button>
              </el-upload>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="姓名" prop="operatorName">
              <el-input
                v-model="state.ruleForm.operatorName"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="身份证" prop="operatorIdNumber">
              <el-input
                v-model="state.ruleForm.operatorIdNumber"
                disabled
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="联系电话" prop="operatorPhone">
              <el-input
                v-model="state.ruleForm.operatorPhone"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
            <el-form-item label="开户行" prop="bankName">
              <el-input
                v-model="state.ruleForm.bankName"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16">
            <el-form-item label="银行账号" prop="bankAccount">
              <el-input
                v-model="state.ruleForm.bankAccount"
                placeholder="请输入"
              />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="() => (showDialog = false)">取 消</el-button>
        <el-button type="primary" :disabled="isLoading" @click="modifyData"
          >确 定</el-button
        >
      </span>
    </template>
  </el-dialog>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="主营业务" prop="mainBusiness">
                <el-input
                  v-model="state.ruleForm.mainBusiness"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="联系电话" prop="enterprisePhone">
                <el-input
                  v-model="state.ruleForm.enterprisePhone"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="邮箱" prop="enterpriseEmail">
                <el-input
                  v-model="state.ruleForm.enterpriseEmail"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="法定代表人" prop="legalRepresentativeIdCard">
                <el-upload
                  :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`"
                  :show-file-list="false"
                  :on-success="handleAvatarSuccessLegalRepresentative"
                  :before-upload="beforeAvatarUpload"
                  :headers="state.headers"
                >
                  <img
                    v-if="state.ruleForm.legalRepresentativeIdCard"
                    :src="state.ruleForm.legalRepresentativeIdCard"
                    width="85.6px"
                    height="5.4px"
                  />
                  <el-button v-else type="primary">上传身份证</el-button>
                </el-upload>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="姓名" prop="legalRepresentativeName">
                <el-input
                  v-model="state.ruleForm.legalRepresentativeName"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="身份证" prop="legalRepresentativeIdNumber">
                <el-input
                  v-model="state.ruleForm.legalRepresentativeIdNumber"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="联系电话" prop="legalRepresentativePhone">
                <el-input
                  v-model="state.ruleForm.legalRepresentativePhone"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
              <el-form-item label="业务经办人" prop="operatorIdCard">
                <el-upload
                  :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`"
                  :show-file-list="false"
                  :on-success="handleAvatarSuccessOperator"
                  :before-upload="beforeAvatarUpload"
                  :headers="state.headers"
                >
                  <img
                    v-if="state.ruleForm.operatorIdCard"
                    :src="state.ruleForm.operatorIdCard"
                    width="85.6px"
                    height="5.4px"
                  />
                  <el-button v-else type="primary">上传身份证</el-button>
                </el-upload>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="姓名" prop="operatorName">
                <el-input
                  v-model="state.ruleForm.operatorName"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="身份证" prop="operatorIdNumber">
                <el-input
                  v-model="state.ruleForm.operatorIdNumber"
                  disabled
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="联系电话" prop="operatorPhone">
                <el-input
                  v-model="state.ruleForm.operatorPhone"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
              <el-form-item label="开户行" prop="bankName">
                <el-input
                  v-model="state.ruleForm.bankName"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16">
              <el-form-item label="银行账号" prop="bankAccount">
                <el-input
                  v-model="state.ruleForm.bankAccount"
                  placeholder="请输入"
                />
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
      </div>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="() => (showDialog = false)">取 消</el-button>
          <el-button type="primary" :disabled="isLoading" @click="modifyData"
            >确 定</el-button
          >
        </span>
      </template>
    </el-dialog>
  </div>
</template>
<style lang="scss">
src/views/register/registernav.vue
@@ -433,7 +433,7 @@
import { cloneDeep } from "@pureadmin/utils";
import { getToken } from "@/utils/auth";
import { useRoute, useRouter } from "vue-router";
import { cusExtendInfo, changeCusExtend } from "@/api/mine";
import { changeCusExtend } from "@/api/mine";
const router = useRouter();
const { route } = useNav();
@@ -625,18 +625,15 @@
  //     type: "error"
  //   });
  // }
  state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo);
  state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
  if (state.ruleForm.enterpriseType) {
  let nowRole = useUserStoreHook()?.nowRole;
  console.log(nowRole);
  state.ruleForm.transactionCode = route.query.code;
  if (nowRole?.code == useUserStoreHook().enterpriseInfo.transactionCode) {
    state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo);
    state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
    isFirst.value = false;
  }
  let nowRole = useUserStoreHook()?.exRoles;
  if (nowRole.length >= 1 && !route.query.code) {
    state.ruleForm.transactionCode = nowRole[0].code;
  } else {
    state.ruleForm.transactionCode = route.query.code;
  }
  let resTypes = await enterpriseTypes();
  state.enterpriseList = resTypes?.result;
});
@@ -703,6 +700,9 @@
    ? await createrExRolsInformation(obj)
    : await changeCusExtend(obj);
  if (res.code == "200") {
    await useUserStoreHook().changeLogoInExRule({
      ruleCode: state.ruleForm.transactionCode
    });
    await useUserStoreHook().getCusExtendInfo();
    active.value = 3;
  } else {