From 25ae8a3557d1b6dfcb8665439bc153335c963be8 Mon Sep 17 00:00:00 2001
From: kun <1422840143@qq.com>
Date: Thu, 16 Nov 2023 10:21:28 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20BUG=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 4 +-
src/api/modules/goverment.ts | 2 +-
src/components/TreeFilter/index.vue | 4 +-
.../userManagement/departmentManage/index.vue | 2 +-
.../userManagement/userManage/index.vue | 360 ++++++++++--------
.../userManagement/departmentManage/index.vue | 2 +-
6 files changed, 218 insertions(+), 156 deletions(-)
diff --git a/.env.development b/.env.development
index deec6c5..efed31d 100644
--- a/.env.development
+++ b/.env.development
@@ -2,10 +2,10 @@
NODE_ENV = 'development'
# 本地环境接口地址(/api/index.ts文件中使用)
-# VITE_API_URL = 'http://192.168.34.155:6688'
+VITE_API_URL = 'http://192.168.34.155:6688'
# VITE_API_URL = 'http://2xliv7gs.shenzhuo.vip:55296'
VITE_WPAPI_URL = "http://jxjzw.zhgdyun.com:8081"
-VITE_API_URL = "http://jxjzw.zhgdyun.com:9013"
+# VITE_API_URL = "http://jxjzw.zhgdyun.com:9013"
# 上传
# VITE_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
diff --git a/src/api/modules/goverment.ts b/src/api/modules/goverment.ts
index 2ecdef8..682e2ea 100644
--- a/src/api/modules/goverment.ts
+++ b/src/api/modules/goverment.ts
@@ -114,7 +114,7 @@ export const getTreemRoleList = (params: any) => {
return http.post(BASEURL + `/xmgl/baseMenu/getMenus`, params);
};
// 列表查询系统角色信息 这里用来用户管理的下拉框显示
-export const getRoleNamelist = (params: { state: number | string }) => {
+export const getRoleNamelist = (params: any) => {
return http.post(BASEURL + `/gov/systemRole/list`, params);
};
diff --git a/src/components/TreeFilter/index.vue b/src/components/TreeFilter/index.vue
index 438d8b1..b906940 100644
--- a/src/components/TreeFilter/index.vue
+++ b/src/components/TreeFilter/index.vue
@@ -1,14 +1,14 @@
{{ title }}
-
+
新增部门
- 删除
+ 删除
diff --git a/src/views/goverment/huizhou/userManagement/userManage/index.vue b/src/views/goverment/huizhou/userManagement/userManage/index.vue
index 935da70..bc4fafc 100644
--- a/src/views/goverment/huizhou/userManagement/userManage/index.vue
+++ b/src/views/goverment/huizhou/userManagement/userManage/index.vue
@@ -44,17 +44,72 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ 禁用
+
+
+
+
+
+
+
+
+
+
+ 政务
+ 企业
+ 项目
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
@@ -63,16 +118,23 @@ import { ref, reactive, onMounted, nextTick } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { Delete } from "@element-plus/icons-vue";
import { useRouter } from "vue-router";
-import { User } from "@/api/interface";
import { jxj_User } from "@/api/types";
import { ColumnProps } from "@/components/ProTable/interface";
import { useHandleData } from "@/hooks/useHandleData";
import ProTable from "@/components/ProTable/index.vue";
-import { getUserPage, addUser, editUser, deleteUser, getRoleNamelist, getTreeList } from "@/api/modules/goverment";
+import {
+ getUserPage,
+ addUser,
+ editUser,
+ deleteUser,
+ getRoleNamelist,
+ getTreeList,
+ getentNamelist
+} from "@/api/modules/goverment";
+import { engineerList } from "@/api/modules/huizhou";
import { GlobalStore } from "@/stores";
-import DialogForm from "@/components/DialogForm/index.vue";
import { getuserDataScope, editUserDataScope } from "@/api/modules/auth";
-import { getengineeringList } from "@/api/modules/project";
+import type { FormRules, FormInstance } from "element-plus";
interface authorityColumns {
relevanceId: string;
@@ -82,6 +144,12 @@ interface authorityColumns {
const router = useRouter();
const store = GlobalStore();
+const roleList = ref([]); // 角色列表
+const engineerProjectList = ref([]); // 项目列表
+const enterpriseList = ref([]); // 企业列表
+const typeList = ref([]);
+const ruleFormRef = ref();
+const departmentList = ref([]);
const visible = ref(false);
const authorityVisible = ref(false);
const title = ref("");
@@ -89,12 +157,14 @@ const formData = ref({
realName: "",
userTel: "",
account: "",
- password: "",
+ showPassword: "",
email: "",
state: 1,
sex: "",
department: "",
jobName: "",
+ accountType: 2,
+ sn: "",
roleId: "",
remark: ""
});
@@ -148,125 +218,88 @@ const authorityColumns = ref([
{ type: "selection", fixed: "left", width: 80 },
{ prop: "engineeringName", label: "项目名称" }
]);
-
-// 弹窗中的配置
-const formConfig = reactive({
- formItemConfig: [
+const rules = reactive({
+ realName: [
{
- label: "用户姓名",
- prop: "realName",
- type: "input"
- },
- {
- label: "手机号码",
- prop: "userTel",
- type: "input"
- },
- {
- label: "账号名称",
- prop: "account",
- type: "input"
- },
- {
- label: "密码",
- prop: "password",
- type: "input"
- },
- {
- label: "邮箱",
- prop: "email",
- type: "input"
- },
-
- {
- label: "状态",
- prop: "state",
- type: "radio",
- data: [
- { label: "启用", value: 1 },
- { label: "禁用", value: 0 }
- ]
- },
- {
- label: "用户性别",
- prop: "sex",
- type: "select",
- data: [
- { label: "男", value: 1 },
- { label: "女", value: 0 }
- ]
- },
- {
- label: "归属部门",
- prop: "department",
- type: "select",
- data: [],
- fieldNames: { label: "roleName", value: "roleId" }
- // 树形接口i
- },
-
- {
- label: "岗位",
- prop: "jobName",
- type: "input"
- },
- {
- label: "角色",
- prop: "roleId",
- type: "select",
- data: []
-
- // 接口获取角色管理
- },
- {
- label: "备注",
- prop: "remark",
- type: "input"
+ required: true,
+ message: "请输入用户姓名",
+ trigger: "blur"
}
],
- rules: {
- realName: [
- {
- required: true,
- message: "请输入用户姓名",
- trigger: "blur"
- }
- ],
- userTel: [
- {
- required: true,
- message: "请输入手机号码",
- trigger: "blur"
- }
- ],
- password: [
- {
- required: true,
- message: "请输入密码",
- trigger: "blur"
- }
- ],
- account: [
- {
- required: true,
- message: "请输入名称",
- trigger: "blur"
- }
- ],
- roleId: [
- {
- required: true,
- message: "请选择角色",
- trigger: "blur"
- }
- ]
+ userTel: [
+ {
+ required: true,
+ message: "请输入手机号码",
+ trigger: "blur"
+ }
+ ],
+ showPassword: [
+ {
+ required: true,
+ message: "请输入密码",
+ trigger: "blur"
+ }
+ ],
+ account: [
+ {
+ required: true,
+ message: "请输入名称",
+ trigger: "blur"
+ }
+ ],
+ accountType: [
+ {
+ required: true,
+ message: "请选择角色类型",
+ trigger: "blur"
+ }
+ ],
+ sn: [
+ {
+ required: true,
+ message: "请选择指定类型",
+ trigger: "blur"
+ }
+ ],
+ roleId: [
+ {
+ required: true,
+ message: "请选择角色",
+ trigger: "blur"
+ }
+ ]
+});
+// 获取角色下拉数据
+const getRoleData = async () => {
+ let requestData = {
+ state: 1
+ };
+ if (formData.value.accountType != 2) {
+ requestData.sn = formData.value.sn;
}
-});
-
-const initParam = reactive({
- // type: 1
-});
-
+ const res: any = await getRoleNamelist(requestData);
+ roleList.value = res.result.map(i => {
+ return {
+ label: i.roleName,
+ value: i.roleId
+ };
+ });
+};
+// 获取下拉数据
+const getSelectData = async () => {
+ typeList.value.length = 0;
+ if (formData.value.accountType == 3) {
+ typeList.value = [...enterpriseList.value];
+ roleList.value.length = 0;
+ } else if (formData.value.accountType == 4) {
+ typeList.value = [...engineerProjectList.value];
+ roleList.value.length = 0;
+ } else {
+ getRoleData();
+ }
+ formData.value.sn = "";
+ formData.value.roleId = "";
+};
// dataCallback 是对于返回的表格数据做处理,如果你后台返回的数据不是 list && total && pageNum && pageSize 这些字段,那么你可以在这里进行处理成这些字段
// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行
const dataCallback = (data: any) => {
@@ -317,19 +350,28 @@ const handleEditItem = async (index: number, row: any) => {
realName: "",
userTel: "",
account: "",
- password: "",
+ showPassword: "",
email: "",
state: 1,
sex: "",
department: "",
jobName: "",
+ accountType: 2,
+ sn: "",
roleId: "",
remark: ""
});
} else {
title.value = "编辑用户";
formData.value = reactive({ ...row });
+ typeList.value.length = 0;
+ if (formData.value.accountType == 3) {
+ typeList.value = [...enterpriseList.value];
+ } else if (formData.value.accountType == 4) {
+ typeList.value = [...engineerProjectList.value];
+ }
}
+ await getRoleData();
visible.value = true;
};
@@ -340,32 +382,52 @@ const handleDeleteItem = async (params: jxj_User.ResUserList) => {
};
// 页面新增,编辑数据
-const saveItem = async (form: any) => {
- if (form.userId) {
- const res = await editUser(form);
- proTable.value.getTableList();
- ElMessage.success("编辑成功");
- } else {
- const res = await addUser(form);
- ElMessage.success("新增成功");
- proTable.value.getTableList();
- }
- visible.value = false;
+const saveItem = async (formEl: FormInstance | undefined, form: any) => {
+ // 标记表单校验
+ if (!formEl) return;
+ await formEl.validate(async (valid, fields) => {
+ if (valid) {
+ if (form.userId) {
+ const res = await editUser(form);
+ proTable.value.getTableList();
+ ElMessage.success("编辑成功");
+ } else {
+ const res = await addUser(form);
+ ElMessage.success("新增成功");
+ proTable.value.getTableList();
+ }
+ visible.value = false;
+ } else {
+ console.log("error submit!", fields);
+ ElMessage({
+ showClose: true,
+ message: "请完善表单信息!",
+ type: "error"
+ });
+ }
+ });
};
-
onMounted(async () => {
- const res = await getRoleNamelist({ state: 1 });
const res1 = await getTreeList({ deptId: "", status: 1 });
- formConfig.formItemConfig[7].data = res1.result.map(i => {
+ departmentList.value = res1.result.map(i => {
return {
label: i.deptName,
value: i.deptId
};
});
- formConfig.formItemConfig[9].data = res.result.map(i => {
+ const res2: any = await getentNamelist({});
+ enterpriseList.value = res2.result.map(item => {
return {
- label: i.roleName,
- value: i.roleId
+ label: item.enterpriseName,
+ value: item.enterpriseSn
+ };
+ });
+
+ const res3: any = await engineerList({});
+ engineerProjectList.value = res3.result.map(item => {
+ return {
+ label: item.engineeringName,
+ value: item.engineeringSn
};
});
// treeDeptList.value = res.result;
diff --git a/src/views/hz-project/userManagement/departmentManage/index.vue b/src/views/hz-project/userManagement/departmentManage/index.vue
index d2a86da..1e243f7 100644
--- a/src/views/hz-project/userManagement/departmentManage/index.vue
+++ b/src/views/hz-project/userManagement/departmentManage/index.vue
@@ -5,7 +5,7 @@
新增部门
- 删除
+ 删除