fix: BUG修改

This commit is contained in:
kun 2023-11-16 10:21:28 +08:00
parent 68a3c8acc6
commit 25ae8a3557
6 changed files with 218 additions and 156 deletions

View File

@ -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='

View File

@ -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);
};

View File

@ -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"

View File

@ -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">

View File

@ -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;

View File

@ -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>