fix: BUG修改
This commit is contained in:
parent
68a3c8acc6
commit
25ae8a3557
@ -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='
|
||||
|
||||
@ -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);
|
||||
};
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div class="card filter">
|
||||
<h4 class="title sle" v-if="title">{{ title }}</h4>
|
||||
<!-- <div style="display: flex; box-sizing: border-box">
|
||||
<div style="display: flex; box-sizing: border-box">
|
||||
<el-input style="margin-right: 20px" v-model="filterText" placeholder="请输入" clearable>
|
||||
<template #prefix>
|
||||
<el-icon class="el-input__icon"><search /></el-icon>
|
||||
</template>
|
||||
</el-input>
|
||||
<slot name="addButton"></slot>
|
||||
</div> -->
|
||||
</div>
|
||||
<el-scrollbar :style="{ height: title ? `calc(100% - 95px)` : `calc(100% - 56px)` }">
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<el-button type="primary" @click="onAddDept">新增部门</el-button>
|
||||
</template>
|
||||
<template #editButton="{ row }">
|
||||
<el-button style="font-size: 12px" type="danger" link :icon="Delete" @click="onDelDept(row)">删除</el-button>
|
||||
<el-button type="danger" link :icon="Delete" @click="onDelDept(row)">删除</el-button>
|
||||
</template>
|
||||
</TreeFilter>
|
||||
<div class="table-box">
|
||||
|
||||
@ -44,17 +44,72 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<DialogForm
|
||||
:title="title"
|
||||
:formConfig="formConfig"
|
||||
:formData="formData"
|
||||
v-model:visible="visible"
|
||||
append-to-body
|
||||
width="700px"
|
||||
@confirm="saveItem"
|
||||
>
|
||||
</DialogForm>
|
||||
<!-- 新增角色 -->
|
||||
<el-dialog class="imgDialog" :title="title" width="700px" v-model="visible" show-close>
|
||||
<el-form class="diaForm" :rules="rules" :model="formData" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item label="用户姓名:" prop="realName">
|
||||
<el-input v-model="formData.realName" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码:" prop="userTel">
|
||||
<el-input v-model="formData.userTel" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="账号名称:" prop="account">
|
||||
<el-input v-model="formData.account" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="密码:" prop="showPassword">
|
||||
<el-input v-model="formData.showPassword" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱:" prop="email">
|
||||
<el-input v-model="formData.email" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="state">
|
||||
<el-radio-group v-model="formData.state">
|
||||
<el-radio :label="1">启用</el-radio>
|
||||
<el-radio :label="0">禁用</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户性别:" prop="sex">
|
||||
<el-select v-model="formData.sex" clearable placeholder="请选择" style="width: 100%">
|
||||
<el-option label="男" :value="1" />
|
||||
<el-option label="女" :value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户类型:" prop="accountType" v-if="store.accountType == 2">
|
||||
<el-radio-group v-model="formData.accountType" @change="getSelectData">
|
||||
<el-radio :label="2">政务</el-radio>
|
||||
<el-radio :label="3">企业</el-radio>
|
||||
<el-radio :label="4">项目</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="指定类型:" prop="sn" v-if="formData.accountType != 2">
|
||||
<el-select v-model="formData.sn" clearable placeholder="请选择" style="width: 100%" @change="getRoleData">
|
||||
<el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="归属部门:" prop="department">
|
||||
<el-select v-model="formData.department" clearable placeholder="请选择" style="width: 100%">
|
||||
<el-option v-for="item in departmentList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="岗位:" prop="jobName">
|
||||
<el-input v-model="formData.jobName" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="角色:" prop="roleId">
|
||||
<el-select v-model="formData.roleId" clearable placeholder="请选择" style="width: 100%">
|
||||
<el-option v-for="item in roleList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注:" prop="remark">
|
||||
<el-input v-model="formData.remark" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div>
|
||||
<el-button class="hzCancelStyle" @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="saveItem(ruleFormRef, formData)"> 保存 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -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<any>([]); // 角色列表
|
||||
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<FormRules>({
|
||||
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;
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<el-button type="primary" @click="onAddDept">新增部门</el-button>
|
||||
</template>
|
||||
<template #editButton="{ row }">
|
||||
<el-button style="font-size: 12px" type="danger" link :icon="Delete" @click="onDelDept(row)">删除</el-button>
|
||||
<el-button type="danger" link :icon="Delete" @click="onDelDept(row)">删除</el-button>
|
||||
<!-- {{ row.showEdit ? "true" : "false" }} -->
|
||||
</template>
|
||||
</TreeFilter>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user