diff --git a/klp-ui/src/api/hrm/index.js b/klp-ui/src/api/hrm/index.js
index b66bafe9..abd013ec 100644
--- a/klp-ui/src/api/hrm/index.js
+++ b/klp-ui/src/api/hrm/index.js
@@ -514,6 +514,74 @@ export function getFlowForm(formId) {
method: 'get'
})
}
+// 流程模板
+export function listFlowTemplate(query) {
+ return request({
+ url: '/hrm/flow/template/list',
+ method: 'get',
+ params: query
+ })
+}
+export function getFlowTemplate(tplId) {
+ return request({
+ url: `/hrm/flow/template/${tplId}`,
+ method: 'get'
+ })
+}
+export function addFlowTemplate(data) {
+ return request({
+ url: '/hrm/flow/template',
+ method: 'post',
+ data
+ })
+}
+export function updateFlowTemplate(data) {
+ return request({
+ url: '/hrm/flow/template',
+ method: 'put',
+ data
+ })
+}
+export function delFlowTemplate(tplIds) {
+ return request({
+ url: `/hrm/flow/template/${tplIds}`,
+ method: 'delete'
+ })
+}
+// 流程节点
+export function listFlowNode(query) {
+ return request({
+ url: '/hrm/flow/node/list',
+ method: 'get',
+ params: query
+ })
+}
+export function getFlowNode(nodeId) {
+ return request({
+ url: `/hrm/flow/node/${nodeId}`,
+ method: 'get'
+ })
+}
+export function addFlowNode(data) {
+ return request({
+ url: '/hrm/flow/node',
+ method: 'post',
+ data
+ })
+}
+export function updateFlowNode(data) {
+ return request({
+ url: '/hrm/flow/node',
+ method: 'put',
+ data
+ })
+}
+export function delFlowNode(nodeIds) {
+ return request({
+ url: `/hrm/flow/node/${nodeIds}`,
+ method: 'delete'
+ })
+}
// 薪酬
export function listPayPlan(query) {
diff --git a/klp-ui/src/views/hrm/flow/node.vue b/klp-ui/src/views/hrm/flow/node.vue
new file mode 100644
index 00000000..4475fa25
--- /dev/null
+++ b/klp-ui/src/views/hrm/flow/node.vue
@@ -0,0 +1,179 @@
+
+