Browse Source

fix: bug 修复

main
xuziqiang 3 months ago
parent
commit
69776112f9
  1. 2
      hx-ai-intelligent/src/config/app.config.ts
  2. 4
      hx-ai-intelligent/src/router/organizationManage.ts
  3. 9
      hx-ai-intelligent/src/view/organizationManage/departmentManage/config.ts
  4. 118
      hx-ai-intelligent/src/view/organizationManage/departmentManage/index.vue
  5. 34
      hx-ai-intelligent/src/view/organizationManage/usermanage/config.ts
  6. 63
      hx-ai-intelligent/src/view/organizationManage/usermanage/index.vue

2
hx-ai-intelligent/src/config/app.config.ts

@ -19,7 +19,7 @@ export const appConfig = {
projectType: 'web',
baseApi: '/api',
projectName: '济阳站_AI智能BAS系统',
enablePermissions: true,
enablePermissions: false,
// themeColor: '#eee',
siderPosition: 'left',
baseHeader: '/parkingManage',

4
hx-ai-intelligent/src/router/organizationManage.ts

@ -46,6 +46,10 @@ const organizationManage = {
code: 'userFrozen',
},
{
title: '解冻',
code: 'userUnFrozen',
},
{
title: '重置密码',
code: 'userCodeReset',
},

9
hx-ai-intelligent/src/view/organizationManage/departmentManage/config.ts

@ -11,6 +11,7 @@ export const formConfig = (disabled: Boolean) => {
disabled: disabled,
placeholder: '请输入部门名称',
maxLength: 20,
onKeydown: (e) => e.keyCode === 32 && e.preventDefault(),
},
rules: [
{
@ -44,6 +45,7 @@ export const formConfig = (disabled: Boolean) => {
componentProps: {
disabled: disabled,
placeholder: '请输入部门编码',
onKeydown: (e) => e.keyCode === 32 && e.preventDefault(),
maxLength: 20,
},
rules: [
@ -56,11 +58,14 @@ export const formConfig = (disabled: Boolean) => {
{
label: '排序',
field: 'sort',
component: 'NsInput',
component: 'NsInputNumber',
componentProps: {
disabled: disabled,
placeholder: '请输入排序',
maxLength: 2,
min: 0,
max: 99,
precision: 0,
},
},
{
@ -87,6 +92,7 @@ export const formConfig2 = (disabled2: Boolean) => {
componentProps: {
disabled: disabled2,
placeholder: '请输入角色名称',
onKeydown: (e) => e.keyCode === 32 && e.preventDefault(),
maxLength: 20,
},
rules: [
@ -111,6 +117,7 @@ export const formConfig2 = (disabled2: Boolean) => {
componentProps: {
disabled: disabled2,
placeholder: '请输入节点编码',
onKeydown: (e) => e.keyCode === 32 && e.preventDefault(),
maxLength: 20,
},
rules: [

118
hx-ai-intelligent/src/view/organizationManage/departmentManage/index.vue

@ -10,13 +10,13 @@
新增部门
</ns-button>
<ns-button type="primary" @click="pipe(addApartmentSon, true)">新增子部门</ns-button>
<ns-button style="margin: 10px" type="primary" @click="pipe(deleteDept)">
<ns-button style="margin: 10px" type="primary" @click="pipe(deleteDept, true)">
删除
</ns-button>
<a-tree
v-if="apartmentTreeData?.length"
:tree-data="apartmentTreeData"
v-model:checkedKeys="deptTreeCheckedKeys"
v-if="deptTreeData?.length"
:tree-data="deptTreeData"
:selectedKeys="deptTreeSelectedKeys"
defaultExpandAll
@select="SelectApartmentTree">
<template #title="data">
@ -35,11 +35,11 @@
formLayout="vertical"
class="form" />
</a-tab-pane>
<a-tab-pane :key="2" tab="部门权限">
<a-tab-pane :key="2" :disabled="selectRef?.hasOwnProperty('orgInfo')" tab="部门权限">
<a-tree
:tree-data="apartmentAdminTreeData"
:tree-data="deptPermissionTreeData"
:fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }"
v-model:checkedKeys="ApartcheckedKeys"
v-model:checkedKeys="deptcheckedKeys"
checkable
:selectable="false"
defaultExpandAll
@ -49,7 +49,9 @@
</a-tab-pane>
</a-tabs>
<ns-button style="margin: 16px" type="primary" @click="CancelApartment">取消 </ns-button>
<ns-button v-show="disabled" type="primary" @click="pipe(deptEdit)">编辑</ns-button>
<ns-button v-show="disabled" type="primary" @click="pipe(deptEdit, true, false)"
>编辑</ns-button
>
<ns-button v-show="!disabled" type="primary" @click="deptSure">确定</ns-button>
</a-col>
</a-row>
@ -66,8 +68,9 @@
删除
</ns-button>
<a-tree
v-if="userTreeData.length"
:tree-data="userTreeData"
v-if="roleTreeData.length"
:tree-data="roleTreeData"
:selectedKeys="roleTreeSelectedKeys"
defaultExpandAll
@select="SelectUserTree">
<template #title="data">
@ -88,8 +91,8 @@
</a-tab-pane>
<a-tab-pane :key="2" tab="角色权限">
<a-tree
:tree-data="userAdminTreeData"
v-model:checkedKeys="UsercheckedKeys"
:tree-data="rolePermissionTreeData"
v-model:checkedKeys="roleCheckedKeys"
defaultExpandAll
:fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }"
:selectable="false"
@ -98,8 +101,10 @@
</a-tab-pane>
</a-tabs>
<ns-button style="margin: 16px" type="primary" @click="CancelUser">取消</ns-button>
<ns-button v-show="roleDisabled" type="primary" @click="roleEdit"> 编辑 </ns-button>
<ns-button v-show="!roleDisabled" type="primary" @click="UserSure"> 确定 </ns-button>
<ns-button v-show="roleDisabled" type="primary" @click="rolePipe(roleEdit, false, false)">
编辑
</ns-button>
<ns-button v-show="!roleDisabled" type="primary" @click="roleSure"> 确定 </ns-button>
</a-col>
</a-row>
</div>
@ -128,9 +133,10 @@
const roleActiveKey = ref(1);
const disabled = ref(true);
const roleDisabled = ref(true);
const deptTreeCheckedKeys = ref(['0-0-0']);
const ApartcheckedKeys = ref<string[]>([]);
const UsercheckedKeys = ref<string[]>([]);
const deptTreeSelectedKeys = ref([]);
const roleTreeSelectedKeys = ref([]);
const deptcheckedKeys = ref<string[]>([]);
const roleCheckedKeys = ref<string[]>([]);
const currentOrgRef = ref();
const selectKey = ref();
const selectRef = ref();
@ -138,11 +144,12 @@
const selectRoleRef = ref();
const formSchema = formConfig(disabled as any);
const formSchema2 = formConfig2(roleDisabled as any);
const { orgId, orgName, projectId } = JSON.parse(sessionStorage.getItem('userInfo'));
const userAdminTreeData = ref([]);
const apartmentTreeData = ref([]);
const apartmentAdminTreeData = ref([]);
const userTreeData = ref([]);
const { orgName, projectId, orgId } = JSON.parse(sessionStorage.getItem('userInfo'));
// const orgId = JSON.parse(sessionStorage.getItem('ORGID'));
const roleTreeData = ref([]);
const rolePermissionTreeData = ref([]);
const deptTreeData = ref([]);
const deptPermissionTreeData = ref([]);
//
const deptTotalCheckedKeys = ref([]);
@ -159,28 +166,34 @@
};
watchEffect(() => {
disabledTree(apartmentAdminTreeData.value, disabled.value);
disabledTree(userAdminTreeData.value, roleDisabled.value);
disabledTree(deptPermissionTreeData.value, disabled.value);
disabledTree(rolePermissionTreeData.value, roleDisabled.value);
});
/**操作拦截 */
const pipe = (func: Function, flag = false) => {
const pipe = (func: Function, flag = false, toggle = true) => {
console.log(selectRef.value);
if (flag && !selectRef.value?.hasOwnProperty('own')) {
if (toggle) activeKey.value = 1;
if (flag) {
//
if (selectRef.value?.hasOwnProperty('orgInfo') || !selectRef.value?.deptInfo) {
NsMessage.error('请先选择相关部门');
return;
}
if (!flag && !selectRef.value?.deptInfo) {
} else {
if (!selectRef.value?.hasOwnProperty('orgInfo')) {
NsMessage.error('请先选择相关企业');
return;
}
}
func && func();
};
const rolePipe = (func: Function, linkDept = false) => {
const rolePipe = (func: Function, linkDept = false, toggle = true) => {
console.log(selectRoleRef.value);
if (toggle) roleActiveKey.value = 1;
//
if ((linkDept && !selectRef.value?.deptInfo) || selectRef.value?.hasOwnProperty('own')) {
NsMessage.error('请先选择相关部门');
@ -196,12 +209,12 @@
const getPermissionTree = (params) => {
return http.post(permission.queryOrgPermission, params).then((res) => {
apartmentAdminTreeData.value = get(res, 'data');
deptPermissionTreeData.value = get(res, 'data');
});
};
const getRolePermissionTree = (params) => {
return http.post(permission.queryFilterDeptPermission, params).then((res) => {
userAdminTreeData.value = get(res, 'data');
rolePermissionTreeData.value = get(res, 'data');
});
};
@ -223,13 +236,13 @@
});
};
getDepartList({ orgId }).then((res) => {
apartmentTreeData.value = res;
deptTreeData.value = res;
});
//
const getTree = () => {
getDepartList({ orgId }).then((res) => {
apartmentTreeData.value = res;
deptTreeData.value = res;
NsMessage.success('操作成功');
});
};
@ -237,7 +250,7 @@
//
const getUserTree = (params = { deptId: selectRef.value?.deptInfo?.deptId }) => {
http.post(department.queryRoleTree, params).then((res) => {
userTreeData.value = res.data;
roleTreeData.value = res.data;
});
};
//
@ -338,12 +351,13 @@
//
Modal.confirm({
title: '是否确认删除',
icon: createVNode(ExclamationCircleOutlined),
content: createVNode('div', { style: 'color:red;' }, ''),
onOk() {
http.post(department.deptDel, { deptId: selectRef.value.deptInfo.deptId }).then(() => {
getTree();
clearDeptData();
// select
deptTreeSelectedKeys.value = [];
selectRef.value = '';
});
},
onCancel() {
@ -355,17 +369,21 @@
const deleteUser = () => {
Modal.confirm({
title: '是否确认删除',
icon: createVNode(ExclamationCircleOutlined),
content: createVNode('div', { style: 'color:red;' }, ''),
onOk() {
http.post(department.delRole, { roleId: selectRoleRef.value.roleId }).then(() => {
getUserTree({ deptId: selectRef.value.deptInfo.deptId });
clearRoleData();
// select
roleTreeSelectedKeys.value = [];
selectRoleRef.value = '';
NsMessage.success('操作成功');
});
},
class: 'test',
});
};
watchEffect(() => {
console.log(deptTreeSelectedKeys.value, 'deptTreeData.value');
});
const clearDeptData = () => {
formData.value = {};
@ -452,7 +470,7 @@
http
.post(permission.queryDeptPermission, { deptId: selectRef.value?.deptInfo.deptId })
.then((res) => {
ApartcheckedKeys.value = res.data
deptcheckedKeys.value = res.data
?.filter((item) => !item.halfCheck)
.map((item) => {
return item.permissionId;
@ -466,7 +484,7 @@
http
.post(permission.queryRolePermission, { roleId: selectRoleRef.value?.roleId })
.then((res) => {
UsercheckedKeys.value = res.data
roleCheckedKeys.value = res.data
?.filter((item) => !item.halfCheck)
.map((item) => {
return item.permissionId;
@ -502,18 +520,19 @@
const { selected } = info;
if (!selectedKeys?.length) return;
selectKey.value = [info.node.key];
deptTreeSelectedKeys.value = [info.node.key];
selectRef.value = info.node.dataRef;
//
if (!selectRef.value.hasOwnProperty('own')) {
formData.value = cloneDeep(info.node.dataRef.deptInfo);
} else {
activeKey.value = 1;
currentOrgRef.value = selectRef.value;
formData.value = {};
}
getDeptPermission();
ApartcheckedKeys.value = [];
deptcheckedKeys.value = [];
};
/**
@ -536,10 +555,10 @@
// roleDisabled.value = !selected;
if (!selectedKeys?.length) return;
selectRoleKey.value = selectedKeys[0];
roleTreeSelectedKeys.value = [info.node.key];
selectRoleRef.value = info.node.dataRef;
roleFormData.value = cloneDeep(info.node.dataRef);
UsercheckedKeys.value = [];
roleCheckedKeys.value = [];
getRolePermission();
getRolePermissionTree({ deptId: selectRef.value.deptInfo.deptId });
};
@ -565,7 +584,7 @@
opMap.fuc &&
opMap.fuc(formData.value).then(() => {
getTree();
clearDeptData();
opMap.type !== 'editDpet' && clearDeptData();
disabled.value = true;
});
}
@ -578,15 +597,16 @@
};
//
const UserSure = () => {
const roleSure = () => {
const typeArr = ['addUserSon', 'addUser', 'editRole'];
if (roleActiveKey.value === 1) {
if (typeArr.includes(opMap.type)) {
opMap.fuc &&
opMap.fuc(roleFormData.value).then(() => {
getUserTree();
clearRoleData();
opMap.type !== 'editRole' && clearRoleData();
roleDisabled.value = !roleDisabled.value;
NsMessage.success('操作成功');
});
}
} else {

34
hx-ai-intelligent/src/view/organizationManage/usermanage/config.ts

@ -1,12 +1,8 @@
import { mockData } from './mock';
import { cloneDeep } from 'lodash-es';
import { Modal } from 'ant-design-vue';
import { createVNode, ref } from 'vue';
import { NsMessage } from '/nerv-lib/component';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { ref } from 'vue';
import { http } from '/nerv-lib/util';
import { origanizemanage } from '/@/api/origanizemanage';
export const formConfig = [
export const formConfig = (disabled) => {
return ref([
{
field: 'field111',
component: 'NsChildForm',
@ -20,6 +16,7 @@ export const formConfig = [
componentProps: {
placeholder: '请输入账号',
maxLength: 20,
disabled,
},
rules: [
{
@ -79,6 +76,13 @@ export const formConfig = [
placeholder: '请输入邮箱',
maxLength: 30,
},
rules: [
{
pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
message: '请输入正确的邮箱格式',
trigger: 'blur',
},
],
},
{
label: '组织关系',
@ -93,7 +97,8 @@ export const formConfig = [
],
},
},
];
]);
};
const options = ref([]);
const getUserPerList = (transform, params = {}) => {
@ -105,16 +110,6 @@ const getUserPerList = (transform, params = {}) => {
});
};
export const formConfig2 = (casData: any) => {
// const transForm = (data) => {
// data['label'] = data.orgName;
// data['value'] = data.orgId;
// data['isLeaf'] = false;
// data['level'] = 1;
// return data;
// };
// getUserPerList(transForm).then((res) => {
// options.value = [...res];
// });
return ref([
{
field: 'information',
@ -129,9 +124,6 @@ export const formConfig2 = (casData: any) => {
});
return labels.join('/');
},
// defaultValue: [1, 1, 3],
// options: options,
// changeOnSelect: true,
loadData: (selectedOptions, options) => {
console.log(selectedOptions, options, 'selectedOptions, options');

63
hx-ai-intelligent/src/view/organizationManage/usermanage/index.vue

@ -73,23 +73,26 @@
<a-modal
title="用户信息"
:width="600"
:width="520"
:visible="addformvisible"
cancelText="取消"
@ok="handleOk"
@cancel="handleClose">
<ns-form ref="modalFormRef" :schemas="formSchema2" :model="formData2" formLayout="vertical" />
<ns-form
ref="modalFormRef"
:wrapperCol="{ span: 24 }"
:schemas="formSchema2"
:model="formData2"
formLayout="vertical" />
</a-modal>
</div>
</template>
<script lang="ts">
import { computed, createVNode, defineComponent, nextTick, reactive, ref } from 'vue';
import { computed, createVNode, defineComponent, reactive, ref, watchEffect } from 'vue';
import { http } from '/nerv-lib/util/http';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { cloneDeep } from 'lodash-es';
import { NsMessage, NsModal } from '/nerv-lib/component';
import { formConfig, formConfig2 } from './config';
import { origanizemanage, department } from '/@/api/origanizemanage';
import { origanizemanage } from '/@/api/origanizemanage';
export default defineComponent({
name: 'OrderListIndex',
@ -97,14 +100,24 @@
const mainRef = ref();
const data = reactive({});
let formData = ref({});
let formData2 = ref({ userRoleList: [1, 1, 3] });
let formData2 = ref({});
const formRef = ref();
const modalFormRef = ref();
const visible = ref(false);
const addformvisible = ref(false);
const searchValue = ref<string>('');
const searchValue2 = ref<string>('');
const formSchema = formConfig;
const disabled = ref(false);
const opMap: any = ref({
type: 'add',
fuc: () => {},
record: {},
});
watchEffect(() => {
disabled.value = opMap.value.type === 'edit';
});
const formSchema = formConfig(disabled);
const casData = ref([]);
const formSchema2 = formConfig2(casData);
const treeData = ref([]);
@ -120,7 +133,8 @@
};
//
fetch(origanizemanage.queryOrgTree).then((res) => {
const getOrgTree = (params?) => {
fetch(origanizemanage.queryOrgTree, params).then((res) => {
const otherOrg = res.data[0].listOrg;
//
treeData.value = res.data;
@ -128,22 +142,16 @@
treeData.value.push({ orgInfo: item } as never);
});
});
};
getOrgTree();
//
fetch(origanizemanage.queryDeptTree).then((res) => {
treeData2.value = res.data;
});
const opMap: any = {
type: 'add',
fuc: () => {},
record: {},
};
const onSearch = () => {
console.log(searchValue.value);
fetch(origanizemanage.queryOrgTree, { orgName: searchValue.value, orgId }).then((res) => {
treeData.value = res.data;
});
getOrgTree({ orgName: searchValue.value, orgId });
};
const onSearch2 = () => {
console.log(searchValue2.value);
@ -190,7 +198,8 @@
return;
}
opMap.fuc && opMap.fuc({ ...formData.value, userRoleList: userAuthList.value, orgId });
opMap.value.fuc &&
opMap.value.fuc({ ...formData.value, userRoleList: userAuthList.value, orgId });
visible.value = false;
});
};
@ -225,8 +234,14 @@
name: 'userAdd',
type: 'primary',
handle: () => {
opMap.type = 'add';
opMap.fuc = (formData: any) => {
opMap.value.type = 'add';
setTimeout(() => {
formData.value = {
orgName: JSON.parse(sessionStorage.getItem('userInfo')).orgName,
};
userAuthList.value.splice(0);
});
opMap.value.fuc = (formData: any) => {
http.post(origanizemanage.addUser, formData).then(() => {
mainRef.value?.nsTableRef.reload();
visible.value = false;
@ -353,8 +368,8 @@
formData.value = record;
userAuthList.value.push(...record.userRoleInfos);
}, 10);
opMap.type = 'edit';
opMap.fuc = (formData: any) => {
opMap.value.type = 'edit';
opMap.value.fuc = (formData: any) => {
http.post(origanizemanage.editUser, formData).then(() => {
mainRef.value?.nsTableRef.reload();
visible.value = false;
@ -466,7 +481,7 @@
params: {},
},
// pagination: { defaultPageSize: 10 },
rowKey: 'id',
rowKey: 'userId',
});
const tableConfig2 = {
// api: {

Loading…
Cancel
Save