数据操作弹框编辑或新增拦截提示
弹框显示时设置,“用户操作之前数据”(data属性),关闭弹窗时判断,“当前弹窗数据”,是否与,“用户操作之前数据”相等,不相等,就认为用户修改了数据,就会拦截提示是否保存;
编辑时从己有表格中的数据设置才会传data属性值来更新“用户操作之前数据”,新增时的data属性值(“用户操作之前数据”)都是缓存的空模板对象或空对象。但新增时用户不操作就也是相等的。但是用户只要输入了,改变了“当前弹窗数据”就与“用户操作之前数据”不相等了,就会拦截提示是否保存。这样也完美的实现了需求
一、编辑操作弹框的 “用户操作之前数据“是从 网络加载数据 或者 己有表格中的数据设置的,“用户操作之前数据“也是回显数据,编辑操作设置的“用户操作之前数据”一般都是冗余的,因为后端返回的属性很多都是多余的;
二、新增操作弹框的“用户操作之前数据”是空对象或者被清空值的模板对象
1.“用户操作之前数据”是空对象时,就只是操作了新增操作弹框,没有操作过编辑操作弹框且没有输入过任何字段值
2.“用户操作之前数据”是被清空值的模板对象时,
备:特殊字段不算冗余字段,如各种数据id
2.1没有冗余且不少字段属性,那就是新增弹框操作时,所有字段全部都填入过值,再关闭弹框(可能是新增成功或者手动关闭)。
2.2没有冗余且少字段属性,那就是新增弹框操作时,有字段没有填入过值,再关闭弹框(可能是新增成功或者手动关闭)。
2.3有冗余属性是编辑操作弹框关闭后(可能是编辑成功或者手动关闭),再打开新增操作弹框。
其实弹框的“用户操作之前数据”,不管是什么都无所谓,我们只要判断 "当前弹窗数据“是否与“用户操作之前数据”相等,不相等就代表用户操作过了,拦截提示就行。