introduce
The front-end and back-end separation project based on vue and springboot is a back-end management system, which can also be used as an OA system, and the demo environment address: https://www.zhoulang.site
System architecture
Springboot, Mysql, and MybatisPlus are the basic frameworks.
Use JWT and Redis to implement the login session feature.
The front-end uses the UI and has been modified to adapt to the back-end system. JDK1.8、Mysql5.7
Feature introduction
User management: Manage system access users to add, modify, lock, and reset passwords.
Organizational structure management: Maintain the relationship between departments, roles, and users of the system.
Parameter management: Configure key system parameters and modify, enable, or disable system functions.
Menu management: Configure the front-end dynamic routing menu.
Cache Information: provides an API for refreshing the system cache.
System Security Policy: controls the security of user login and password, as well as the security policy of the system access environment.
Attachment management: Manage attachments generated in the management system, such as user avatars, message attachments, etc.
Blacklist: manages the IP addresses of clients that are prohibited from accessing the system.
Permission management: Maintain system permissions.
System monitoring: records system operation logs.
Scheduled task management: dynamically manage the task scheduling of the system.
Activiti workflow
Message management system: Users can send emails and messages in the system, and support attachment uploading
For more features, please visit the demo environment experience!
Introduction to the organizational structure
The organizational structure in the system is divided into departments, roles, and users, all of which belong to the organizational structure objects, which are stored in a system organizational structure table and are distinguished by an organizational structure type. The relationship between them is maintained through an organizational structure relationship table, and users are placed under the department or role, and new subdepartments can be created under the department. There is a horizontal relationship between different roles, and there is no subordinate relationship.
In order to prompt the performance of the organization schema object query, the system caches the tree structure of the organization schema object when it starts, and directly goes to the cache tree for recursion during the query to find out all child nodes, or all parent nodes. When you make changes to the organizational structure, the cache is automatically refreshed.
Considering that the organizational structure selection function is used in many places, I encapsulated the front-end organizational structure selection control, which can select departments, roles, and users
Introduction to menu features
The system divides the menu into four categories:
Menu Type Menu description
Table of Contents The directory in which the menu is stored
Menu The menu page that can actually be accessed
Interface The access interface provided by the backend
Button A button that is visible on the front-end page
This four-level menu structure is designed to provide more fine-grained control over menu permissions.
Introduction to the permission system
The system has designed a general permission system, not only limited to menu permissions, the system only uses a permission table, you can support any permissions, and there is no need to design other permission tables. Users automatically inherit the permissions of the higher-level department or role, and can also have their own permissions. Provide a one-way permission query interface, and query the corresponding permissions according to the permission definition, permission type, and user ID. The following is an example of menu permissions:
If you can authorize the menu of a department, the users under the department automatically have the permissions of the department, the blue text represents the permissions directly granted to the authorization object, and the black text indicates that the permissions of the authorization object are inherited from the parent object.
The interface provides a button to clear its own permissions, and clicking it will delete all the own permissions of the authorized object, and will not affect the inherited permissions.
If there are 100 users under the department, and one of them wants to cancel some user permissions separately, then we can authorize the users separately at the same time to deny the permissions of the menu, when the checkbox of the menu is red, it means that the permission is denied, when the checkbox is unchecked, it means that there is no permission for the menu, and when the checkbox is selected, it means that the menu permission is owned.
Introducing the Activiti workflow
BPMN-JS process online designer, you can create a new process online and save it to the server
Process release and version control, you can view the historical version of the process after repeated releases
Process initiation, suspension, activation, termination, assignment, addition, attrition
For process task management, the system provides a built-in processing page, and dynamically displays the approval button according to the flow chart