kuaifan 5 年之前
父节点
当前提交
d180d38db2

+ 9 - 1
app/Http/Controllers/Api/ProjectController.php

@@ -557,6 +557,7 @@ class ProjectController extends Controller
         //
         $levels = [];
         $logArray = [];
+        $upLevel = [];
         foreach ($newSort AS $sort => $item) {
             list($newLevel, $newTask) = explode(':', $item);
             list($oldLevel, $oldTask) = explode(':', $oldSort[$sort]);
@@ -596,6 +597,10 @@ class ProjectController extends Controller
                                     'title' => $task['title'],
                                 ])
                             ];
+                            $upLevel[] = [
+                                'id' => $task['id'],
+                                'level' => $newLevel,
+                            ];
                         }
                         if ($task['userorder'] != $userorder) {
                             $upArray['userorder'] = $userorder;
@@ -613,7 +618,10 @@ class ProjectController extends Controller
             DB::table('project_log')->insert($logArray);
         }
         //
-        return Base::retSuccess('保存成功!', $levels);
+        return Base::retSuccess('保存成功!', [
+            'levels' => $levels,
+            'levelTask' => $upLevel,
+        ]);
     }
 
     /**

+ 12 - 4
resources/assets/js/main/main.js

@@ -223,15 +223,23 @@ import '../../sass/main.scss';
         /**
          * 监听任务发生变化
          * @param callback
+         * @param callSpecial 是否监听几种特殊情况
          */
-        setOnTaskInfoListener(callback) {
+        setOnTaskInfoListener(callback, callSpecial) {
             if (typeof callback === "function") {
-                $A.__taskInfoListener.push(callback);
+                $A.__taskInfoListener.push({
+                    special: callSpecial === true,
+                    callback: callback,
+                });
             }
         },
         triggerTaskInfoListener(act, taskDetail) {
-            $A.__taskInfoListener.forEach((callback) => {
-                typeof callback === "function" && callback(act, taskDetail);
+            $A.__taskInfoListener.forEach((item) => {
+                if (typeof item.callback === "function") {
+                    if (act.indexOf(['deleteproject', 'deletelabel', 'leveltask']) === -1 || item.special === true) {
+                        item.callback(act, taskDetail);
+                    }
+                }
             });
         },
         __taskInfoListener: [],

+ 1 - 0
resources/assets/js/main/mixins/project.js

@@ -75,6 +75,7 @@ export default {
                             setTimeout(() => {
                                 if (res.ret === 1) {
                                     this.$Message.success(res.msg);
+                                    $A.triggerTaskInfoListener('deleteproject', projectid);
                                 }else{
                                     this.$Modal.error({title: this.$L('温馨提示'), content: res.msg });
                                 }

+ 1 - 0
resources/assets/js/main/pages/project-panel.vue

@@ -577,6 +577,7 @@
                                 setTimeout(() => {
                                     if (res.ret === 1) {
                                         this.$Message.success(res.msg);
+                                        $A.triggerTaskInfoListener('deletelabel', item.id);
                                     } else {
                                         this.$Modal.error({title: this.$L('温馨提示'), content: res.msg });
                                     }

+ 1 - 0
resources/assets/js/main/pages/todo.vue

@@ -649,6 +649,7 @@
                     success: (res) => {
                         if (res.ret === 1) {
                             this.$Message.success(res.msg);
+                            $A.triggerTaskInfoListener('leveltask', res.data.levelTask);
                         } else {
                             this.refreshTask();
                             this.$Modal.error({title: this.$L('温馨提示'), content: res.msg});