hookehuyr

fix

...@@ -643,20 +643,18 @@ export default { ...@@ -643,20 +643,18 @@ export default {
643 const getFlowData = async (flow_id: any) => { 643 const getFlowData = async (flow_id: any) => {
644 flowData.value = null; 644 flowData.value = null;
645 const { code, data } = await flowNodesAPI({ flow_id }); 645 const { code, data } = await flowNodesAPI({ flow_id });
646 + state.reloadLoading = false;
646 if (code) { 647 if (code) {
647 - let nodes = data.nodes; 648 + let { nodes, edges } = data;
648 - let edges = data.edges;
649 // 没有流程图数据 649 // 没有流程图数据
650 if (!nodes.length && !edges.length) { 650 if (!nodes.length && !edges.length) {
651 flowData.value = AppData; // 设置默认的数据 651 flowData.value = AppData; // 设置默认的数据
652 } else { 652 } else {
653 flowData.value = data; // 获取已存在的数据 653 flowData.value = data; // 获取已存在的数据
654 } 654 }
655 - state.reloadLoading = false;
656 - } else {
657 - state.reloadLoading = false;
658 } 655 }
659 } 656 }
657 +
660 let flow_id = getFlowId(); // flow_id 流程ID 658 let flow_id = getFlowId(); // flow_id 流程ID
661 if (flow_id) { 659 if (flow_id) {
662 state.reloadLoading = true; // 打开loading 660 state.reloadLoading = true; // 打开loading
...@@ -697,9 +695,9 @@ export default { ...@@ -697,9 +695,9 @@ export default {
697 */ 695 */
698 const onSelectFlowVersion = (id: number, code: number, note: string) => { 696 const onSelectFlowVersion = (id: number, code: number, note: string) => {
699 state.reloadLoading = true; // 打开loading 697 state.reloadLoading = true; // 打开loading
698 + state.select_flow_version = code;
700 updateFlowId(id); // 更新缓存flow_id 699 updateFlowId(id); // 更新缓存flow_id
701 getFlowData(id); // 更新流程图数据 700 getFlowData(id); // 更新流程图数据
702 - state.select_flow_version = code;
703 } 701 }
704 702
705 /** 703 /**
...@@ -724,19 +722,20 @@ export default { ...@@ -724,19 +722,20 @@ export default {
724 const addFlowVersion = async () => { 722 const addFlowVersion = async () => {
725 const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: '', data: JSON.stringify(AppData) }); 723 const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: '', data: JSON.stringify(AppData) });
726 if (code) { 724 if (code) {
725 + state.reloadLoading = true; // 打开 loading
727 ElMessage({ 726 ElMessage({
728 type: 'success', 727 type: 'success',
729 message: '新增成功', 728 message: '新增成功',
730 }); 729 });
731 - flow_id = data; // 更新flow_id 730 +
732 - updateFlowId(flow_id); // 更新缓存 flow_id 731 + updateFlowId(data); // 更新缓存 flow_id
733 - state.reloadLoading = true; // 打开 loading 732 + getFlowData(data); // 更新流程图数据
734 - getFlowData(flow_id); // 更新流程图数据 733 +
735 const flow_version = await flowVersionAPI({ form_id }); 734 const flow_version = await flowVersionAPI({ form_id });
736 if (flow_version.code) { 735 if (flow_version.code) {
737 state.version_list = flow_version.data; // 更新版本列表 736 state.version_list = flow_version.data; // 更新版本列表
738 state.version_list.forEach((ele) => { 737 state.version_list.forEach((ele) => {
739 - if (ele.id === +flow_id) { 738 + if (ele.id === +data) {
740 state.select_flow_version = ele.code; // 选中新增的版本 739 state.select_flow_version = ele.code; // 选中新增的版本
741 } 740 }
742 }); 741 });
...@@ -744,7 +743,10 @@ export default { ...@@ -744,7 +743,10 @@ export default {
744 } 743 }
745 } 744 }
746 745
747 - const setFLowVersionEnable = async () => { // 启用版本 746 + /**
747 + * 启用版本
748 + */
749 + const setFLowVersionEnable = async () => {
748 state.versionForm.type = 2; 750 state.versionForm.type = 2;
749 const { code, data } = await enableFlowVersionAPI(state.versionForm); 751 const { code, data } = await enableFlowVersionAPI(state.versionForm);
750 if (code) { 752 if (code) {
...@@ -754,15 +756,18 @@ export default { ...@@ -754,15 +756,18 @@ export default {
754 }); 756 });
755 state.current_enable_version = state.versionForm.code; // 当前选中的版本号 757 state.current_enable_version = state.versionForm.code; // 当前选中的版本号
756 state.dialogVersionFormVisible = false; // 关闭弹框 758 state.dialogVersionFormVisible = false; // 关闭弹框
757 - let flow_id = data;
758 - updateFlowId(flow_id); // 更新缓存flow_id
759 - getVersionList(); // 刷新版本列表
760 state.reloadLoading = true; // 打开loading 759 state.reloadLoading = true; // 打开loading
761 - getFlowData(flow_id); // 更新流程图数据 760 +
761 + getVersionList(); // 刷新版本列表
762 + updateFlowId(data); // 更新缓存flow_id
763 + getFlowData(data); // 更新流程图数据
762 } 764 }
763 } 765 }
764 766
765 - const editFlowVersion = () => { // 编辑版本 767 + /**
768 + * 编辑版本
769 + */
770 + const editFlowVersion = () => {
766 state.dialogVersionFormVisible = true; 771 state.dialogVersionFormVisible = true;
767 state.version_list.forEach((ele) => { 772 state.version_list.forEach((ele) => {
768 if (ele.code === state.select_flow_version) { 773 if (ele.code === state.select_flow_version) {
...@@ -773,7 +778,10 @@ export default { ...@@ -773,7 +778,10 @@ export default {
773 }); 778 });
774 } 779 }
775 780
776 - const deleteFlowVersion = async () => { // 删除版本 781 + /**
782 + * 删除版本
783 + */
784 + const deleteFlowVersion = async () => {
777 state.versionForm.type = 1; 785 state.versionForm.type = 1;
778 const { code } = await enableFlowVersionAPI(state.versionForm); 786 const { code } = await enableFlowVersionAPI(state.versionForm);
779 if (code) { 787 if (code) {
...@@ -786,7 +794,10 @@ export default { ...@@ -786,7 +794,10 @@ export default {
786 } 794 }
787 } 795 }
788 796
789 - const saveFlowVersionNote = async () => { // 保存版本描述 797 + /**
798 + * 保存版本描述
799 + */
800 + const saveFlowVersionNote = async () => {
790 state.versionForm.type = 0; 801 state.versionForm.type = 0;
791 const { code } = await enableFlowVersionAPI(state.versionForm); 802 const { code } = await enableFlowVersionAPI(state.versionForm);
792 if (code) { 803 if (code) {
...@@ -806,6 +817,7 @@ export default { ...@@ -806,6 +817,7 @@ export default {
806 } 817 }
807 818
808 /************** 字段权限操作 ***************/ 819 /************** 字段权限操作 ***************/
820 +
809 /** 821 /**
810 * 检查权限全选状态 822 * 检查权限全选状态
811 * @param type 823 * @param type
...@@ -846,6 +858,7 @@ export default { ...@@ -846,6 +858,7 @@ export default {
846 } 858 }
847 } 859 }
848 } 860 }
861 +
849 /** 862 /**
850 * 点击可见按钮回调 863 * 点击可见按钮回调
851 * @param val 864 * @param val
...@@ -864,8 +877,11 @@ export default { ...@@ -864,8 +877,11 @@ export default {
864 checkAuthAll('editable') 877 checkAuthAll('editable')
865 } 878 }
866 879
880 + /**
881 + * 点击全选按钮回调
882 + * @param val
883 + */
867 const onAuthAllChange = (val: any) => { 884 const onAuthAllChange = (val: any) => {
868 - // 全选可见按钮回调
869 if (val) { 885 if (val) {
870 // 全部选中 886 // 全部选中
871 state.field_auths.forEach((ele) => { 887 state.field_auths.forEach((ele) => {
...@@ -884,8 +900,12 @@ export default { ...@@ -884,8 +900,12 @@ export default {
884 }) 900 })
885 } 901 }
886 } 902 }
903 +
904 + /**
905 + * 点击全选可编辑按钮回调
906 + * @param val
907 + */
887 const onAuthAllEditChange = (val: any) => { 908 const onAuthAllEditChange = (val: any) => {
888 - // 全选可编辑按钮回调
889 if (val) { 909 if (val) {
890 // 全部选中 910 // 全部选中
891 state.field_auths.forEach((ele) => { 911 state.field_auths.forEach((ele) => {
...@@ -905,6 +925,10 @@ export default { ...@@ -905,6 +925,10 @@ export default {
905 } 925 }
906 } 926 }
907 927
928 + /**
929 + * 输入框搜索回调
930 + * @param val
931 + */
908 const onSearchAuthInput = (val: string) => { 932 const onSearchAuthInput = (val: string) => {
909 state.field_auths.forEach((ele) => { 933 state.field_auths.forEach((ele) => {
910 if (ele.name.indexOf(val) > -1) { 934 if (ele.name.indexOf(val) > -1) {
...@@ -916,15 +940,19 @@ export default { ...@@ -916,15 +940,19 @@ export default {
916 } 940 }
917 /******************* END *******************/ 941 /******************* END *******************/
918 942
919 - /****** 用户选择控件弹框 ******/ 943 + /***************** 用户选择控件弹框 ****************/
944 +
945 + /**
946 + * 打开设置用户弹框
947 + */
920 const openUserForm = () => { 948 const openUserForm = () => {
921 - // 打开设置用户弹框
922 state.dialogUserFormVisible = true; 949 state.dialogUserFormVisible = true;
923 } 950 }
924 951
925 const onCloseUserView = (status: boolean) => { 952 const onCloseUserView = (status: boolean) => {
926 state.dialogUserFormVisible = status 953 state.dialogUserFormVisible = status
927 } 954 }
955 +
928 const onConfirmUserView = async (data: any) => { 956 const onConfirmUserView = async (data: any) => {
929 state.userTags = data; 957 state.userTags = data;
930 // 自动保存流程 958 // 自动保存流程
...@@ -938,8 +966,7 @@ export default { ...@@ -938,8 +966,7 @@ export default {
938 if (paths.length) { 966 if (paths.length) {
939 const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: +flow_id, data: JSON.stringify({ nodes, edges }) }); 967 const { code, data } = await saveFlowAPI({ form_id: +form_id, flow_id: +flow_id, data: JSON.stringify({ nodes, edges }) });
940 if (code) { 968 if (code) {
941 - flow_id = data; // 更新flow_id 969 + updateFlowId(data); // 更新缓存flow_id
942 - updateFlowId(flow_id); // 更新缓存flow_id
943 console.log('满足条件的路径', paths); // 输出满足条件的路径结果数组 970 console.log('满足条件的路径', paths); // 输出满足条件的路径结果数组
944 } 971 }
945 } else { 972 } else {
...@@ -1018,7 +1045,9 @@ export default { ...@@ -1018,7 +1045,9 @@ export default {
1018 state.main_attr_set = true; // 重置更多属性的显示 1045 state.main_attr_set = true; // 重置更多属性的显示
1019 1046
1020 let flow_id = getFlowId(); // 流程id 1047 let flow_id = getFlowId(); // 流程id
1048 +
1021 state.statusLoading = true; 1049 state.statusLoading = true;
1050 +
1022 // 获取节点属性 1051 // 获取节点属性
1023 const { code, data } = await flowNodePropertyAPI({ node_code: model.id, flow_id }); 1052 const { code, data } = await flowNodePropertyAPI({ node_code: model.id, flow_id });
1024 if (code) { 1053 if (code) {
...@@ -1123,7 +1152,13 @@ export default { ...@@ -1123,7 +1152,13 @@ export default {
1123 editor.closeModel() 1152 editor.closeModel()
1124 } 1153 }
1125 1154
1126 - const setMoreAttr = (attr: any, index: any) => { // 打开更多属性细节回调 1155 + /**
1156 + * 打开更多属性细节回调
1157 + *
1158 + * @param {Object} attr - The attribute object
1159 + * @param {Number} index - The index of the attribute
1160 + */
1161 + const setMoreAttr = (attr: any, index: any) => {
1127 state.main_attr_set = false; 1162 state.main_attr_set = false;
1128 state.more_attr_data = attr['data'][index]; // 同步数据 1163 state.more_attr_data = attr['data'][index]; // 同步数据
1129 if (attr.id === 'no-1') { // 如果是审批意见,按钮文字不可以修改 1164 if (attr.id === 'no-1') { // 如果是审批意见,按钮文字不可以修改
...@@ -1132,7 +1167,13 @@ export default { ...@@ -1132,7 +1167,13 @@ export default {
1132 state.more_attr_data.showBtn = true; 1167 state.more_attr_data.showBtn = true;
1133 } 1168 }
1134 } 1169 }
1135 - const onConfirmMoreAttr = (item: any) => { // 保存更多属性细节回调 1170 +
1171 + /**
1172 + * 确认更多属性细节回调
1173 + *
1174 + * @param {Object} item - The attribute object
1175 + */
1176 + const onConfirmMoreAttr = (item: any) => {
1136 state.main_attr_set = true; 1177 state.main_attr_set = true;
1137 } 1178 }
1138 1179
...@@ -1205,13 +1246,12 @@ export default { ...@@ -1205,13 +1246,12 @@ export default {
1205 * @param {string} type - The type of the model. 1246 * @param {string} type - The type of the model.
1206 * @return {Promise} A promise that resolves when the event is handled. 1247 * @return {Promise} A promise that resolves when the event is handled.
1207 */ 1248 */
1208 - async function handleBeforeDelete( 1249 + async function handleBeforeDelete( model: myObj, type: string): Promise<any> {
1209 - model: myObj,
1210 - type: string,
1211 - ): Promise<any> {
1212 let { nodes, edges } = editor.editorState.graph.save(); 1250 let { nodes, edges } = editor.editorState.graph.save();
1251 +
1213 let start_edge_count = edges.filter((edge: { source: string }) => edge.source === 'start-node'); // 连接到开始节点连接线的数量 1252 let start_edge_count = edges.filter((edge: { source: string }) => edge.source === 'start-node'); // 连接到开始节点连接线的数量
1214 let end_edge_count = edges.filter((edge: { target: string }) => edge.target === 'end-node'); // 连接到结束节点连接线的数量 1253 let end_edge_count = edges.filter((edge: { target: string }) => edge.target === 'end-node'); // 连接到结束节点连接线的数量
1254 +
1215 // 不可以删除开始与结束连接线 1255 // 不可以删除开始与结束连接线
1216 let node_id = model.id; 1256 let node_id = model.id;
1217 for (let index = 0; index < edges.length; index++) { 1257 for (let index = 0; index < edges.length; index++) {
...@@ -1225,11 +1265,9 @@ export default { ...@@ -1225,11 +1265,9 @@ export default {
1225 return Promise.reject('reject') 1265 return Promise.reject('reject')
1226 } 1266 }
1227 } 1267 }
1268 +
1228 if (type === 'node') { 1269 if (type === 'node') {
1229 if (model.id === 'start-node') { 1270 if (model.id === 'start-node') {
1230 - // state.editorLoading = true
1231 - // await delay(1000)
1232 - // state.editorLoading = false
1233 ElNotification.error('不可以删除【开始】节点') 1271 ElNotification.error('不可以删除【开始】节点')
1234 return Promise.reject('reject') 1272 return Promise.reject('reject')
1235 } 1273 }
...@@ -1237,6 +1275,7 @@ export default { ...@@ -1237,6 +1275,7 @@ export default {
1237 ElNotification.error('不可以删除【结束】节点') 1275 ElNotification.error('不可以删除【结束】节点')
1238 return Promise.reject('reject') 1276 return Promise.reject('reject')
1239 } 1277 }
1278 +
1240 // 流程图中必须有一个流程节点 1279 // 流程图中必须有一个流程节点
1241 let is_flow_node = nodes.filter((node: { control: string }) => node.control === 'flow' || node.control === 'cc'); 1280 let is_flow_node = nodes.filter((node: { control: string }) => node.control === 'flow' || node.control === 'cc');
1242 if (is_flow_node.length === 1) { 1281 if (is_flow_node.length === 1) {
...@@ -1244,6 +1283,7 @@ export default { ...@@ -1244,6 +1283,7 @@ export default {
1244 return Promise.reject('reject') 1283 return Promise.reject('reject')
1245 } 1284 }
1246 } 1285 }
1286 +
1247 if (type === 'edge') { 1287 if (type === 'edge') {
1248 if (model.source === 'start-node' && start_edge_count.length === 1) { 1288 if (model.source === 'start-node' && start_edge_count.length === 1) {
1249 ElNotification.error('不可以删除【开始】连接线') 1289 ElNotification.error('不可以删除【开始】连接线')
...@@ -1268,8 +1308,9 @@ export default { ...@@ -1268,8 +1308,9 @@ export default {
1268 editor.closeModel(); 1308 editor.closeModel();
1269 } 1309 }
1270 if (type === 'edge') { 1310 if (type === 'edge') {
1271 - console.log('delete edge') 1311 + // console.log('delete edge')
1272 } 1312 }
1313 +
1273 flowData.value.nodes = editor.editorState.graph.save().nodes 1314 flowData.value.nodes = editor.editorState.graph.save().nodes
1274 flowData.value.edges = editor.editorState.graph.save().edges 1315 flowData.value.edges = editor.editorState.graph.save().edges
1275 } 1316 }
...@@ -1436,8 +1477,7 @@ export default { ...@@ -1436,8 +1477,7 @@ export default {
1436 type: 'success', 1477 type: 'success',
1437 message: '保存流程图成功', 1478 message: '保存流程图成功',
1438 }); 1479 });
1439 - flow_id = data; // 更新flow_id 1480 + updateFlowId(data); // 更新缓存flow_id
1440 - updateFlowId(flow_id); // 更新缓存flow_id
1441 console.log(paths); // 输出满足条件的路径结果数组 1481 console.log(paths); // 输出满足条件的路径结果数组
1442 } 1482 }
1443 } else { 1483 } else {
...@@ -1598,7 +1638,9 @@ body { ...@@ -1598,7 +1638,9 @@ body {
1598 color: #dcdfe6; 1638 color: #dcdfe6;
1599 } 1639 }
1600 .icon { 1640 .icon {
1601 - display: inline-block; vertical-align: middle; line-height: 10px; 1641 + display: inline-block;
1642 + vertical-align: middle;
1643 + line-height: 10px;
1602 } 1644 }
1603 } 1645 }
1604 1646
...@@ -1640,7 +1682,7 @@ body { ...@@ -1640,7 +1682,7 @@ body {
1640 1682
1641 .select-version-wrapper { 1683 .select-version-wrapper {
1642 position: absolute; 1684 position: absolute;
1643 - top:20px; 1685 + top: 20px;
1644 right: 15px; 1686 right: 15px;
1645 .select-version-show { 1687 .select-version-show {
1646 margin-left: 15px; 1688 margin-left: 15px;
......
1 /* 1 /*
2 * @Date: 2023-11-30 10:34:01 2 * @Date: 2023-11-30 10:34:01
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2023-11-30 11:32:14 4 + * @LastEditTime: 2023-12-02 15:08:01
5 * @FilePath: /vue-flow-editor/doc/api/index.js 5 * @FilePath: /vue-flow-editor/doc/api/index.js
6 * @Description: 文件描述 6 * @Description: 文件描述
7 */ 7 */
...@@ -19,7 +19,7 @@ const Api = { ...@@ -19,7 +19,7 @@ const Api = {
19 /** 19 /**
20 * @description: 版本列表 20 * @description: 版本列表
21 * @param {*} form_id 表单 ID 21 * @param {*} form_id 表单 ID
22 - * @returns 22 + * @returns 版本列表,每个用户对象包含 code 流程版本号,status 流程状态,1=启用,0=未启用,id 流程id,note 流程说明
23 */ 23 */
24 export const flowVersionAPI = (params) => fn(fetch.get(Api.FLOW_VERSION, params)); 24 export const flowVersionAPI = (params) => fn(fetch.get(Api.FLOW_VERSION, params));
25 25
......