Quellcode durchsuchen

更新删除节点及用户操作

lex-xin vor 4 Jahren
Ursprung
Commit
6f76efbe9a
2 geänderte Dateien mit 38 neuen und 10 gelöschten Zeilen
  1. 30 2
      src/components/wfd/plugins/command.js
  2. 8 8
      src/views/system/sysuser/index.vue

+ 30 - 2
src/components/wfd/plugins/command.js

@@ -88,7 +88,24 @@ class Command {
     this.queue = []
     this.destroyed = true
   }
-
+  __queueRemote(graph, node, nodeId) {
+    const nodeIds = []
+    // 当前节点所有的出边
+    const edges = node.getOutEdges() || []
+    const nodeModel = node.getModel()
+    if (nodeModel.clazz !== 'end') {
+      nodeIds.push(nodeModel.id)
+    }
+    edges.forEach(e => {
+      const targetNode = e.getTarget()
+      const targetNodeModel = targetNode.getModel()
+      if (!nodeId || nodeId != targetNodeModel.id) {
+        const ids = this.__queueRemote(graph, targetNode, nodeModel.id)
+        nodeIds.push(...ids)
+      }
+    })
+    return nodeIds
+  }
   initCommands() {
     const cmdPlugin = this
     cmdPlugin.registerCommand('add', {
@@ -129,7 +146,18 @@ class Command {
         const selectedItems = graph.get('selectedItems')
         graph.emit('beforedelete', { items: selectedItems })
         if (selectedItems && selectedItems.length > 0) {
-          selectedItems.forEach(i => graph.remove(i))
+          selectedItems.forEach(i => {
+            const node = graph.findById(i)
+            const nodeModel = node.getModel()
+            if (nodeModel.clazz !== 'end') {
+              const ids = cmdPlugin.__queueRemote(graph, node) || []
+              ids.forEach(id => {
+                graph.remove(id)
+              })
+            } else {
+              graph.remove(i)
+            }
+          })
         }
         graph.emit('afterdelete', { items: selectedItems })
       },

+ 8 - 8
src/views/system/sysuser/index.vue

@@ -58,7 +58,7 @@
           </el-form>
 
           <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
+            <!-- <el-col :span="1.5">
               <el-button
                 v-permisaction="['system:sysuser:add']"
                 type="primary"
@@ -66,7 +66,7 @@
                 size="mini"
                 @click="handleAdd"
               >新增</el-button>
-            </el-col>
+            </el-col> -->
             <el-col :span="1.5">
               <el-button
                 v-permisaction="['system:sysuser:edit']"
@@ -77,7 +77,7 @@
                 @click="handleUpdate"
               >编辑</el-button>
             </el-col>
-            <el-col :span="1.5">
+            <!-- <el-col :span="1.5">
               <el-button
                 v-permisaction="['system:sysuser:remove']"
                 type="danger"
@@ -86,7 +86,7 @@
                 :disabled="multiple"
                 @click="handleDelete"
               >删除</el-button>
-            </el-col>
+            </el-col> -->
           </el-row>
 
           <el-table
@@ -130,7 +130,7 @@
                   icon="el-icon-edit"
                   @click="handleUpdate(scope.row)"
                 >编辑</el-button>
-                <el-button
+                <!-- <el-button
                   v-if="scope.row.username !== 'admin'"
                   v-permisaction="['system:sysuser:remove']"
                   size="mini"
@@ -144,7 +144,7 @@
                   type="text"
                   icon="el-icon-key"
                   @click="handleResetPwd(scope.row)"
-                >重置</el-button>
+                >重置</el-button> -->
               </template>
             </el-table-column>
           </el-table>
@@ -184,11 +184,11 @@
               <el-input v-model="form.phone" clearable placeholder="请输入手机号码" maxlength="11" />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="邮箱" prop="email" style="width: 90%">
               <el-input v-model="form.email" clearable placeholder="请输入邮箱" maxlength="50" />
             </el-form-item>
-          </el-col>
+          </el-col> -->
           <el-col :span="12">
             <el-form-item label="角色" style="width: 90%">
               <el-select v-model="form.roleId" filterable clearable placeholder="请选择" style="width: 100%" @change="$forceUpdate()">