zhongrj
2024-03-27 cc1c0a396698648256c350f6f0fe2cb2f0b02c7e
src/views/commandQuery/taskDistribution.vue
@@ -1,13 +1,14 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:14
 * menu-name 监管信息
 */
/* * @Author: Morpheus * @Date: 2021-07-07 17:30:05 * @Last Modified by:
Morpheus * @Last Modified time: 2021-11-25 14:54:40 * menu-name 监管信息 */
<template>
  <basic-container>
  <basic-container
    :class="[
      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '',
    ]"
  >
    <avue-crud
      class="tablesss"
      :option="option"
      :table-loading="loading"
      :data="data"
@@ -15,9 +16,6 @@
      :permission="permissionList"
      v-model="form"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
@@ -26,7 +24,57 @@
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="el-icon-location-outline"
          :size="size"
          :type="type"
          @click.stop="seeLocation(row)"
          >位置查看</el-button
        >
        <el-button
          icon="el-icon-place"
          :size="size"
          :type="type"
          @click.stop="seeTrack(row)"
          >轨迹查看
        </el-button>
      </template>
    </avue-crud>
    <el-dialog
      class="see-location"
      title="位置查看"
      :visible.sync="seeLocationFlag"
      :modal-append-to-body="false"
      width="width"
    >
      <Map v-if="seeLocationFlag" ref="locationForm" />
    </el-dialog>
    <el-dialog
      class="see-track"
      title="轨迹查看"
      :visible.sync="seeTrackFlag"
      :modal-append-to-body="false"
      width="width"
    >
      <div class="search">
        选择时间:<el-date-picker
          v-model="trackTime"
          type="datetimerange"
          range-separator="至"
          start-placeholder="开始日期"
          size="mini"
          :editable="false"
          end-placeholder="结束日期"
        >
        </el-date-picker>
        <el-button type="text" @click="lookTrack"> 查看轨迹 </el-button>
      </div>
      <Map v-if="seeTrackFlag" ref="tarckForm" />
    </el-dialog>
  </basic-container>
</template>
@@ -42,10 +90,20 @@
// import { datasing } from "./dataqualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
import { getLisperetaskDistribution } from "@/api/commandQuery/commandQuery";
import {
  getDirectiveLiveLocationVoList,
  getDirectiveLocusInfoList,
} from "@/api/map/people";
import peoplePng from "@/assets/img/people.png";
export default {
  data() {
    return {
      seeLocationFlag: false,
      seeTrackFlag: false,
      trackTime: [],
      rowData: null,
      form: {},
      query: {},
      loading: true,
@@ -53,15 +111,18 @@
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      selectionList: [],
      option: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: false,
        menu: false,
        selection: true,
        menu: true,
        searchShowBtn: false,
@@ -74,6 +135,7 @@
        index: true,
        viewBtn: true,
        dialogClickModal: false,
        ...this.$store.state.control.clearOtherBut,
        column: [
          //   {
@@ -110,8 +172,8 @@
            label: "发送指令人",
            prop: "sendName",
            search: true,
            searchLabelWidth: 120,
            searchSpan: 5,
            searchLabelWidth: 90,
            searchSpan: 4,
            //     hide: true,
            //     editDisplay: false,
            //     addDisplay: false
@@ -120,8 +182,9 @@
          {
            label: "接收指令人",
            prop: "receiveName",
            search: true,
            searchLabelWidth: 120,
            // search: true,
            // searchSpan: 4,
            searchLabelWidth: 90,
          },
          {
            label: "发送指令时间",
@@ -133,9 +196,18 @@
          {
            label: "指令内容",
            prop: "content",
            search: true,
            searchSpan: 4,
          },
          {
            label: "图片",
            prop: "url",
            dataType: "string",
            type: "img",
          },
        ],
      },
      data: [
        // {
        //   deptid: "江西众泰保安公司",
@@ -166,57 +238,10 @@
      return ids.join(",");
    },
  },
  mounted() {
    this.$store.commit("setWindowSizeHeightAdd");
  },
  methods: {
    rowSave(row, done, loading) {
      adddata(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdates(row, index, done, loading) {
      // console.log(42342);
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    // beforeOpen(done, type) {
    //   if (["edit", "view"].includes(type)) {
    //     getDetail(this.form.id).then((res) => {
@@ -262,7 +287,11 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data, "getLisperetaskDistribution");
        // for (var k in this.data) {
        //   this.data[k]["url"] = "https://avuejs.com/images/logo-bg.jpg";
        // }
        this.$store.commit("setWindowSizeHeightAdd");
        // console.log(this.data, "getLisperetaskDistribution");
        this.loading = false;
        // this.selectionClear();
      });
@@ -311,9 +340,105 @@
        query: obj,
      });
    },
    seeLocation(row) {
      this.seeLocationFlag = true;
      getDirectiveLiveLocationVoList({
        type: 1,
        userIds: row.receiveDirectiveIds,
      }).then((result) => {
        var res = result.data.data;
        if (JSON.stringify(res) != "[]") {
          res.forEach((data) => {
            this.$refs.locationForm.addEntitys(
              {
                LGTD: data.longitude,
                LTTD: data.latitude,
                name: "人员位置",
              },
              peoplePng,
              0.5,
              "peoplelayer",
              "peopleAddlayer"
            );
          });
        }
      });
    },
    seeTrack(row) {
      this.trackTime = [];
      this.rowData = "";
      this.rowData = row;
      this.seeTrackFlag = true;
    },
    lookTrack() {
      if (this.trackTime.length == 0) {
        this.$message({ message: "请选择开始时间", duration: 2000 });
        return;
      }
      const startTime = new Date(this.trackTime[0]);
      const start =
        startTime.getFullYear() +
        "-" +
        this.disposeTime(startTime.getMonth() + 1) +
        "-" +
        this.disposeTime(startTime.getDate()) +
        " " +
        this.disposeTime(startTime.getHours()) +
        ":" +
        this.disposeTime(startTime.getMinutes()) +
        ":" +
        this.disposeTime(startTime.getSeconds());
      if (this.trackTime.length == 1) {
        this.$message({ message: "请选择结束时间", duration: 2000 });
        return;
      }
      const endTime = new Date(this.trackTime[1]);
      const end =
        endTime.getFullYear() +
        "-" +
        this.disposeTime(endTime.getMonth() + 1) +
        "-" +
        this.disposeTime(endTime.getDate()) +
        " " +
        this.disposeTime(endTime.getHours()) +
        ":" +
        this.disposeTime(endTime.getMinutes()) +
        ":" +
        this.disposeTime(endTime.getSeconds());
      getDirectiveLocusInfoList({
        userIds: this.rowData.receiveDirectiveIds,
        type: 1,
        startTime: start,
        endTime: end,
      }).then((res) => {
        var result = res.data.data;
        if (JSON.stringify(res) != "[]") {
          result.forEach((item) => {
            if (item.length > 1) {
              let arr = [];
              item.forEach((data) => {
                arr.push([Number(data.longitude), Number(data.latitude)]);
              });
              this.$refs.tarckForm.addLines(arr);
            }
          });
        }
      });
    },
    // 处理时间补零操作
    disposeTime(s) {
      return s < 10 ? "0" + s : s;
    },
  },
};
</script>
<style>
</style>
<style></style>