明树Git Lab

Commit 708e181d authored by yangyajing's avatar yangyajing

资源库管理、投资目标责任书

parent d57c83ce
Pipeline #105990 passed with stage
in 16 seconds
......@@ -35,37 +35,37 @@ const routes = [
path: '/projectDraft',
name: 'projectDraft',
title: '项目遴选',
component: () => import('@/views/managePage/projectDraft.vue')
component: () => import('@/views/projectManage/projectDraft.vue')
},
{
path: '/projectSetUp',
name: 'projectSetUp',
title: '项目立项',
component: () => import('@/views/managePage/projectSetUp.vue')
component: () => import('@/views/projectManage/projectSetUp.vue')
},
{
path: '/projectArgument',
name: 'projectArgument',
title: '项目论证',
component: () => import('@/views/managePage/projectArgument.vue')
component: () => import('@/views/projectManage/projectArgument.vue')
},
{
path: '/projectDecision',
name: 'projectDecision',
title: '项目决策',
component: () => import('@/views/managePage/projectDecision.vue')
component: () => import('@/views/projectManage/projectDecision.vue')
},
{
path: '/projectAllPage',
name: 'projectAllPage',
title: '项目档案库',
component: () => import('@/views/managePage/projectAllPage.vue')
component: () => import('@/views/projectManage/projectAllPage.vue')
},
{
path: '/addProject/:type',
name: 'addProject',
title: '新增项目',
component: () => import('@/views/managePage/addProject.vue')
component: () => import('@/views/projectManage/addProject.vue')
}
]
},
......@@ -93,37 +93,43 @@ const routes = [
path: '/templateManage',
name: 'templateManage',
title: '模板管理',
component: () => import('@/views/managePage/templateManage.vue')
component: () => import('@/views/projectManage/templateManage.vue')
},
{
path: '/systemManage',
name: '系统管理',
title: 'systemManage',
name: 'systemManage',
title: '系统管理',
meta: { menuName: '系统管理' },
children: [
{
path: 'departManage',
name: '部门管理',
title: 'departManage',
name: 'departManage',
title: '部门管理',
component: () => import('@/views/systemManage/departManage.vue')
},
{
path: 'userManage',
name: '用户管理',
title: 'userManage',
name: 'userManage',
title: '用户管理',
component: () => import('@/views/systemManage/userManage.vue')
},
{
path: 'roleManage',
name: '角色管理',
title: 'roleManage',
name: 'roleManage',
title: '角色管理',
component: () => import('@/views/systemManage/roleManage.vue')
},
{
path: 'menuManage',
name: '菜单管理',
title: 'menuManage',
name: 'menuManage',
title: '菜单管理',
component: () => import('@/views/systemManage/menuManage.vue')
},
{
path: 'resourceManage',
name: 'resourceManage',
title: '资源库管理',
component: () => import('@/views/systemManage/resourceManage.vue')
}
]
},
......
.manage-container{
.system-manage-container{
padding: 20px;
background: rgba(157, 188, 218, 0.1);
height: 100%;
display: flex;
flex-direction: column;
background: rgba(157, 188, 218, 0.1);
box-sizing: border-box;
}
.manage-header{
.system-manage-header{
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 12px 20px 0;
......@@ -20,6 +23,12 @@
}
}
}
.system-manage-content{
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.manage-content{
flex: 1;
height: 0;
......@@ -39,7 +48,7 @@
}
}
}
.project-manage{
.manage{
&-container{
width: 100%;
height: 100%;
......@@ -48,16 +57,16 @@
display: flex;
flex-direction: column;
background: rgba(157, 188, 218, 0.1);
.manage-container{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
}
&-wrap{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
&-header{
......@@ -111,7 +120,7 @@
flex-direction: column;
.tabs-content{
flex: 1;
max-height: 100%;
height: 0;
}
.el-tabs{
height: 100%;
......@@ -121,7 +130,7 @@
.tab-content{
height: 100%;
overflow: auto;
padding: 0 20px;
padding: 0 10px;
.col-title{
height: 24px;
line-height: 24px;
......@@ -197,4 +206,55 @@
height: 100%;
}
}
}
\ No newline at end of file
}
.add-dialog{
.el-tree{
width: 100%;
}
}
.tree-content {
overflow: auto;
position: relative;
.el-tree {
max-height: 700px;
overflow-y: auto;
// 只有当内容超过700px时才显示滚动条
&:not(:hover) {
scrollbar-width: none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
display: none;
}
}
&:hover {
scrollbar-width: thin;
&::-webkit-scrollbar {
display: block;
width: 6px;
}
&::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, 0.3);
border-radius: 3px;
}
&::-webkit-scrollbar-track {
background-color: transparent;
}
}
}
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
.node-name{
flex: 1;
width: 0;
-webkit-background-clip: text;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
\ No newline at end of file
This diff is collapsed.
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addStatement">新增</el-button>
</div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="showFieldsModal">表头筛选</el-button>
</div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -161,6 +161,11 @@
}
})
};
onMounted(() => {
getTableFields();
getProjectData();
})
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -184,10 +189,6 @@
}
})
}
onMounted(() => {
getTableFields();
getProjectData();
})
</script>
<style scoped lang="less">
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right"></div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -96,6 +96,10 @@
}
})
};
onMounted(() => {
getProjectData();
})
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -130,9 +134,6 @@
}
})
};
onMounted(() => {
getProjectData();
})
</script>
<style scoped lang="less">
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right"></div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -96,6 +96,9 @@
}
})
};
onMounted(() => {
getProjectData();
})
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -119,9 +122,6 @@
}
})
};
onMounted(() => {
getProjectData();
})
</script>
<style scoped lang="less">
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addProject">新增</el-button>
</div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -99,6 +99,9 @@
}
})
};
onMounted(() => {
getProjectData();
})
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -153,9 +156,6 @@
})
}).catch(() => {})
}
onMounted(() => {
getProjectData();
})
</script>
<style scoped lang="less">
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right"></div>
</div>
<div class="project-manage-content" v-loading="loading">
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -103,6 +103,9 @@
}
})
};
onMounted(() => {
getProjectData();
})
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -145,9 +148,6 @@
}
});
};
onMounted(() => {
getProjectData();
})
</script>
<style scoped lang="less">
......
<template>
<div class="project-manage-container">
<div class="manage-container">
<div class="project-manage-header">
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addItem">新增</el-button>
<el-button type="primary" @click="exportData">导出</el-button>
</div>
</div>
<div class="project-manage-content">
<div class="manage-content">
<el-table :data="tableData" style="width: 100%; height: 100%;" empty-text="暂无数据" border>
<el-table-column type="index" width="50" />
<el-table-column v-for="column in tableColumns" :key="column.prop"
......
......@@ -152,19 +152,23 @@ const handleDelete = (data) => {
const saveDepartForm = () => {
let url = departFormData.value.id ? "updateDepart" : "createDepart"
proxy.$post({
url: "/api/user/depart/" + url,
data: departFormData.value,
callback: (data) => {
ElMessage.success(dialogTitle.value + "成功");
cancelDepartForm();
loadTreeData();
},
error: (err) => {
ElMessage.error("组织添加失败:", err);
},
});
departForm.value.validate(valid => {
if (valid) {
let url = departFormData.value.id ? "updateDepart" : "createDepart"
proxy.$post({
url: "/api/user/depart/" + url,
data: departFormData.value,
callback: (data) => {
ElMessage.success(dialogTitle.value + "成功");
cancelDepartForm();
loadTreeData();
},
error: (err) => {
ElMessage.error("组织添加失败:", err);
},
});
}
})
};
const cancelDepartForm = () => {
departForm.value.resetFields();
......@@ -300,6 +304,7 @@ onMounted(() => {
</script>
<style scoped lang="less">
@import "@/styles/manage.less";
.depart-manage {
padding: 20px;
background: rgba(157, 188, 218, 0.1);
......@@ -324,53 +329,8 @@ onMounted(() => {
.tree-content {
flex: 1;
height: 0;
overflow: auto;
margin-top: 20px;
position: relative;
.el-tree {
max-height: 700px;
overflow-y: auto;
// 只有当内容超过700px时才显示滚动条
&:not(:hover) {
scrollbar-width: none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
display: none;
}
}
&:hover {
scrollbar-width: thin;
&::-webkit-scrollbar {
display: block;
width: 6px;
}
&::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, 0.3);
border-radius: 3px;
}
&::-webkit-scrollbar-track {
background-color: transparent;
}
}
}
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
.node-name{
flex: 1;
width: 0;
-webkit-background-clip: text;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
.user-content {
flex: 1;
width: 0;
......
<template>
<div class="manage-container menu-manage" v-loading="loading">
<div class="manage-content table-container">
<div class="system-manage-container menu-manage" v-loading="loading">
<div class="system-manage-content manage-content">
<common-table
:data="tableData"
:columns="tableColumns"
......@@ -186,28 +186,4 @@ onMounted(() => {
<style scoped lang="less">
@import "@/styles/manage.less";
.menu-manage {
padding: 20px;
background: rgba(157, 188, 218, 0.1);
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
.search-form {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
margin-bottom: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
flex-shrink: 0;
}
.table-container {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
}
</style>
This diff is collapsed.
<template>
<div class="manage-container role-manage" v-loading="loading">
<div class="manage-header">
<div class="system-manage-container role-manage" v-loading="loading">
<div class="system-manage-header">
<div class="header-left">
<el-form :inline="true" :model="searchForm">
<el-form-item label="名称查询">
......@@ -19,7 +19,7 @@
</el-form>
</div>
</div>
<div class="manage-content table-container">
<div class="system-manage-content manage-content">
<common-table
:autoHeight="true"
:maxRows="10"
......@@ -47,7 +47,7 @@
</common-table>
</div>
<el-dialog
<el-dialog class="add-dialog"
v-model="dialogVisible"
:title="dialogTitle"
width="400px"
......@@ -260,7 +260,7 @@ const saveRoleForm = () => {
},
error: (err) => {
ElMessage.error(dialogTitle.value + "失败:", err);
},
}
});
}
})
......@@ -338,30 +338,6 @@ onMounted(() => {
<style scoped lang="less">
@import "@/styles/manage.less";
.role-manage {
padding: 20px;
background: rgba(157, 188, 218, 0.1);
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
.search-form {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
margin-bottom: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
flex-shrink: 0;
}
.table-container {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
}
.el-tree {
max-height: 500px;
overflow-y: auto;
......
<template>
<div class="manage-container user-manage" v-loading="loading">
<div class="manage-header">
<div class="system-manage-container user-manage" v-loading="loading">
<div class="system-manage-header">
<div class="header-left">
<el-form :inline="true" :model="searchForm">
<el-form-item label="关键字查询">
......@@ -19,7 +19,7 @@
</el-form>
</div>
</div>
<div class="manage-content table-container">
<div class="system-manage-content manage-content">
<common-table
:autoHeight="true"
:data="tableData"
......@@ -198,14 +198,11 @@ const tableColumns = [
// 对话框相关
const dialogVisible = ref(false);
const dialogTitle = ref("新增用户");
const isEdit = ref(false);
const editIndex = ref(-1);
// 用户表单数据
const userForm = ref();
const userFormData = ref({});
const departmentData = ref([]);
const positionsData = ref([]);
const rolesData = ref([]);
const loadDepartmentData = () => {
......@@ -219,18 +216,6 @@ const loadDepartmentData = () => {
});
};
// 岗位下拉数据
const loadPositionsData = () => {
proxy.$post({
url: "/api/user/position/listPosition",
data: {},
callback: (data) => {
positionsData.value = data.rows;
},
error: (err) => {},
});
};
// 角色下拉数据
const loadRolesData = () => {
proxy.$post({
......@@ -274,15 +259,12 @@ const handleCurrentPageChange = (page) => {
// 新增用户
const handleAdd = () => {
isEdit.value = false;
dialogTitle.value = "新增用户";
dialogVisible.value = true;
};
// 编辑
const handleEdit = (row, index) => {
isEdit.value = true;
dialogTitle.value = "编辑用户";
editIndex.value = index;
proxy.$post({
url: "/api/user/manage/getUserInfo",
data: { id: row.id },
......@@ -399,30 +381,4 @@ onMounted(() => {
<style scoped lang="less">
@import "@/styles/manage.less";
.user-manage {
padding: 8px 8px 20px 8px;
background: rgba(157, 188, 218, 0.1);
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
.search-form {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 20px;
margin-bottom: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
flex-shrink: 0;
}
.table-container {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
padding-left: 0px;
padding-top: 2px;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment