riku
2024-10-15 e38ea524ec4107ed7f8b1d7491a4177632dd3402
src/views/fysp/task/TaskManage.vue
@@ -3,7 +3,6 @@
    <template #header>
      <FYSearchBar @search="search">
        <template #options>
          <!-- 区县 -->
          <FYOptionLocation
            :allOption="true"
            :level="3"
@@ -11,13 +10,14 @@
            v-model:value="formSearch.locations"
          ></FYOptionLocation>
        </template>
        <!-- <template #buttons>
          <slot name="buttons"></slot>
        </template> -->
      </FYSearchBar>
    </template>
    <template #aside>
      <SideList :items="tasks" :loading="sideLoading" @item-click="chooseTask"></SideList>
      <SideList
        :items="tasks"
        :loading="sideLoading"
        @item-click="chooseTask"
      ></SideList>
    </template>
    <template #main>
      <ToolBar
@@ -31,32 +31,56 @@
        class="el-scrollbar"
        v-loading="mainLoading"
      >
        <div><el-text>监管计划</el-text></div>
        <el-row justify="space-between">
          <div><el-text>监管计划</el-text></div>
          <el-button type="warning" size="small" @click="editPlan"
            >计划调整</el-button
          >
          <CompMonitorPlan
            :task="curTask.data"
            @date-change="onDateChange"
          ></CompMonitorPlan>
        </el-row>
        <el-divider></el-divider>
        <el-button type="primary" size="small" @click="editTask">场景调整</el-button>
        <div><el-text>监管场景</el-text></div>
        <el-row justify="space-between">
          <div><el-text>监管场景</el-text></div>
          <el-button type="warning" size="small" @click="editTask"
            >场景调整</el-button
          >
        </el-row>
        <CompMonitorObj :data="curMonitorObjList"></CompMonitorObj>
        <!-- <div><el-text>监管场景</el-text></div>
        <div>
          <el-space wrap>
            <ItemMonitorObj
              v-for="item in curMonitorObjList"
              :key="item.movid"
              :item="item"
            ></ItemMonitorObj>
          </el-space>
        </div> -->
      </el-scrollbar>
      <el-empty v-else description="暂无记录" v-loading="mainLoading" />
    </template>
  </BaseContentLayout>
  <el-drawer
    v-model="subTaskDrawer"
    title="单日计划"
    direction="btt"
    size="80%"
    destroy-on-close
  >
    <CompDayTask :day-task="curDayTask"></CompDayTask>
  </el-drawer>
</template>
<script>
import taskApi from '@/api/fysp/taskApi';
import CompMonitorObj from './components/CompMonitorObj.vue';
import CompMonitorPlan from './components/CompMonitorPlan.vue';
import CompDayTask from './components/CompDayTask.vue';
export default {
  components: { CompMonitorObj },
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被验证前调用
    // 不能获取组件实例 `this` !
    // 因为当守卫执行时,组件实例还没被创建!
    next((vm) => {
      if (from.name == 'monitorObjEdit' && vm.task) {
        vm.chooseTask(vm.task);
      }
    });
  },
  components: { CompMonitorObj, CompMonitorPlan, CompDayTask },
  data() {
    return {
      formSearch: {
@@ -73,19 +97,25 @@
      tasks: [],
      // 当前任务的监管对象
      curMonitorObjList: [],
      // 当前任务的展示中的监管对象
      showMonitorObjList: [],
      //当前选中的任务
      curTask: {},
      //操作按钮
      buttons: [
        {
          name: '计划调整',
          color: 'success'
        },
        {
          name: '场景调整',
          color: 'warning'
        }
      ]
        // {
        //   name: '计划调整',
        //   color: 'success'
        // },
        // {
        //   name: '场景调整',
        //   color: 'warning'
        // }
      ],
      // 子任务编辑弹出框
      subTaskDrawer: false,
      // 当前选择的日任务
      curDayTask: {}
    };
  },
  computed: {
@@ -141,6 +171,7 @@
      return type;
    },
    chooseTask(task) {
      this.task = task;
      this.sideLoading = false;
      this.mainLoading = true;
      taskApi
@@ -161,6 +192,19 @@
          task: encodeURIComponent(JSON.stringify(this.curTask.data))
        }
      });
    },
    editPlan() {
      this.$router.push({
        name: 'monitorPlanEdit',
        query: {
          data: encodeURIComponent(JSON.stringify(this.curMonitorObjList)),
          task: encodeURIComponent(JSON.stringify(this.curTask.data))
        }
      });
    },
    onDateChange(dayTask) {
      this.subTaskDrawer = true;
      this.curDayTask = dayTask;
    }
  },
  mounted() {