整体结构变更 新增方法数据错乱问题修复

This commit is contained in:
pixel
2020-10-29 17:57:29 +08:00
parent c570c095b9
commit 02f155f497
7 changed files with 348 additions and 122 deletions

View File

@@ -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>