hookehuyr

实时检查表单数据是否正确

......@@ -797,6 +797,51 @@ export default {
// });
});
/**
* 实时检查表单数据是否正确
* @param node_name
* @param node_name
* @param userTags
* @param field_auths
*/
function checkFormDataError(node_name, userTags, field_auths) {
let { nodes } = editor.editorState.graph.save();
let avail_count = field_auths.filter((ele) => {
if ((ele.visible.checked && !ele.visible.disabled )|| (ele.editable.checked && !ele.editable.disabled)) {
return ele;
}
});
if (!node_name) { // 节点名称为空,错误提示
nodes.forEach((ele: any, idx: number) => {
if (ele.id === state.detailModel.id) {
ele.desc = 'https://cdn.ipadbiz.cn/oa/flow/icons-error1.png';
editor.updateModel(ele); // 更新流程图信息
}
});
} else if (!userTags.length) { // 负责人为空,错误提示
nodes.forEach((ele: any, idx: number) => {
if (ele.id === state.detailModel.id) {
ele.desc = 'https://cdn.ipadbiz.cn/oa/flow/icons-error1.png';
editor.updateModel(ele); // 更新流程图信息
}
});
} else if (!avail_count.length) { // 字段权限为空,错误提示
nodes.forEach((ele: any, idx: number) => {
if (ele.id === state.detailModel.id) {
ele.desc = 'https://cdn.ipadbiz.cn/oa/flow/icons-error1.png';
editor.updateModel(ele); // 更新流程图信息
}
});
} else {
nodes.forEach((ele: any, idx: number) => {
if (ele.id === state.detailModel.id) {
ele.desc = '';
editor.updateModel(ele); // 更新流程图信息
}
});
}
}
/************* 监听表单数据变化 **************/
watch(
() => state.node_name,
......@@ -806,8 +851,9 @@ export default {
state.node_tree[state.detailModel.id].name = newValue;
}
}
checkFormDataError(newValue, state.userTags, state.field_auths);
},
{ immediate: true }
// { immediate: true }
);
watch(
() => state.userTags,
......@@ -817,10 +863,18 @@ export default {
state.node_tree[state.detailModel.id].user = newValue;
}
}
checkFormDataError(state.node_name, newValue, state.field_auths);
},
// { immediate: true }
);
watch(
() => state.field_auths,
(newValue, oldValue) => {
checkFormDataError(state.node_name, state.userTags, newValue);
},
{ deep: true }
);
watch(
() => state.more_attr,
(newValue, oldValue) => {
if (newValue !== oldValue) {
......@@ -1889,7 +1943,7 @@ export default {
* @return {void} No return value.
*/
const noticeError = (checkResult) => {
let { nodes, edges } = editor.editorState.graph.save();
let { nodes } = editor.editorState.graph.save();
let available_keys = _.map(nodes, 'id'); // 画布上存在的有效节点ID
let raw_keys = _.intersection(checkResult.data, available_keys); // 取交集有效ID
let node_keys = Object.keys(state.node_tree); // 现在本地的ID都是有效的值
......