zhangwei
2025-08-22 85c54d88f139096614aea4b06f2166cae27729d7
用户管理
8个文件已修改
200 ■■■■■ 已修改文件
src/App.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/RePureTableBar/src/bar.tsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mine/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/utils/hook.tsx 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -30,9 +30,9 @@
onMounted(() => {
  useUserStoreHook().getRoleList();
  if (useUserStoreHook().nowRole.code) {
    useUserStoreHook().changeLogoInExRule({
      ruleCode: useUserStoreHook().nowRole.code
    });
    // useUserStoreHook().changeLogoInExRule({
    //   ruleCode: useUserStoreHook().nowRole.code
    // });
  }
});
</script>
src/api/system.ts
@@ -39,3 +39,10 @@
    }
  );
};
/**删除员工 */
export const delCustormerUsers = data => {
  return http.request<Result>(
    "delete",
    baseUrlApi(`/api/customer/delCustormerUsers/${data.custormerUserId}`)
  );
};
src/components/RePureTableBar/src/bar.tsx
@@ -55,6 +55,7 @@
  props,
  emits: ["refresh", "fullscreen"],
  setup(props, { emit, slots, attrs }) {
    // 密度默认值
    const size = ref("default");
    const loading = ref(false);
    const checkAll = ref(true);
src/views/home/index.vue
@@ -461,15 +461,17 @@
};
// 去首页
const toWelcome = async item => {
  if (useUserStoreHook().nowRole.code !== item.code) {
    // 获取后端路由
    initRouter().then(() => {
      useUserStoreHook().changeLogoInExRule({
        ruleCode: item.code
      });
  // if (useUserStoreHook().nowRole.code !== item.code) {
  // 获取后端路由
  initRouter().then(() => {
    console.log("hhhh");
    useUserStoreHook().changeLogoInExRule({
      ruleCode: item.code
    });
  }
  router.push({ name: "Welcome" });
    router.push({ name: "Welcome" });
  });
  // }
};
// 去登录
const toLogin = item => {
src/views/login/index.vue
@@ -24,7 +24,8 @@
  ElRadioGroup,
  ElRadio,
  ElRow,
  ElTag
  ElTag,
  ElCol
} from "element-plus";
import { useLayout } from "@/layout/hooks/useLayout";
import { useUserStoreHook } from "@/store/modules/user";
@@ -156,78 +157,82 @@
          rules: loginRules,
          size: "large"
        },
        [
          h(Motion, { delay: 150 }, [
            h(
              ElFormItem,
              {
                prop: "exRoleCode",
                label: ""
              },
              [
                // 单选框组 - 纵向排列
                h(
                  ElRadioGroup,
                  {
                    modelValue: secondId.value,
                    "onUpdate:modelValue": val => {
                      secondId.value = val;
                    }
                  },
                  [
                    // 循环渲染单选框 - 根据每项的isManager显示标签
                    state.myEnterpriseList.map(item =>
        {
          default: () => {
            return [
              h(
                ElFormItem,
                { prop: "exRoleCode", label: "" },
                {
                  default: () => {
                    return [
                      h(
                        "el-row",
                        ElRadioGroup,
                        {
                          style: {
                            width: "100%"
                          }
                          modelValue: secondId.value,
                          "onUpdate:modelValue": val => (secondId.value = val)
                        },
                        [
                          h(
                            "el-col",
                            {
                              span: 24
                            },
                            [
                              h(
                                ElRadio,
                                {
                                  key: item.customerUserID,
                                  value: item.customerUserID
                                },
                                [
                                  // 单选框文本
                                  item.enterpriseName,
                                  // 根据当前项的isManager显示标签(放在文本后面)
                                  item.isManger
                                    ? h(
                                        ElTag,
                                        {
                                          type: "primary",
                                          size: "small",
                                          style: {
                                            marginLeft: "8px",
                                            alignSelf: "center"
                                          }
                                        },
                                        "管理员"
                                      )
                                    : null
                                ]
                              )
                            ]
                        // ElRadioGroup 的内容是循环生成的,用函数包裹
                        () =>
                          state.myEnterpriseList.map(item =>
                            h(
                              ElRow,
                              { style: { width: "100%" } },
                              {
                                default: () => {
                                  return [
                                    h(
                                      ElCol,
                                      { span: 24 },
                                      {
                                        default: () => {
                                          return [
                                            h(
                                              ElRadio,
                                              {
                                                key: item.customerUserID,
                                                value: item.customerUserID
                                              },
                                              // ElRadio 的内容是动态的,用函数包裹
                                              () => [
                                                // 文本直接返回(不要嵌套函数)
                                                item.enterpriseName,
                                                item.isManger
                                                  ? h(
                                                      ElTag,
                                                      {
                                                        type: "primary",
                                                        size: "small",
                                                        style: {
                                                          marginLeft: "8px",
                                                          alignSelf: "center"
                                                        }
                                                      },
                                                      // ElTag 的内容是静态文本,直接返回
                                                      {
                                                        default: () => "管理员"
                                                      }
                                                    )
                                                  : null
                                              ]
                                            )
                                          ];
                                        }
                                      }
                                    )
                                  ];
                                }
                              }
                            )
                          )
                        ]
                      )
                    )
                  ]
                )
              ]
            )
          ])
        ]
                    ];
                  }
                }
              )
            ];
          }
        }
      ),
    // jsx 语法 (注意在.vue文件启用jsx语法,需要在script开启lang="tsx")
    closeCallBack: ({ options, args }) => {
src/views/mine/index.vue
@@ -12,6 +12,7 @@
import { Edit } from "@element-plus/icons-vue";
import { enterpriseTypes } from "@/api/register/index";
import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils";
const isManager = useUserStoreHook().isManager;
const ruleFormRef = ref<FormInstance>();
const isLoading = ref(false);
@@ -505,7 +506,7 @@
        </span>
      </el-descriptions-item>
    </el-descriptions>
    <div class="m-5">
    <div v-if="isManager" class="m-5">
      <el-button type="primary" :icon="Edit" @click="() => (showDialog = true)"
        >修改资料</el-button
      >
src/views/system/user/index.vue
@@ -163,8 +163,8 @@
                :icon="useRenderIcon(EditPen)"
                @click="openDialog('修改', row)"
              />
              <!-- <el-popconfirm
                :title="`是否确认删除用户编号为${row.id}的这条数据`"
              <el-popconfirm
                :title="`是否确认删除用户${row.name}?`"
                @confirm="handleDelete(row)"
              >
                <template #reference>
@@ -176,7 +176,7 @@
                    :icon="useRenderIcon(Delete)"
                  />
                </template>
              </el-popconfirm> -->
              </el-popconfirm>
              <!-- <el-dropdown>
                <el-button
                  class="ml-3! mt-[2px]!"
src/views/system/user/utils/hook.tsx
@@ -18,13 +18,11 @@
  deviceDetection
} from "@pureadmin/utils";
import {
  getRoleIds,
  getDeptList,
  getUserList,
  creatCustormerUsers,
  changeManager,
  updataCustormerUsers,
  getAllRoleList
  delCustormerUsers
} from "@/api/system";
import {
  ElForm,
@@ -290,8 +288,18 @@
  }
  function handleDelete(row) {
    message(`您删除了用户编号为${row.id}的这条数据`, { type: "success" });
    onSearch();
    delCustormerUsers({ custormerUserId: row.id }).then(res => {
      if (res.code == 200) {
        message("删除成功!", {
          type: "success"
        });
        onSearch();
      } else {
        message(res.message || "删除失败!", {
          type: "error"
        });
      }
    });
  }
  function handleSizeChange(val: number) {