diff --git a/src/resources/assets/js/util.js b/src/resources/assets/js/util.js index 21b03e3f6f7cdc0e2584b5d5a33c8e3825f5e51b..aa2295c9cbcca9e7ba7915b0baf9d49dc3f03cec 100644 --- a/src/resources/assets/js/util.js +++ b/src/resources/assets/js/util.js @@ -1243,6 +1243,9 @@ const methods = { } return result; }, + filteredObj (obj, list) { //过滤对象中指定的属性列表 + return _.omit(obj, list) + }, isValidTimeString(timeStr) { //校验时间字符串 if(!timeStr || typeof timeStr !== 'string') { return false; diff --git a/src/views/pages/process/task/processdetail/detailmixin.js b/src/views/pages/process/task/processdetail/detailmixin.js index d6529e7537052e49cd6e3eec15289c751f3c1a5a..6908944af3a991620c9299d44598801ac78a653d 100644 --- a/src/views/pages/process/task/processdetail/detailmixin.js +++ b/src/views/pages/process/task/processdetail/detailmixin.js @@ -446,8 +446,17 @@ export default { isDraftData(to, from, next, url) { //路由跳转比较对比 父组件beforeRouterLeave调用 if (this.actionConfig.save && this.$refs.TaskCenterDetail) { - let draftData = this.getData(); - let isSame = this.$utils.isSame(this.draftData, draftData); + const draftData = this.getData(); + const filterAttrList = ['hidecomponentList', 'formExtendAttributeDataList']; + let newData = draftData; + let oldData = this.draftData; + if (newData) { + newData = this.$utils.deepRemoveEmptyValues(this.$utils.filteredObj(draftData, filterAttrList)); + } + if (oldData) { + oldData = this.$utils.deepRemoveEmptyValues(this.$utils.filteredObj(this.draftData, filterAttrList)); + } + let isSame = this.$utils.isSame(newData, oldData); if (isSame || this.draftData == '') { // 没有改变 url ? this.$utils.gotoHref(url) : next();