zhangwei
2025-07-23 4157b22112dd8d87e907d9cb6d14f74b5d454b7a
'个人中心修改企业资料完善'
8个文件已修改
129 ■■■■ 已修改文件
src/layout/components/lay-navbar/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/hooks/useNav.ts 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/types.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/auth.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mine/index.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register/registernav.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/lay-navbar/index.vue
@@ -19,6 +19,7 @@
  username,
  userAvatar,
  avatarsStyle,
  userRoles,
  toggleSideBar
} = useNav();
</script>
@@ -52,6 +53,7 @@
          <!-- <img :src="userAvatar" :style="avatarsStyle" /> -->
          <p class="dark:text-white">
            {{ username || "请完善资料" }}
            <el-tag effect="plain">{{ userRoles.name }}</el-tag>
          </p>
        </span>
        <template #dropdown>
@@ -66,13 +68,13 @@
          </el-dropdown-menu>
        </template>
      </el-dropdown>
      <span
      <!-- <span
        class="set-icon navbar-bg-hover"
        title="打开系统配置"
        @click="onPanel"
      >
        <IconifyIconOffline :icon="Setting" />
      </span>
      </span> -->
    </div>
  </div>
</template>
src/layout/hooks/useNav.ts
@@ -53,9 +53,7 @@
  /** 角色 */
  const userRoles = computed(() => {
    return isAllEmpty(useUserStoreHook()?.exRoles)
      ? useUserStoreHook()?.exRoles
      : {};
    return useUserStoreHook()?.exRoles[0];
  });
  const avatarsStyle = computed(() => {
src/store/modules/user.ts
@@ -14,7 +14,14 @@
  refreshTokenApi
} from "@/api/user";
import { useMultiTagsStoreHook } from "./multiTags";
import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth";
import {
  type DataInfo,
  setToken,
  removeToken,
  userKey,
  setEnterpriseInfo
} from "@/utils/auth";
import { cusExtendInfo } from "@/api/mine";
export const useUserStore = defineStore("pure-user", {
  state: (): userType => ({
@@ -32,7 +39,10 @@
    // 是否勾选了登录页的免登录
    isRemembered: false,
    // 登录页的免登录存储几天,默认7天
    loginDay: 7
    loginDay: 1,
    // 企业资料
    enterpriseInfo:
      storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}
  }),
  actions: {
    /** 存储头像 */
@@ -63,6 +73,10 @@
    SET_LOGINDAY(value: number) {
      this.loginDay = Number(value);
    },
    // 设置企业资料
    SET_ENTERPRISEINFO(value: object) {
      this.loginDay = Number(value);
    },
    /** 登入 */
    async loginByUsername(data) {
      return new Promise<LoginResult>((resolve, reject) => {
@@ -76,15 +90,34 @@
          });
      });
    },
    async getCusExtendInfo() {
      return new Promise<LoginResult>((resolve, reject) => {
        cusExtendInfo()
          .then(data => {
            data.result.username = data.result.enterpriseName;
            if (data?.code == 200) {
              setEnterpriseInfo(data.result);
              resolve(data);
            }
          })
          .catch(error => {
            reject(error);
          });
      });
    },
    /** 前端登出(不调用接口) */
    logOut() {
      this.username = "";
      this.exRoles = [];
      this.permissions = [];
      removeToken();
      useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
      resetRouter();
      router.push("/login");
      if (this.exRoles && this.exRoles.length == 1) {
        router.push({ name: "Login", query: this.exRoles[0] });
      } else {
        router.push({ name: "Login" });
      }
      removeToken();
      this.exRoles = [];
    },
    /** 刷新`token` */
    async handRefreshToken(data) {
src/store/types.ts
@@ -44,4 +44,5 @@
  permissions?: Array<string>;
  isRemembered?: boolean;
  loginDay?: number;
  enterpriseInfo: object;
};
src/utils/auth.ts
@@ -115,6 +115,18 @@
  }
}
export function setEnterpriseInfo(data: DataInfo<Date>) {
  useUserStoreHook().SET_ENTERPRISEINFO(data);
  useUserStoreHook().SET_USERNAME(data.enterpriseName);
  storageLocal().setItem("enterpriseInfo", data);
  const obj = storageLocal().getItem(userKey);
  obj.username = data.enterpriseName;
  storageLocal().setItem(userKey, obj);
}
export function removeEnterpriseInfo() {
  storageLocal().removeItem("enterpriseInfo");
}
/** 删除`token`以及key值为`user-info`的localStorage信息 */
export function removeToken() {
  Cookies.remove(TokenKey);
src/views/login/index.vue
@@ -176,7 +176,6 @@
          if (res.code == 200) {
            // 获取后端路由
            return initRouter().then(() => {
              console.log(res, "=-=-=-=", res.result.exRoles[0].hasFlsh);
              if (!res.result.exRoles[0].hasFlsh) {
                disabled.value = true;
                router
@@ -191,6 +190,7 @@
              } else {
                router.replace("welcome");
              }
              useUserStoreHook().getCusExtendInfo();
            });
          } else {
            message(res?.message || "登录失败", { type: "error" });
src/views/mine/index.vue
@@ -23,7 +23,7 @@
const isLoading = ref(false);
const showDialog = ref(false);
const state = reactive({
  userInfo: {},
  userInfo: useUserStoreHook().enterpriseInfo,
  headers: {
    // Accept: "application/json, text/plain, */*",
    // "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
@@ -188,17 +188,21 @@
  showDialog: false
});
onMounted(async () => {
  let res = await cusExtendInfo();
  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"
    });
  }
  // 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;
@@ -328,6 +332,7 @@
  let res = await changeCusExtend(obj);
  if (res.code == "200") {
    showDialog.value = false;
    await useUserStoreHook().getCusExtendInfo();
    message("修改成功!", {
      type: "success"
    });
@@ -379,7 +384,7 @@
      <template #label>
        <div class="cell-item">企业类型</div>
      </template>
      {{ state.userInfo.enterpriseTypeName }}
      {{ state.userInfo.enterpriseType }}
    </el-descriptions-item>
    <el-descriptions-item>
      <template #label>
src/views/register/registernav.vue
@@ -612,18 +612,23 @@
};
// 页面初始化
onMounted(async () => {
  let res = await cusExtendInfo();
  if (res.code == 200) {
    state.ruleForm = res.result;
    if (res.result.enterpriseType) {
      isFirst.value = false;
    }
    state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
    console.log(state.ruleForm.enterpriseType, "state.ruleForm.enterpriseType");
  } else {
    message(res.message, {
      type: "error"
    });
  // let res = await useUserStoreHook().getCusExtendInfo();
  // if (res.code == 200) {
  //   state.ruleForm = res.result;
  //   if (res.result.enterpriseType) {
  //     isFirst.value = false;
  //   }
  //   state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
  //   console.log(state.ruleForm.enterpriseType, "state.ruleForm.enterpriseType");
  // } else {
  //   message(res.message, {
  //     type: "error"
  //   });
  // }
  state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo);
  state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
  if (state.ruleForm.enterpriseType) {
    isFirst.value = false;
  }
  let nowRole = useUserStoreHook()?.exRoles;
  if (nowRole.length >= 1 && !route.query.code) {
@@ -698,6 +703,7 @@
    ? await createrExRolsInformation(obj)
    : await changeCusExtend(obj);
  if (res.code == "200") {
    await useUserStoreHook().getCusExtendInfo();
    active.value = 3;
  } else {
    message(res.message, {