Showing
1 changed file
with
46 additions
and
113 deletions
| ... | @@ -1202,25 +1202,25 @@ export default { | ... | @@ -1202,25 +1202,25 @@ export default { |
| 1202 | state.dialogUserFormVisible = status | 1202 | state.dialogUserFormVisible = status |
| 1203 | } | 1203 | } |
| 1204 | 1204 | ||
| 1205 | - const onConfirmUserView = async (data: any) => { | 1205 | + const onConfirmUserView = async (data: any) => { // 负责人弹框确认回调 |
| 1206 | state.userTags = data; | 1206 | state.userTags = data; |
| 1207 | - // 自动保存流程 | 1207 | + // // 自动保存流程 |
| 1208 | - let { nodes, edges } = editor.editorState.graph.save(); | 1208 | + // let { nodes, edges } = editor.editorState.graph.save(); |
| 1209 | - // 检查路径有效性 | 1209 | + // // 检查路径有效性 |
| 1210 | - const paths = []; | 1210 | + // const paths = []; |
| 1211 | - findPathsToEndNode(edges, 'start-node', [], paths); | 1211 | + // findPathsToEndNode(edges, 'start-node', [], paths); |
| 1212 | - | 1212 | + |
| 1213 | - let flow_id = getFlowId(); // 流程id | 1213 | + // let flow_id = getFlowId(); // 流程id |
| 1214 | - | 1214 | + |
| 1215 | - if (paths.length) { | 1215 | + // if (paths.length) { |
| 1216 | - const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: +flow_id, data: JSON.stringify({ nodes, edges }) }); | 1216 | + // const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: +flow_id, data: JSON.stringify({ nodes, edges }) }); |
| 1217 | - if (code) { | 1217 | + // if (code) { |
| 1218 | - updateFlowId(data); // 更新缓存flow_id | 1218 | + // updateFlowId(data); // 更新缓存flow_id |
| 1219 | - console.log('满足条件的路径', paths); // 输出满足条件的路径结果数组 | 1219 | + // console.log('满足条件的路径', paths); // 输出满足条件的路径结果数组 |
| 1220 | - } | 1220 | + // } |
| 1221 | - } else { | 1221 | + // } else { |
| 1222 | - ElNotification.error('缺少一条从开始节点到结束节点的完整流程!'); | 1222 | + // ElNotification.error('缺少一条从开始节点到结束节点的完整流程!'); |
| 1223 | - } | 1223 | + // } |
| 1224 | } | 1224 | } |
| 1225 | /******************* END *******************/ | 1225 | /******************* END *******************/ |
| 1226 | 1226 | ||
| ... | @@ -1234,6 +1234,7 @@ export default { | ... | @@ -1234,6 +1234,7 @@ export default { |
| 1234 | updateModel: (arg0: any) => void | 1234 | updateModel: (arg0: any) => void |
| 1235 | editorState: { | 1235 | editorState: { |
| 1236 | graph: { | 1236 | graph: { |
| 1237 | + addItem: any | ||
| 1237 | removeItem: any | 1238 | removeItem: any |
| 1238 | save: () => { nodes: any; edges: any } | 1239 | save: () => { nodes: any; edges: any } |
| 1239 | read: any | 1240 | read: any |
| ... | @@ -1276,6 +1277,7 @@ export default { | ... | @@ -1276,6 +1277,7 @@ export default { |
| 1276 | state.detailModel = model; | 1277 | state.detailModel = model; |
| 1277 | 1278 | ||
| 1278 | state.search_auth_value = ''; | 1279 | state.search_auth_value = ''; |
| 1280 | + // 清空全选状态 | ||
| 1279 | state.auth_all_checked = false; | 1281 | state.auth_all_checked = false; |
| 1280 | state.auth_all_edit = false; | 1282 | state.auth_all_edit = false; |
| 1281 | 1283 | ||
| ... | @@ -1401,26 +1403,17 @@ export default { | ... | @@ -1401,26 +1403,17 @@ export default { |
| 1401 | 1403 | ||
| 1402 | editor.openModel(); | 1404 | editor.openModel(); |
| 1403 | 1405 | ||
| 1404 | - // // 储存原始节点属性 | ||
| 1405 | - // state.node_attr = { | ||
| 1406 | - // name: _.cloneDeep(state.node_name), | ||
| 1407 | - // user: _.cloneDeep(state.userTags), | ||
| 1408 | - // field: _.cloneDeep(state.field_extend), | ||
| 1409 | - // property: _.cloneDeep(state.more_attr) | ||
| 1410 | - // } | ||
| 1411 | - | ||
| 1412 | // 临时保存树信息 | 1406 | // 临时保存树信息 |
| 1413 | setNodeTree(model.id, | 1407 | setNodeTree(model.id, |
| 1414 | { | 1408 | { |
| 1415 | name: _.cloneDeep(state.node_name), | 1409 | name: _.cloneDeep(state.node_name), |
| 1416 | user: model_id === 'start-node' ? '' : _.cloneDeep(state.userTags), // 开始节点没有负责人 | 1410 | user: model_id === 'start-node' ? '' : _.cloneDeep(state.userTags), // 开始节点没有负责人 |
| 1417 | - field_auths: _.cloneDeep(state.field_auths), | 1411 | + field_auths: _.cloneDeep(state.field_auths), // 页面显示结构 |
| 1418 | - field_extend: _.cloneDeep(state.field_extend), | 1412 | + field_extend: _.cloneDeep(state.field_extend), // 后端使用结构 |
| 1419 | property: _.cloneDeep(state.more_attr), | 1413 | property: _.cloneDeep(state.more_attr), |
| 1420 | model | 1414 | model |
| 1421 | } | 1415 | } |
| 1422 | ); | 1416 | ); |
| 1423 | - | ||
| 1424 | } else { | 1417 | } else { |
| 1425 | state.statusLoading = false; | 1418 | state.statusLoading = false; |
| 1426 | } | 1419 | } |
| ... | @@ -1512,10 +1505,12 @@ export default { | ... | @@ -1512,10 +1505,12 @@ export default { |
| 1512 | state.main_attr_set = true; | 1505 | state.main_attr_set = true; |
| 1513 | } | 1506 | } |
| 1514 | 1507 | ||
| 1515 | - const checkSaveNodeTree = () => { // 检查点击过的节点是否有问题 | 1508 | + const checkNodeTree = () => { // 检查点击过的节点是否有问题 |
| 1516 | let { nodes } = editor.editorState.graph.save(); | 1509 | let { nodes } = editor.editorState.graph.save(); |
| 1517 | 1510 | ||
| 1518 | let models = []; // 未通过的节点ID集合 | 1511 | let models = []; // 未通过的节点ID集合 |
| 1512 | + console.warn('state.node_tree', state.node_tree); | ||
| 1513 | + | ||
| 1519 | for (const key in state.node_tree) { | 1514 | for (const key in state.node_tree) { |
| 1520 | const element = state.node_tree[key]; | 1515 | const element = state.node_tree[key]; |
| 1521 | let avail_visible_count = element.field_auths.filter((ele) => { | 1516 | let avail_visible_count = element.field_auths.filter((ele) => { |
| ... | @@ -1530,13 +1525,15 @@ export default { | ... | @@ -1530,13 +1525,15 @@ export default { |
| 1530 | }); | 1525 | }); |
| 1531 | 1526 | ||
| 1532 | if ( | 1527 | if ( |
| 1533 | - (element.name === '') || | 1528 | + (element.name === '') || // 节点名称为空 |
| 1534 | (key !=='start-node' && !element.user.length) || // 开始节点不需要检查负责人 | 1529 | (key !=='start-node' && !element.user.length) || // 开始节点不需要检查负责人 |
| 1535 | - (avail_visible_count.length === 0 && avail_editable_count.length === 0) | 1530 | + (avail_visible_count.length === 0 && avail_editable_count.length === 0) // 可见和可编辑都为空 |
| 1536 | - ) { // 节点名称为空, 节点负责人不能为空, 请至少选择一个字段权限 | 1531 | + ) |
| 1532 | + { | ||
| 1537 | models.push(element.model); | 1533 | models.push(element.model); |
| 1538 | } | 1534 | } |
| 1539 | } | 1535 | } |
| 1536 | + console.warn(models); | ||
| 1540 | 1537 | ||
| 1541 | if (models.length) { | 1538 | if (models.length) { |
| 1542 | ElMessage({ | 1539 | ElMessage({ |
| ... | @@ -1642,68 +1639,6 @@ export default { | ... | @@ -1642,68 +1639,6 @@ export default { |
| 1642 | } | 1639 | } |
| 1643 | 1640 | ||
| 1644 | /** | 1641 | /** |
| 1645 | - * 保存表单信息 | ||
| 1646 | - * | ||
| 1647 | - */ | ||
| 1648 | - // async function saveForm() { | ||
| 1649 | - // if (state.node_name === '') { | ||
| 1650 | - // ElMessage({ | ||
| 1651 | - // type: 'error', | ||
| 1652 | - // message: '节点名称不能为空', | ||
| 1653 | - // }); | ||
| 1654 | - // return; | ||
| 1655 | - // } | ||
| 1656 | - // if (state.detailModel.id !== 'start-node' && state.userTags.length === 0) { | ||
| 1657 | - // ElMessage({ | ||
| 1658 | - // type: 'error', | ||
| 1659 | - // message: '节点负责人不能为空', | ||
| 1660 | - // }); | ||
| 1661 | - // return; | ||
| 1662 | - // } | ||
| 1663 | - // let avail_visible_count = state.field_auths.filter((ele) => { | ||
| 1664 | - // if (ele.visible.checked && !ele.visible.disabled) { | ||
| 1665 | - // return ele; | ||
| 1666 | - // } | ||
| 1667 | - // }); | ||
| 1668 | - // let avail_editable_count = state.field_auths.filter((ele) => { | ||
| 1669 | - // if (ele.editable.checked && !ele.editable.disabled) { | ||
| 1670 | - // return ele; | ||
| 1671 | - // } | ||
| 1672 | - // }); | ||
| 1673 | - // if (avail_visible_count.length === 0 && avail_editable_count.length === 0) { | ||
| 1674 | - // ElMessage({ | ||
| 1675 | - // type: 'error', | ||
| 1676 | - // message: '请至少选择一个字段权限', | ||
| 1677 | - // }); | ||
| 1678 | - // return; | ||
| 1679 | - // } | ||
| 1680 | - // // 调整数据结构 | ||
| 1681 | - // state.field_extend.forEach(ele => { | ||
| 1682 | - // state.field_auths.forEach(auth => { | ||
| 1683 | - // if (ele.field_id === auth.field_id) { | ||
| 1684 | - // ele.field_extend.visibled = auth.visible.checked; | ||
| 1685 | - // ele.field_extend.editabled = auth.editable.checked; | ||
| 1686 | - // ele.field_extend.readonly = auth.editable.disabled; | ||
| 1687 | - // } | ||
| 1688 | - // }) | ||
| 1689 | - // }); | ||
| 1690 | - | ||
| 1691 | - // let flow_id = getFlowId(); // 流程id | ||
| 1692 | - // console.warn(state.node_tree); | ||
| 1693 | - // // TAG: 保存表单信息 | ||
| 1694 | - // const { code, data } = await saveFlowNodePropertyAPI({ flow_id: +flow_id, node_code: state.detailModel.id, data: JSON.stringify({ name: state.node_name, user: state.userTags, field: state.field_extend, property: state.more_attr }) }) | ||
| 1695 | - // if (code) { | ||
| 1696 | - // ElMessage({ | ||
| 1697 | - // type:'success', | ||
| 1698 | - // message: '保存成功', | ||
| 1699 | - // }); | ||
| 1700 | - // state.detailModel.text = state.node_name; // 更新节点名称显示 | ||
| 1701 | - // editor.updateModel(state.detailModel); // 更新流程图信息 | ||
| 1702 | - // editor.closeModel(); | ||
| 1703 | - // } | ||
| 1704 | - // } | ||
| 1705 | - | ||
| 1706 | - /** | ||
| 1707 | * 删除前校验 | 1642 | * 删除前校验 |
| 1708 | * | 1643 | * |
| 1709 | * @param {Object} model - The model object. | 1644 | * @param {Object} model - The model object. |
| ... | @@ -1884,20 +1819,6 @@ export default { | ... | @@ -1884,20 +1819,6 @@ export default { |
| 1884 | editor.closeModel() | 1819 | editor.closeModel() |
| 1885 | } | 1820 | } |
| 1886 | 1821 | ||
| 1887 | - // const checkFormEdited = () => { // 检查表单是否修改过内容 | ||
| 1888 | - // state.field_extend.forEach(ele => { | ||
| 1889 | - // state.field_auths.forEach(auth => { | ||
| 1890 | - // if (ele.field_id === auth.field_id) { | ||
| 1891 | - // ele.field_extend.visibled = auth.visible.checked; | ||
| 1892 | - // ele.field_extend.editabled = auth.editable.checked; | ||
| 1893 | - // ele.field_extend.readonly = auth.editable.disabled; | ||
| 1894 | - // } | ||
| 1895 | - // }) | ||
| 1896 | - // }); | ||
| 1897 | - | ||
| 1898 | - // return _.isEqual(state.node_attr, {name: state.node_name, user: state.userTags, field: state.field_extend, property: state.more_attr}) | ||
| 1899 | - // } | ||
| 1900 | - | ||
| 1901 | /** | 1822 | /** |
| 1902 | * 拖动节点结束回调 | 1823 | * 拖动节点结束回调 |
| 1903 | * | 1824 | * |
| ... | @@ -1909,14 +1830,22 @@ export default { | ... | @@ -1909,14 +1830,22 @@ export default { |
| 1909 | 1830 | ||
| 1910 | const copyData = () => { // 复制节点回调 | 1831 | const copyData = () => { // 复制节点回调 |
| 1911 | if (state.detailModel.control !== 'start' && state.detailModel.control !== 'end') { | 1832 | if (state.detailModel.control !== 'start' && state.detailModel.control !== 'end') { |
| 1833 | + let copy_node = _.cloneDeep(state.node_tree[state.detailModel.id]); // 复制节点的属性 | ||
| 1834 | + // delete copy_node.model; | ||
| 1912 | editor.clearStates(state.detailModel.id); // 清除选中节点的状态 | 1835 | editor.clearStates(state.detailModel.id); // 清除选中节点的状态 |
| 1913 | - state.detailModel.id = uuidv4(); // ID需要重新生成 | 1836 | + let id = uuidv4(); // ID需要重新生成 |
| 1914 | - state.detailModel.y = state.detailModel.y + 50 | 1837 | + // state.detailModel.y = state.detailModel.y + 50 |
| 1915 | - editor.addNode(state.detailModel); | 1838 | + // 新节点的属性 |
| 1839 | + copy_node['model']['id'] = id; | ||
| 1840 | + copy_node['model']['y'] = state.detailModel.y + 50; | ||
| 1841 | + state.node_tree[id] = copy_node; // 新节点放到缓存中 | ||
| 1842 | + | ||
| 1843 | + editor.addNode(copy_node['model']); | ||
| 1916 | editor.closeModel(); | 1844 | editor.closeModel(); |
| 1917 | // 保存流程图数据 | 1845 | // 保存流程图数据 |
| 1918 | flowData.value.nodes = editor.editorState.graph.save().nodes | 1846 | flowData.value.nodes = editor.editorState.graph.save().nodes |
| 1919 | flowData.value.edges = editor.editorState.graph.save().edges | 1847 | flowData.value.edges = editor.editorState.graph.save().edges |
| 1848 | + | ||
| 1920 | } else { | 1849 | } else { |
| 1921 | ElNotification.error('开始或者结束节点不可以复制') | 1850 | ElNotification.error('开始或者结束节点不可以复制') |
| 1922 | } | 1851 | } |
| ... | @@ -1931,6 +1860,8 @@ export default { | ... | @@ -1931,6 +1860,8 @@ export default { |
| 1931 | // 清空错误提示 | 1860 | // 清空错误提示 |
| 1932 | let { nodes } = editor.editorState.graph.save(); | 1861 | let { nodes } = editor.editorState.graph.save(); |
| 1933 | 1862 | ||
| 1863 | + console.warn(nodes); | ||
| 1864 | + | ||
| 1934 | nodes.forEach((ele: any, idx: number) => { | 1865 | nodes.forEach((ele: any, idx: number) => { |
| 1935 | ele.desc = ''; | 1866 | ele.desc = ''; |
| 1936 | editor.updateModel(ele); // 更新流程图信息 | 1867 | editor.updateModel(ele); // 更新流程图信息 |
| ... | @@ -1966,10 +1897,12 @@ export default { | ... | @@ -1966,10 +1897,12 @@ export default { |
| 1966 | } | 1897 | } |
| 1967 | 1898 | ||
| 1968 | // 节点点击后,使用本地数据检查 | 1899 | // 节点点击后,使用本地数据检查 |
| 1969 | - if (checkSaveNodeTree().length) { | 1900 | + if (checkNodeTree().length) { |
| 1970 | return; | 1901 | return; |
| 1971 | } | 1902 | } |
| 1972 | 1903 | ||
| 1904 | + | ||
| 1905 | + | ||
| 1973 | // TAG: 检查节点是否完整 | 1906 | // TAG: 检查节点是否完整 |
| 1974 | const checkResult = await checkAllFlowNodePropertyAPI({ flow_id: +flow_id }) | 1907 | const checkResult = await checkAllFlowNodePropertyAPI({ flow_id: +flow_id }) |
| 1975 | if (checkResult.code) { | 1908 | if (checkResult.code) { | ... | ... |
-
Please register or login to post a comment