perf: 优化修改工作流未保存关闭提示
This commit is contained in:
parent
d64fae1832
commit
1ff59aee56
@ -63,6 +63,7 @@
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
beforeClose: Function
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
@ -136,12 +137,25 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
mask () {
|
mask() {
|
||||||
if (this.maskClosable) {
|
if (this.maskClosable) {
|
||||||
this.close()
|
this.close()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
|
if (!this.beforeClose) {
|
||||||
|
return this.handleClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
const before = this.beforeClose();
|
||||||
|
|
||||||
|
if (before && before.then) {
|
||||||
|
before.then(this.handleClose);
|
||||||
|
} else {
|
||||||
|
this.handleClose();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleClose () {
|
||||||
this.$emit("input", false)
|
this.$emit("input", false)
|
||||||
},
|
},
|
||||||
escClose(e) {
|
escClose(e) {
|
||||||
|
@ -407,8 +407,9 @@
|
|||||||
<DrawerOverlay
|
<DrawerOverlay
|
||||||
v-model="workflowShow"
|
v-model="workflowShow"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:beforeClose="workflowBeforeClose"
|
||||||
:size="1280">
|
:size="1280">
|
||||||
<ProjectWorkflow v-if="workflowShow" :project-id="projectId"/>
|
<ProjectWorkflow ref="workflow" v-if="workflowShow" :project-id="projectId"/>
|
||||||
</DrawerOverlay>
|
</DrawerOverlay>
|
||||||
|
|
||||||
<!--查看项目动态-->
|
<!--查看项目动态-->
|
||||||
@ -1179,6 +1180,27 @@ export default {
|
|||||||
this.$store.dispatch('toggleProjectParameter', 'completedTask');
|
this.$store.dispatch('toggleProjectParameter', 'completedTask');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
workflowBeforeClose() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
if (!this.$refs.workflow.existDiff()) {
|
||||||
|
resolve()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$A.modalConfirm({
|
||||||
|
content: '设置尚未保存,是否放弃修改?',
|
||||||
|
cancelText: '放弃',
|
||||||
|
okText: '保存',
|
||||||
|
onCancel: () => {
|
||||||
|
resolve()
|
||||||
|
},
|
||||||
|
onOk: () => {
|
||||||
|
this.$refs.workflow.saveAll()
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
myFilter(task, chackCompleted = true) {
|
myFilter(task, chackCompleted = true) {
|
||||||
if (task.archived_at) {
|
if (task.archived_at) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -261,6 +261,12 @@ export default {
|
|||||||
return JSON.stringify(project_flow_item) != project_flow_bak
|
return JSON.stringify(project_flow_item) != project_flow_bak
|
||||||
},
|
},
|
||||||
|
|
||||||
|
existDiff() {
|
||||||
|
return !!this.list.find(data => {
|
||||||
|
return this.contrast(data.project_flow_item, data.project_flow_bak)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
onCreate() {
|
onCreate() {
|
||||||
let id = -1 * $A.randNum(1000, 10000);
|
let id = -1 * $A.randNum(1000, 10000);
|
||||||
this.list.push({
|
this.list.push({
|
||||||
@ -468,6 +474,14 @@ export default {
|
|||||||
$A.modalError(msg);
|
$A.modalError(msg);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
saveAll() {
|
||||||
|
this.list.some(data => {
|
||||||
|
if (this.contrast(data.project_flow_item, data.project_flow_bak)) {
|
||||||
|
this.onSave(data)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user