riku
5 天以前 f19e5267cc23b1c714dc746239864f33ed715dd9
src/views/fysp/task/TaskManage.vue
@@ -31,39 +31,52 @@
        class="el-scrollbar"
        v-loading="mainLoading"
      >
        <el-row justify="space-between">
          <!-- <div><el-text>监管计划</el-text></div>
        <!-- <div><el-text>监管计划</el-text></div>
          <el-button type="warning" size="small" @click="editPlan"
            >计划调整</el-button
          > -->
          <el-tabs model-value="first">
            <el-tab-pane label="监管计划" name="first">
              <el-row>
                <el-col :span="curSubTaskList ? 16 : 24">
                  <CompMonitorPlan
                    ref="planRef"
                    :task="curTask.data"
                    @date-change="onDateChange"
                  ></CompMonitorPlan>
                </el-col>
                <el-col v-if="curSubTaskList" :span="8">
                  <CompSubTaskList
                    create
                    v-model="curSubTaskList"
                    :loading="subTaskLoading"
                    :create-loading="daytaskLoading"
                    height="56vh"
                    @add="handleAddSubtask"
                    @submit="handleSubtaskSubmit"
                  ></CompSubTaskList>
                </el-col>
              </el-row>
            </el-tab-pane>
            <!-- <el-tab-pane label="监管地图" name="second">
              <CompTaskMap></CompTaskMap>
            </el-tab-pane> -->
          </el-tabs>
        <!-- <el-tabs model-value="first">
            <el-tab-pane label="巡查计划" name="first"> -->
        <el-row justify="space-between" style="padding: 16px 0px 16px 16px">
          <el-text size="large">巡查计划</el-text>
          <!-- <el-button type="primary" size="small" @click="sceneMapDialog = true">
            进入场景地图<el-icon class="el-icon--right"><Right /></el-icon>
          </el-button> -->
        </el-row>
        <div class="plan-container">
          <el-row>
            <el-col :span="curSubTaskList ? 16 : 24">
              <CompMonitorPlan
                :loading="daytaskLoading"
                ref="planRef"
                :task="curTask.data"
                :day-task-list="curDayTaskList"
                @date-change="onDateChange"
              ></CompMonitorPlan>
            </el-col>
            <el-col v-if="curSubTaskList" :span="8">
              <!-- <el-affix target=".plan-container" :offset="140"> -->
                <CompSubTaskList
                  create
                  v-model="curSubTaskList"
                  :date="curDay"
                  :loading="subTaskLoading"
                  :create-loading="daytaskCreateLoading"
                  height="66vh"
                  @openMap="sceneMapDialog = true"
                  @add="handleAddSubtask"
                  @submit="onSubtaskUpdate"
                  @remove="onSubtaskUpdate"
                ></CompSubTaskList>
              <!-- </el-affix> -->
            </el-col>
          </el-row>
        </div>
        <!-- </el-tab-pane>
            <el-tab-pane label="场景地图" name="second"> -->
        <!-- <CompTaskMap :plans="curMonitorObjList"></CompTaskMap> -->
        <!-- </el-tab-pane>
          </el-tabs> -->
        <el-divider></el-divider>
        <el-row justify="space-between">
          <div><el-text>监管场景</el-text></div>
@@ -91,12 +104,11 @@
    title="日计划管理"
    direction="btt"
    size="96%"
    destroy-on-close
  >
    <CompDayTask
      :day-task="curDayTask"
      :mObjList="curMonitorObjList"
      @submit="handleSubtaskSubmit"
      @submit="onSubtaskUpdate"
    ></CompDayTask>
  </el-drawer>
  <el-dialog
@@ -113,6 +125,19 @@
      @cancel="topTaskAddVisible = false"
    ></CompTaskEdit>
  </el-dialog>
  <el-drawer
    v-model="sceneMapDialog"
    title="场景地图"
    direction="btt"
    size="100%"
    body-class="el-drawer__custom"
  >
    <CompTaskMap
      :plans="curMonitorObjList"
      :day-task="curDayTask"
      @submit="onSubtaskUpdate"
    ></CompTaskMap>
  </el-drawer>
</template>
<script>
@@ -167,6 +192,9 @@
      showMonitorObjList: [],
      //当前选中的任务
      curTask: {},
      //当前选中的日任务
      curDayTaskList: [],
      daytaskLoading: false,
      //操作按钮
      buttons: [
        {
@@ -186,12 +214,14 @@
      // 当前选择的日任务
      curDayTask: {},
      curDay: undefined,
      daytaskLoading: false,
      daytaskCreateLoading: false,
      // 当前选择的日任务下的子任务
      curSubTaskList: undefined,
      subTaskLoading: false,
      // 总任务新增弹出框
      topTaskAddVisible: false
      topTaskAddVisible: false,
      // 场景地图弹出框
      sceneMapDialog: false
    };
  },
  provide() {
@@ -210,7 +240,10 @@
      });
      return [
        { name: '场景数', value: total },
        { name: '未巡查', value: total - inspected },
        {
          name: '未巡查',
          value: total - inspected > 0 ? total - inspected : 0
        },
        { name: '已巡查', value: inspected }
      ];
    }
@@ -270,6 +303,21 @@
        })
        .finally(() => {
          this.mainLoading = false;
          this.fetchDayTasks();
        });
    },
    fetchDayTasks() {
      // 获取日任务统计信息
      this.dayTaskLoading = true;
      this.mainLoading = true;
      return taskApi
        .fetchDayTasks(this.curTask.data.tguid)
        .then((res) => {
          this.curDayTaskList = res;
        })
        .finally(() => {
          this.dayTaskLoading = false;
          this.mainLoading = false;
        });
    },
    editTask() {
@@ -316,11 +364,12 @@
        }
      });
    },
    handleSubtaskSubmit() {
      this.subTaskLoading = true;
      this.$refs.planRef
        .fetchDayTasks()
        .finally(() => (this.subTaskLoading = false));
    onSubtaskUpdate() {
      // this.subTaskLoading = true;
      // this.$refs.planRef
      //   .fetchDayTasks()
      //   .finally(() => (this.subTaskLoading = false));
      this.fetchDayTasks();
    },
    handleAddSubtask() {
      // 判断当日是否有日任务,若没有,先创建在跳转子任务创建界面
@@ -340,7 +389,7 @@
        _dayTask.settime = dayjs().toDate();
        _dayTask.t1stverifytime = dayjs().toDate();
        _dayTask.runingstatus = '未执行';
        this.daytaskLoading = true;
        this.daytaskCreateLoading = true;
        taskApi
          .putTask(_dayTask)
          .then((res) => {
@@ -354,9 +403,9 @@
              totalTaskNum: 0
            };
            this.subTaskDrawer = true;
            this.handleSubtaskSubmit();
            this.onSubtaskUpdate();
          })
          .finally(() => (this.daytaskLoading = false));
          .finally(() => (this.daytaskCreateLoading = false));
      }
    }
  },
@@ -375,5 +424,15 @@
.el-scrollbar {
  height: calc((100vh - 60px - 20px * 2 - var(--height-toolbar)));
  padding-right: 8px;
}
.plan-container {
  /* background-color: aliceblue; */
}
</style>
<style>
.el-drawer__custom {
  padding: 0px !important;
}
</style>