|
@@ -2,21 +2,36 @@
|
|
|
<div>
|
|
|
<el-button
|
|
|
size="small"
|
|
|
- style="float:right;margin-top:6px;margin-right:6px;"
|
|
|
+ style="float: right; margin-top: 6px; margin-right: 6px"
|
|
|
@click="saveXML"
|
|
|
- >导出XML</el-button>
|
|
|
+ >导出XML</el-button
|
|
|
+ >
|
|
|
<el-button
|
|
|
size="small"
|
|
|
- style="float:right;margin-top:6px;margin-right:6px;"
|
|
|
+ style="float: right; margin-top: 6px; margin-right: 6px"
|
|
|
@click="saveImg"
|
|
|
- >导出图片</el-button>
|
|
|
+ >导出图片</el-button
|
|
|
+ >
|
|
|
<el-popover placement="bottom" width="160" v-model="visible">
|
|
|
<p>确认流程无误并保存吗</p>
|
|
|
<div style="text-align: right; margin: 0">
|
|
|
- <el-button size="mini" type="text" @click="visible = false">取消</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="save">确定</el-button>
|
|
|
+ <el-button size="mini" type="text" @click="visible = false"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="save"
|
|
|
+ :disabled="$route.query.type == 'view'"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
- <el-button size="small" slot="reference" style="float:right;margin-top:6px;margin-right:6px;">保存流程</el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ slot="reference"
|
|
|
+ style="float: right; margin-top: 6px; margin-right: 6px"
|
|
|
+ >保存流程</el-button
|
|
|
+ >
|
|
|
</el-popover>
|
|
|
|
|
|
<gva-wfd
|
|
@@ -29,7 +44,7 @@
|
|
|
:groups="groups"
|
|
|
:categorys="categorys"
|
|
|
:lang="lang"
|
|
|
- :processModel="processModel"
|
|
|
+ :propProcessModel="processModel"
|
|
|
/>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -41,7 +56,6 @@ import {
|
|
|
import gvaWfd from "@/components/gva-wfd";
|
|
|
import { getUserList } from "@/api/user";
|
|
|
import { getAuthorityList } from "@/api/authority";
|
|
|
-import edge from '../../../components/gva-wfd/shape/edge';
|
|
|
export default {
|
|
|
name: "Workflow",
|
|
|
components: {
|
|
@@ -52,7 +66,179 @@ export default {
|
|
|
visible: false,
|
|
|
lang: "zh",
|
|
|
done:false,
|
|
|
- demoData: {},
|
|
|
+ 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: "任何一人拒绝"
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ },
|
|
|
+ wkType:"create",
|
|
|
+ users: [],
|
|
|
+ authorities: [],
|
|
|
processModel:{
|
|
|
id: '',
|
|
|
name: '',
|
|
@@ -62,8 +248,6 @@ export default {
|
|
|
signalDefs: [],
|
|
|
messageDefs: [],
|
|
|
},
|
|
|
- users: [],
|
|
|
- authorities: [],
|
|
|
groups: [
|
|
|
{ id: "1", name: "组1" },
|
|
|
{ id: "2", name: "组2" },
|
|
@@ -81,34 +265,27 @@ export default {
|
|
|
async save() {
|
|
|
this.visible = false;
|
|
|
const obj = this.$refs["wfd"].graph.save()
|
|
|
- const processModel = this.processModel
|
|
|
- const nodeMap={}
|
|
|
-
|
|
|
- obj.edges.map(item=>{
|
|
|
- if(nodeMap[item.source]){
|
|
|
- nodeMap[item.source].push(item)
|
|
|
- }else{
|
|
|
- nodeMap[item.source] = [item]
|
|
|
- }
|
|
|
- })
|
|
|
- obj.nodes.map(item=>{
|
|
|
- item.edges = nodeMap[item.id]
|
|
|
- })
|
|
|
+ const processModel = this.$refs["wfd"].processModel
|
|
|
+ processModel.edges = obj.edges
|
|
|
processModel.nodes = obj.nodes
|
|
|
if(!processModel.id){
|
|
|
this.$message({
|
|
|
- type:"error",
|
|
|
- message:"流程ID为必填项(点击空白处录入流程基本信息)"
|
|
|
- })
|
|
|
- return
|
|
|
+ type:"error",
|
|
|
+ message:"流程id必填,点击空白处填写流程基本信息"
|
|
|
+ })
|
|
|
+ return
|
|
|
}
|
|
|
- const res = await createWorkflowProcess(processModel)
|
|
|
- if(res.code == 0){
|
|
|
- this.$message({
|
|
|
- type:"success",
|
|
|
- message:"创建成功"
|
|
|
- })
|
|
|
- }
|
|
|
+ // if(this.$route.query.type == 'edit'){
|
|
|
+ // // 等待调用编辑功能
|
|
|
+ // }else{
|
|
|
+ const res = await createWorkflowProcess(processModel)
|
|
|
+ if(res.success){
|
|
|
+ this.$message({
|
|
|
+ type:"success",
|
|
|
+ message:"创建成功"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // }
|
|
|
},
|
|
|
saveXML() {
|
|
|
console.log(this.$refs["wfd"].graph.saveXML());
|
|
@@ -137,19 +314,16 @@ export default {
|
|
|
const res = await findWorkflowProcess({ id: this.$route.query.id });
|
|
|
this.disabled = this.$route.query.type == "view"
|
|
|
if(res.code == 0){
|
|
|
- const nodes = []
|
|
|
- const edges = []
|
|
|
- res.data.reworkflowProcess.nodes.map(item=>{
|
|
|
- edges.push(...item.edges)
|
|
|
- delete item.edges
|
|
|
- nodes.push(item)
|
|
|
- })
|
|
|
+ this.demoData.nodes = res.data.reworkflowProcess.nodes
|
|
|
delete res.data.reworkflowProcess.nodes
|
|
|
- this.demoData = {edges,nodes}
|
|
|
+ this.demoData.edges = res.data.reworkflowProcess.edges
|
|
|
+ delete res.data.reworkflowProcess.edges
|
|
|
this.processModel = res.data.reworkflowProcess
|
|
|
}
|
|
|
+ this.wkType = this.$route.query.type
|
|
|
}
|
|
|
this.done = true
|
|
|
+
|
|
|
}
|
|
|
};
|
|
|
</script>
|