Showing
1 changed file
with
68 additions
and
13 deletions
| ... | @@ -472,6 +472,7 @@ interface RuleForm { | ... | @@ -472,6 +472,7 @@ interface RuleForm { |
| 472 | } | 472 | } |
| 473 | 473 | ||
| 474 | interface myObj { | 474 | interface myObj { |
| 475 | + text: string | ||
| 475 | source: string | 476 | source: string |
| 476 | id: string | 477 | id: string |
| 477 | label: string | 478 | label: string |
| ... | @@ -1509,7 +1510,6 @@ export default { | ... | @@ -1509,7 +1510,6 @@ export default { |
| 1509 | let { nodes } = editor.editorState.graph.save(); | 1510 | let { nodes } = editor.editorState.graph.save(); |
| 1510 | 1511 | ||
| 1511 | let models = []; // 未通过的节点ID集合 | 1512 | let models = []; // 未通过的节点ID集合 |
| 1512 | - console.warn('state.node_tree', state.node_tree); | ||
| 1513 | 1513 | ||
| 1514 | for (const key in state.node_tree) { | 1514 | for (const key in state.node_tree) { |
| 1515 | const element = state.node_tree[key]; | 1515 | const element = state.node_tree[key]; |
| ... | @@ -1533,7 +1533,6 @@ export default { | ... | @@ -1533,7 +1533,6 @@ export default { |
| 1533 | models.push(element.model); | 1533 | models.push(element.model); |
| 1534 | } | 1534 | } |
| 1535 | } | 1535 | } |
| 1536 | - console.warn(models); | ||
| 1537 | 1536 | ||
| 1538 | if (models.length) { | 1537 | if (models.length) { |
| 1539 | ElMessage({ | 1538 | ElMessage({ |
| ... | @@ -1705,6 +1704,14 @@ export default { | ... | @@ -1705,6 +1704,14 @@ export default { |
| 1705 | if (type === 'node') { | 1704 | if (type === 'node') { |
| 1706 | // 关闭编辑器 | 1705 | // 关闭编辑器 |
| 1707 | editor.closeModel(); | 1706 | editor.closeModel(); |
| 1707 | + // TAG: 节点删除后,如果有缓存也要删除掉 | ||
| 1708 | + for (const key in state.node_tree) { | ||
| 1709 | + if (key === model.id) { | ||
| 1710 | + delete state.node_tree[model.id]; | ||
| 1711 | + } | ||
| 1712 | + } | ||
| 1713 | + console.warn(state.node_tree); | ||
| 1714 | + | ||
| 1708 | } | 1715 | } |
| 1709 | if (type === 'edge') { | 1716 | if (type === 'edge') { |
| 1710 | // console.log('delete edge') | 1717 | // console.log('delete edge') |
| ... | @@ -1713,12 +1720,7 @@ export default { | ... | @@ -1713,12 +1720,7 @@ export default { |
| 1713 | flowData.value.nodes = editor.editorState.graph.save().nodes | 1720 | flowData.value.nodes = editor.editorState.graph.save().nodes |
| 1714 | flowData.value.edges = editor.editorState.graph.save().edges | 1721 | flowData.value.edges = editor.editorState.graph.save().edges |
| 1715 | 1722 | ||
| 1716 | - // TAG: 节点删除后,如果有缓存也要删除掉 | 1723 | + |
| 1717 | - for (const key in state.node_tree) { | ||
| 1718 | - if (key === model.id) { | ||
| 1719 | - delete state.node_tree[model.id]; | ||
| 1720 | - } | ||
| 1721 | - } | ||
| 1722 | } | 1724 | } |
| 1723 | 1725 | ||
| 1724 | /** | 1726 | /** |
| ... | @@ -1783,15 +1785,69 @@ export default { | ... | @@ -1783,15 +1785,69 @@ export default { |
| 1783 | * @param {model} model - The model being handled. | 1785 | * @param {model} model - The model being handled. |
| 1784 | * @param {type} type - The type of the event. | 1786 | * @param {type} type - The type of the event. |
| 1785 | */ | 1787 | */ |
| 1786 | - function handleAfterAdd(model: myObj, type: string) { | 1788 | + const handleAfterAdd = async (model: myObj, type: string) => { |
| 1787 | if (type === 'node') { | 1789 | if (type === 'node') { |
| 1788 | // console.log(`新增节点`) | 1790 | // console.log(`新增节点`) |
| 1789 | flowData.value.nodes = editor.editorState.graph.save().nodes | 1791 | flowData.value.nodes = editor.editorState.graph.save().nodes |
| 1792 | + | ||
| 1793 | + editor.addNode(model); | ||
| 1794 | + let flow_id = getFlowId(); // 流程id | ||
| 1795 | + const { code, data } = await flowNodePropertyAPI({ node_code: model.id, flow_id }); | ||
| 1796 | + if (code) { | ||
| 1797 | + // 转换数据结构使用 | ||
| 1798 | + let node_name = data.name ? data.name : model.text; | ||
| 1799 | + let userTags = data.user; // 节点负责人 | ||
| 1800 | + let field_extend = data.field; // 字段权限临时储存,实际传给后端数据结构 | ||
| 1801 | + let field_auths = []; // 清空字段权限列表,本地使用数据结构 | ||
| 1802 | + let more_attr = data.property; // 更多属性 | ||
| 1803 | + | ||
| 1804 | + // 转换数据结构使用 | ||
| 1805 | + field_extend.forEach(ele => { | ||
| 1806 | + if (!ele.field_extend.disabled) { // 流程节点字段权限列表内是否显示 | ||
| 1807 | + field_auths.push({ | ||
| 1808 | + field_id: ele.field_extend.field_id, | ||
| 1809 | + name: ele.field_extend.label, | ||
| 1810 | + visible: { | ||
| 1811 | + checked: ele.field_extend.visibled, | ||
| 1812 | + disabled: false, | ||
| 1813 | + }, | ||
| 1814 | + editable: { | ||
| 1815 | + checked: ele.field_extend.editabled, | ||
| 1816 | + disabled: ele.field_extend.readonly, | ||
| 1817 | + }, | ||
| 1818 | + show: true, | ||
| 1819 | + }) | ||
| 1820 | + } | ||
| 1821 | + }); | ||
| 1822 | + | ||
| 1823 | + // 初始化表单数据比较结构 | ||
| 1824 | + field_extend.forEach(ele => { | ||
| 1825 | + field_auths.forEach(auth => { | ||
| 1826 | + if (ele.field_id === auth.field_id) { | ||
| 1827 | + ele.field_extend.visibled = auth.visible.checked; | ||
| 1828 | + ele.field_extend.editabled = auth.editable.checked; | ||
| 1829 | + ele.field_extend.readonly = auth.editable.disabled; | ||
| 1830 | + } | ||
| 1831 | + }) | ||
| 1832 | + }); | ||
| 1833 | + | ||
| 1834 | + state.node_tree[model.id] = { | ||
| 1835 | + name: node_name, | ||
| 1836 | + user: userTags, // 开始节点没有负责人 | ||
| 1837 | + field_auths: field_auths, // 页面显示结构 | ||
| 1838 | + field_extend: field_extend, // 后端使用结构 | ||
| 1839 | + property: more_attr, | ||
| 1840 | + model | ||
| 1841 | + }; | ||
| 1842 | + | ||
| 1843 | + editor.addNode(model); | ||
| 1844 | + } | ||
| 1790 | } | 1845 | } |
| 1791 | if (type === 'edge') { | 1846 | if (type === 'edge') { |
| 1792 | // console.log(`新增连接线`) | 1847 | // console.log(`新增连接线`) |
| 1793 | flowData.value.edges = editor.editorState.graph.save().edges | 1848 | flowData.value.edges = editor.editorState.graph.save().edges |
| 1794 | } | 1849 | } |
| 1850 | + | ||
| 1795 | } | 1851 | } |
| 1796 | 1852 | ||
| 1797 | function onClickCanvas(e: myEvent) { | 1853 | function onClickCanvas(e: myEvent) { |
| ... | @@ -1845,7 +1901,6 @@ export default { | ... | @@ -1845,7 +1901,6 @@ export default { |
| 1845 | // 保存流程图数据 | 1901 | // 保存流程图数据 |
| 1846 | flowData.value.nodes = editor.editorState.graph.save().nodes | 1902 | flowData.value.nodes = editor.editorState.graph.save().nodes |
| 1847 | flowData.value.edges = editor.editorState.graph.save().edges | 1903 | flowData.value.edges = editor.editorState.graph.save().edges |
| 1848 | - | ||
| 1849 | } else { | 1904 | } else { |
| 1850 | ElNotification.error('开始或者结束节点不可以复制') | 1905 | ElNotification.error('开始或者结束节点不可以复制') |
| 1851 | } | 1906 | } |
| ... | @@ -1860,8 +1915,6 @@ export default { | ... | @@ -1860,8 +1915,6 @@ export default { |
| 1860 | // 清空错误提示 | 1915 | // 清空错误提示 |
| 1861 | let { nodes } = editor.editorState.graph.save(); | 1916 | let { nodes } = editor.editorState.graph.save(); |
| 1862 | 1917 | ||
| 1863 | - console.warn(nodes); | ||
| 1864 | - | ||
| 1865 | nodes.forEach((ele: any, idx: number) => { | 1918 | nodes.forEach((ele: any, idx: number) => { |
| 1866 | ele.desc = ''; | 1919 | ele.desc = ''; |
| 1867 | editor.updateModel(ele); // 更新流程图信息 | 1920 | editor.updateModel(ele); // 更新流程图信息 |
| ... | @@ -1906,7 +1959,9 @@ export default { | ... | @@ -1906,7 +1959,9 @@ export default { |
| 1906 | // TAG: 检查节点是否完整 | 1959 | // TAG: 检查节点是否完整 |
| 1907 | const checkResult = await checkAllFlowNodePropertyAPI({ flow_id: +flow_id }) | 1960 | const checkResult = await checkAllFlowNodePropertyAPI({ flow_id: +flow_id }) |
| 1908 | if (checkResult.code) { | 1961 | if (checkResult.code) { |
| 1909 | - let raw_keys = checkResult.data; | 1962 | + let { nodes, edges } = editor.editorState.graph.save(); |
| 1963 | + let available_keys = _.map(nodes, 'id'); // 画布上存在的有效节点ID | ||
| 1964 | + let raw_keys = _.intersection(checkResult.data, available_keys); // 取交集有效ID | ||
| 1910 | let node_keys = Object.keys(state.node_tree); // 现在本地的ID都是有效的值 | 1965 | let node_keys = Object.keys(state.node_tree); // 现在本地的ID都是有效的值 |
| 1911 | let result = _.difference(raw_keys, node_keys); | 1966 | let result = _.difference(raw_keys, node_keys); |
| 1912 | if (result.length) { | 1967 | if (result.length) { | ... | ... |
-
Please register or login to post a comment