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 @@
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 @@ 新增部门