Showing
1 changed file
with
70 additions
and
3 deletions
| ... | @@ -587,6 +587,7 @@ export default { | ... | @@ -587,6 +587,7 @@ export default { |
| 587 | type: null, // 操作方式 0:仅保存流程说明 1:删除,2:启用 | 587 | type: null, // 操作方式 0:仅保存流程说明 1:删除,2:启用 |
| 588 | }, | 588 | }, |
| 589 | showConfirmation: true, | 589 | showConfirmation: true, |
| 590 | + node_attr: {}, | ||
| 590 | }); | 591 | }); |
| 591 | 592 | ||
| 592 | /** | 593 | /** |
| ... | @@ -1203,6 +1204,24 @@ export default { | ... | @@ -1203,6 +1204,24 @@ export default { |
| 1203 | 1204 | ||
| 1204 | state.more_attr = data.property; // 更多属性 | 1205 | state.more_attr = data.property; // 更多属性 |
| 1205 | 1206 | ||
| 1207 | + // 初始化表单数据比较结构 | ||
| 1208 | + state.field_extend.forEach(ele => { | ||
| 1209 | + state.field_auths.forEach(auth => { | ||
| 1210 | + if (ele.field_id === auth.field_id) { | ||
| 1211 | + ele.field_extend.visibled = auth.visible.checked; | ||
| 1212 | + ele.field_extend.editabled = auth.editable.checked; | ||
| 1213 | + ele.field_extend.readonly = auth.editable.disabled; | ||
| 1214 | + } | ||
| 1215 | + }) | ||
| 1216 | + }); | ||
| 1217 | + // 储存原始节点属性 | ||
| 1218 | + state.node_attr = { | ||
| 1219 | + name: _.cloneDeep(state.node_name), | ||
| 1220 | + user: _.cloneDeep(state.userTags), | ||
| 1221 | + field: _.cloneDeep(state.field_extend), | ||
| 1222 | + property: _.cloneDeep(state.more_attr) | ||
| 1223 | + } | ||
| 1224 | + | ||
| 1206 | // 开始节点不显示审批意见 | 1225 | // 开始节点不显示审批意见 |
| 1207 | if (model_id ==='start-node') { | 1226 | if (model_id ==='start-node') { |
| 1208 | state.more_attr = state.more_attr.filter((ele: any) => { | 1227 | state.more_attr = state.more_attr.filter((ele: any) => { |
| ... | @@ -1262,7 +1281,24 @@ export default { | ... | @@ -1262,7 +1281,24 @@ export default { |
| 1262 | * | 1281 | * |
| 1263 | */ | 1282 | */ |
| 1264 | function cancel() { | 1283 | function cancel() { |
| 1265 | - editor.closeModel() | 1284 | + if (!checkFormEdited()) { |
| 1285 | + ElMessageBox.confirm( | ||
| 1286 | + '您刚才修改过表单内容还未保存,是否离开?', | ||
| 1287 | + '温馨提示', | ||
| 1288 | + { | ||
| 1289 | + confirmButtonText: '离开', | ||
| 1290 | + cancelButtonText: '取消', | ||
| 1291 | + type: 'warning', | ||
| 1292 | + } | ||
| 1293 | + ) | ||
| 1294 | + .then(() => { | ||
| 1295 | + editor.closeModel() | ||
| 1296 | + }) | ||
| 1297 | + .catch(() => { | ||
| 1298 | + }) | ||
| 1299 | + } else { | ||
| 1300 | + editor.closeModel() | ||
| 1301 | + } | ||
| 1266 | } | 1302 | } |
| 1267 | 1303 | ||
| 1268 | /** | 1304 | /** |
| ... | @@ -1502,8 +1538,39 @@ export default { | ... | @@ -1502,8 +1538,39 @@ export default { |
| 1502 | } | 1538 | } |
| 1503 | 1539 | ||
| 1504 | function onClickCanvas(e: myEvent) { | 1540 | function onClickCanvas(e: myEvent) { |
| 1505 | - state.detailModel = null; | 1541 | + if (!checkFormEdited()) { |
| 1506 | - editor.closeModel() | 1542 | + ElMessageBox.confirm( |
| 1543 | + '您刚才修改过表单内容还未保存,是否离开?', | ||
| 1544 | + '温馨提示', | ||
| 1545 | + { | ||
| 1546 | + confirmButtonText: '离开', | ||
| 1547 | + cancelButtonText: '取消', | ||
| 1548 | + type: 'warning', | ||
| 1549 | + } | ||
| 1550 | + ) | ||
| 1551 | + .then(() => { | ||
| 1552 | + state.detailModel = null; | ||
| 1553 | + editor.closeModel() | ||
| 1554 | + }) | ||
| 1555 | + .catch(() => { | ||
| 1556 | + }) | ||
| 1557 | + } else { | ||
| 1558 | + state.detailModel = null; | ||
| 1559 | + editor.closeModel() | ||
| 1560 | + } | ||
| 1561 | + } | ||
| 1562 | + | ||
| 1563 | + const checkFormEdited = () => { // 检查表单是否修改过内容 | ||
| 1564 | + state.field_extend.forEach(ele => { | ||
| 1565 | + state.field_auths.forEach(auth => { | ||
| 1566 | + if (ele.field_id === auth.field_id) { | ||
| 1567 | + ele.field_extend.visibled = auth.visible.checked; | ||
| 1568 | + ele.field_extend.editabled = auth.editable.checked; | ||
| 1569 | + ele.field_extend.readonly = auth.editable.disabled; | ||
| 1570 | + } | ||
| 1571 | + }) | ||
| 1572 | + }); | ||
| 1573 | + return _.isEqual(state.node_attr, {name: state.node_name, user: state.userTags, field: state.field_extend, property: state.more_attr}) | ||
| 1507 | } | 1574 | } |
| 1508 | 1575 | ||
| 1509 | /** | 1576 | /** | ... | ... |
-
Please register or login to post a comment