diff --git a/server/cmd/datas/init.go b/server/cmd/datas/init.go
index d37bc013..b1841ea7 100644
--- a/server/cmd/datas/init.go
+++ b/server/cmd/datas/init.go
@@ -22,6 +22,7 @@ func InitMysqlData(db *gorm.DB) {
err = InitSysDataAuthorityId(db)
err = InitSysDictionaryDetail(db)
err = InitExaFileUploadAndDownload(db)
+ err = InitWkProcess(db)
if err != nil {
color.Warn.Printf("[Mysql]-->初始化数据失败,err: %v\n", err)
os.Exit(0)
diff --git a/server/cmd/datas/wf_process.go b/server/cmd/datas/wf_process.go
new file mode 100644
index 00000000..f78b0c33
--- /dev/null
+++ b/server/cmd/datas/wf_process.go
@@ -0,0 +1,56 @@
+package datas
+
+import (
+ "gin-vue-admin/global"
+ "gin-vue-admin/model"
+ "gorm.io/gorm"
+ "time"
+)
+
+var WorkflowProcess = []model.WorkflowProcess{
+ {ID: "leaveFlow", CreatedAt: time.Now(), UpdatedAt: time.Now(), Name: "leaveFlow", Clazz: "process", Label: "请假流程(演示)", HideIcon: false, Description: "请假流程演示", View: "view/iconList/index.vue"},
+}
+var WorkflowNodes = []model.WorkflowNode{
+ {ID: "end1603681358043", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "end", Label: "请假失败", Type: "end-node", Shape: "end-node", Description: "", View: "view/exa_wf_leave/exa_wf_leaveFrom.vue", X: 302, Y: 545.5, HideIcon: false, AssignType: "", AssignValue: "", Success: false},
+ {ID: "end1603681360882", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "end", Label: "请假成功", Type: "end-node", Shape: "end-node", Description: "请假完成,具体结果等待提交", View: "view/exa_wf_leave/exa_wf_leaveFrom.vue", X: 83.5, Y: 546, HideIcon: true, AssignType: "", AssignValue: "", Success: false},
+ {ID: "start1603681292875", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "start", Label: "发起请假", Type: "start-node", Shape: "start-node", Description: "发起一个请假流程", View: "view/exa_wf_leave/exa_wf_leaveFrom.vue", X: 201, Y: 109, HideIcon: false, AssignType: "", AssignValue: "", Success: false},
+ {ID: "userTask1603681299962", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "userTask", Label: "审批", Type: "user-task-node", Shape: "user-task-node", Description: "审批会签", DueDate: time.Date(2020, 11, 20, 0, 0, 0, 0, nil), View: "view/exa_wf_leave/exa_wf_leaveFrom.vue", X: 202, Y: 320.5, HideIcon: false, AssignType: "user", AssignValue: ",1,2,", Success: false},
+}
+var WorkflowEdge = []model.WorkflowEdge{
+ {ID: "flow1604985849039", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "flow", Source: "start1603681292875", Target: "userTask1603681299962", SourceAnchor: 1, TargetAnchor: 3, Shape: "flow-polyline-round", Label: "", HideIcon: false, ConditionExpression: "", Reverse: false},
+ {ID: "flow1604985879574", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "flow", Source: "userTask1603681299962", Target: "end1603681360882", SourceAnchor: 0, TargetAnchor: 2, Shape: "flow-polyline-round", Label: "同意", HideIcon: false, ConditionExpression: "yes", Reverse: false},
+ {ID: "flow1604985881207", CreatedAt: time.Now(), UpdatedAt: time.Now(), WorkflowProcessID: "leaveFlow", Clazz: "flow", Source: "userTask1603681299962", Target: "end1603681358043", SourceAnchor: 2, TargetAnchor: 2, Shape: "flow-polyline-round", Label: "不同意", HideIcon: false, ConditionExpression: "no", Reverse: false},
+}
+var WorkflowStartPoint = []model.WorkflowStartPoint{
+ {WorkflowEdgeID: "flow1604985849039", GVA_MODEL: global.GVA_MODEL{ID: 31, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 137, Y: 201, Index: 1},
+ {WorkflowEdgeID: "flow1604985879574", GVA_MODEL: global.GVA_MODEL{ID: 32, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 320.5, Y: 174, Index: 0},
+ {WorkflowEdgeID: "flow1604985881207", GVA_MODEL: global.GVA_MODEL{ID: 33, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 320.5, Y: 230, Index: 2},
+}
+
+var WorkflowEndPoint = []model.WorkflowEndPoint{
+ {WorkflowEdgeID: "flow1604985849039", GVA_MODEL: global.GVA_MODEL{ID: 31, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 270, Y: 202, Index: 3},
+ {WorkflowEdgeID: "flow1604985879574", GVA_MODEL: global.GVA_MODEL{ID: 32, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 518, Y: 83.5, Index: 2},
+ {WorkflowEdgeID: "flow1604985881207", GVA_MODEL: global.GVA_MODEL{ID: 33, CreatedAt: time.Now(), UpdatedAt: time.Now()}, X: 517.5, Y: 302, Index: 2},
+}
+
+func InitWkProcess(db *gorm.DB) (err error) {
+ return db.Transaction(func(tx *gorm.DB) error {
+ if err := tx.Create(&WorkflowProcess).Error; err != nil { // 遇到错误时回滚事务
+ return err
+ }
+ if err := tx.Create(&WorkflowNodes).Error; err != nil { // 遇到错误时回滚事务
+ return err
+ }
+ if err := tx.Create(&WorkflowEdge).Error; err != nil { // 遇到错误时回滚事务
+ return err
+ }
+ if err := tx.Create(&WorkflowStartPoint).Error; err != nil { // 遇到错误时回滚事务
+ return err
+ }
+ if err := tx.Create(&WorkflowEndPoint).Error; err != nil { // 遇到错误时回滚事务
+ return err
+ }
+
+ return nil
+ })
+}
diff --git a/server/initialize/router.go b/server/initialize/router.go
index f4b9397c..bd907963 100644
--- a/server/initialize/router.go
+++ b/server/initialize/router.go
@@ -42,7 +42,6 @@ func Routers() *gin.Engine {
router.InitSysOperationRecordRouter(ApiGroup) // 操作记录
router.InitEmailRouter(ApiGroup) // 邮件相关路由
router.InitWorkflowProcessRouter(ApiGroup) // 工作流创建相关接口
- router.InitExaWfLeaveRouter(ApiGroup) // 工作流创建相关接口
global.GVA_LOG.Info("router register success")
return Router
diff --git a/server/model/wf_process.go b/server/model/wf_process.go
index 6acf4a53..a53a6df7 100644
--- a/server/model/wf_process.go
+++ b/server/model/wf_process.go
@@ -145,16 +145,14 @@ type WorkflowEdge struct {
type WorkflowStartPoint struct {
WorkflowEdgeID string
- WorkflowPoint
+ global.GVA_MODEL
+ X float64 `json:"x"`
+ Y float64 `json:"y"`
+ Index int `json:"index"`
}
type WorkflowEndPoint struct {
WorkflowEdgeID string
- WorkflowPoint
-}
-
-//
-type WorkflowPoint struct {
global.GVA_MODEL
X float64 `json:"x"`
Y float64 `json:"y"`
diff --git a/web/src/api/workflowProcess.js b/web/src/api/workflowProcess.js
index 157251fc..43c883db 100644
--- a/web/src/api/workflowProcess.js
+++ b/web/src/api/workflowProcess.js
@@ -113,4 +113,52 @@ export const findWorkflowStep = (params) => {
method: 'get',
params
})
+}
+
+
+// @Tags ExaWfLeave
+// @Summary 创建ExaWfLeave
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /workflowProcess/startWorkflow [post]
+export const startWorkflow = (data, params = { businessType: data.wf.businessType }) => {
+ return service({
+ url: "/workflowProcess/startWorkflow",
+ method: 'post',
+ data,
+ params
+ })
+}
+
+
+// @Tags WorkflowProcess
+// @Summary 我发起的工作流
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /workflowProcess/getMyStated [get]
+export const getMyStated = () => {
+ return service({
+ url: "/workflowProcess/getMyStated",
+ method: 'get',
+ })
+}
+
+
+
+// @Tags WorkflowProcess
+// @Summary 我发起的工作流
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /workflowProcess/getMyNeed [get]
+export const getMyNeed = () => {
+ return service({
+ url: "/workflowProcess/getMyNeed",
+ method: 'get',
+ })
}
\ No newline at end of file
diff --git a/web/src/components/gva-wfd/locales/zh-CN.js b/web/src/components/gva-wfd/locales/zh-CN.js
index 69753b78..89d17a2d 100644
--- a/web/src/components/gva-wfd/locales/zh-CN.js
+++ b/web/src/components/gva-wfd/locales/zh-CN.js
@@ -36,7 +36,7 @@ export default {
'signalEvent': '信号节点',
'signalEvent.signal': '信号名',
'sequenceFlow': '连接线',
- 'sequenceFlow.expression': '条件表达式',
+ 'sequenceFlow.expression': '条件参数',
'sequenceFlow.seq': '序号',
'sequenceFlow.reverse': '反向',
'startEvent': '开始节点',
diff --git a/web/src/view/workflow/userList/need.vue b/web/src/view/workflow/userList/need.vue
new file mode 100644
index 00000000..4a344b3b
--- /dev/null
+++ b/web/src/view/workflow/userList/need.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/view/workflow/userList/started.vue b/web/src/view/workflow/userList/started.vue
new file mode 100644
index 00000000..f0f40755
--- /dev/null
+++ b/web/src/view/workflow/userList/started.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/src/view/workflow/workflowCreate/workflowCreate.vue b/web/src/view/workflow/workflowCreate/workflowCreate.vue
index dcb3f3af..7fcb2be6 100644
--- a/web/src/view/workflow/workflowCreate/workflowCreate.vue
+++ b/web/src/view/workflow/workflowCreate/workflowCreate.vue
@@ -68,174 +68,8 @@ export default {
lang: "zh",
done:false,
demoData: {
- nodes: [
- {
- clazz: "start",
- label: "发起请假",
- type: "start-node",
- shape: "start-node",
- x: 110,
- y: 195,
- id: "start1603681292875",
- style: {}
- },
- {
- clazz: "parallelGateway",
- label: "会签",
- type: "parallel-gateway-node",
- shape: "parallel-gateway-node",
- x: 228,
- y: 195,
- id: "parallelGateway1603681296419",
- style: {}
- },
- {
- clazz: "userTask",
- label: "审批人1",
- type: "user-task-node",
- shape: "user-task-node",
- x: 372,
- y: 84,
- id: "userTask1603681299962",
- style: {},
- assignValue: [1],
- assignType: "user"
- },
- {
- clazz: "userTask",
- label: "审批人2",
- type: "user-task-node",
- shape: "user-task-node",
- x: 370,
- y: 321,
- id: "userTask1603681302372",
- style: {},
- assignValue: [2],
- assignType: "user"
- },
- {
- clazz: "parallelGateway",
- label: "会签结果检测",
- type: "parallel-gateway-node",
- shape: "parallel-gateway-node",
- x: 519,
- y: 195,
- id: "parallelGateway1603681338222",
- style: {}
- },
- {
- clazz: "end",
- label: "请假失败",
- type: "end-node",
- shape: "end-node",
- x: 704,
- y: 317,
- id: "end1603681358043",
- style: {}
- },
- {
- clazz: "end",
- label: "请假成功",
- type: "end-node",
- shape: "end-node",
- x: 706.5,
- y: 55.5,
- id: "end1603681360882",
- style: {}
- }
- ],
- edges: [
- {
- id: "flow1603681320738",
- clazz: "flow",
- source: "parallelGateway1603681296419",
- target: "userTask1603681299962",
- sourceAnchor: 0,
- targetAnchor: 3,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 228, y: 169, index: 0 },
- endPoint: { x: 321.5, y: 84, index: 3 }
- },
- {
- id: "flow1603681321969",
- clazz: "flow",
- source: "parallelGateway1603681296419",
- target: "userTask1603681302372",
- sourceAnchor: 2,
- targetAnchor: 3,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 228, y: 221, index: 2 },
- endPoint: { x: 319.5, y: 321, index: 3 }
- },
- {
- id: "flow1603681323274",
- clazz: "flow",
- source: "start1603681292875",
- target: "parallelGateway1603681296419",
- sourceAnchor: 1,
- targetAnchor: 3,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 138, y: 195, index: 1 },
- endPoint: { x: 202, y: 195, index: 3 },
- label: "发起",
- conditionExpression: "complete"
- },
- {
- id: "flow1603681341777",
- clazz: "flow",
- source: "userTask1603681299962",
- target: "parallelGateway1603681338222",
- sourceAnchor: 1,
- targetAnchor: 3,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 422.5, y: 84, index: 1 },
- endPoint: { x: 493, y: 195, index: 3 }
- },
- {
- id: "flow1603681343425",
- clazz: "flow",
- source: "userTask1603681302372",
- target: "parallelGateway1603681338222",
- sourceAnchor: 1,
- targetAnchor: 3,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 420.5, y: 321, index: 1 },
- endPoint: { x: 493, y: 195, index: 3 }
- },
- {
- id: "flow1603681362913",
- clazz: "flow",
- source: "parallelGateway1603681338222",
- target: "end1603681360882",
- sourceAnchor: 0,
- targetAnchor: 2,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 519, y: 169, index: 0 },
- endPoint: { x: 678.5, y: 55.5, index: 2 },
- conditionExpression: "complete",
- label: "所有人同意"
- },
- {
- id: "flow1603681392729",
- clazz: "flow",
- source: "parallelGateway1603681338222",
- target: "end1603681358043",
- sourceAnchor: 2,
- targetAnchor: 2,
- shape: "flow-polyline-round",
- style: {},
- startPoint: { x: 519, y: 221, index: 2 },
- endPoint: { x: 676, y: 317, index: 2 },
- conditionExpression: "reject",
- label: "任何一人拒绝"
- }
- ],
+ nodes: [],
+ edges: []
},
wkType:"create",
users: [],
@@ -249,17 +83,8 @@ export default {
signalDefs: [],
messageDefs: [],
},
- groups: [
- { id: "1", name: "组1" },
- { id: "2", name: "组2" },
- { id: "3", name: "组3" }
- ],
- categorys: [
- { id: "1", name: "分类1" },
- { id: "2", name: "分类2" },
- { id: "3", name: "分类3" },
- { id: "4", 分组: "分组4" }
- ]
+ groups: [],
+ categorys: []
};
},
methods: {
@@ -271,7 +96,7 @@ export default {
processModel.nodes = JSON.parse(JSON.stringify(obj.nodes))
processModel.nodes.map(item=>{
if(item.assignValue){
- item.assignValue = String(item.assignValue)
+ item.assignValue = ","+String(item.assignValue)+","
}
})
if(!processModel.id){
@@ -328,7 +153,7 @@ export default {
if(res.code == 0){
res.data.reworkflowProcess.nodes.map(item=>{
if(item.assignValue){
- const watiUseArr = item.assignValue.split(",")
+ const watiUseArr =item.assignValue.substr(1,item.assignValue.length-2).split(",")
if(item.assignType == 'user'){
item.assignValue = []
watiUseArr.map(i => {