From e8a728024b32be3d227e406c13aee47bb254d10f Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 13 Aug 2021 09:05:33 +0800
Subject: [PATCH] 视频,地图等相关修改

---
 src/views/commandQuery/taskDistribution.vue |  724 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 432 insertions(+), 292 deletions(-)

diff --git a/src/views/commandQuery/taskDistribution.vue b/src/views/commandQuery/taskDistribution.vue
index be261ff..f182406 100644
--- a/src/views/commandQuery/taskDistribution.vue
+++ b/src/views/commandQuery/taskDistribution.vue
@@ -2,32 +2,74 @@
  * @Author: Morpheus
  * @Date: 2021-07-07 17:30:05
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-10 16:06:14
+ * @Last Modified time: 2021-08-12 21:00:27
  * menu-name 监管信息
  */
 <template>
-  <basic-container>
-    <avue-crud
-      :option="option"
-      :table-loading="loading"
-      :data="data"
-      :page.sync="page"
-      :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"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-    >
-    </avue-crud>
-  </basic-container>
+    <basic-container>
+        <avue-crud :option="option"
+                   :table-loading="loading"
+                   :data="data"
+                   :page.sync="page"
+                   :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"
+                   @current-change="currentChange"
+                   @size-change="sizeChange"
+                   @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 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 ref="tarckForm" />
+        </el-dialog>
+    </basic-container>
 </template>
 
 <script>
@@ -42,286 +84,384 @@
 // import { datasing } from "./dataqualificationExamination";
 // import { getList } from "@/api/qualificationExamination/qualificationExamination";
 import { getLisperetaskDistribution } from "@/api/commandQuery/commandQuery";
+import { getPosition, getTrack } from "@/api/map/people";
+import peoplePng from "@/assets/img/people.png";
 
 export default {
-  data() {
-    return {
-      form: {},
-      query: {},
-      loading: true,
-      page: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-      selectionList: [],
-      option: {
-        // 操作栏多余按钮去除
-        delBtn: false,
-        editBtn: false,
-        addBtn: false,
-        selection: true,
-        menu: false,
+    data () {
+        return {
+            seeLocationFlag: false,
+            seeTrackFlag: false,
+            trackTime: [],
+            rowData: null,
+            form: {},
+            query: {},
+            loading: true,
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+            },
 
-        searchShowBtn: false,
+            selectionList: [],
 
-        align: "center",
-        height: "auto",
-        calcHeight: 30,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 6,
-        index: true,
-        viewBtn: true,
-        dialogClickModal: false,
+            option: {
+                // 操作栏多余按钮去除
+                delBtn: false,
+                editBtn: false,
+                addBtn: false,
+                selection: true,
+                menu: true,
 
-        column: [
-          //   {
-          //     label: "类型",
-          //     prop: "type",
-          //     overHidden: true,
-          //   },
-          // {
-          //   label: "deptId",
-          //   prop: "deptId",
-          //   overHidden: true,
-          //   // labelWidth: 120,
-          //   // searchLabelWidth: 120,
-          //   searchSpan: 4,
-          //   dicUrl:
-          //     "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-          //   props: {
-          //     label: "title",
-          //     value: "id",
-          //   },
-          //   // hide: true,
-          //   search: true,
-          //   // overHidden: true,
-          //   type: "select",
-          //   // rules: [
-          //   //   {
-          //   //     required: true,
-          //   //     message: "请输入保安公司",
-          //   //     trigger: "blur",
-          //   //   },
-          //   // ],
-          // },
-          {
-            label: "发送指令人",
-            prop: "sendName",
-            search: true,
-            searchLabelWidth: 90,
-            searchSpan: 4,
-            //     hide: true,
-            //     editDisplay: false,
-            //     addDisplay: false
-          },
+                searchShowBtn: false,
 
-          {
-            label: "接收指令人",
-            prop: "receiveName",
-            search: true,
-            searchLabelWidth: 90,
-            searchSpan: 4,
-          },
-          {
-            label: "发送指令时间",
-            prop: "sendTime",
-            type: "date",
-            format: "yyyy-MM-dd hh:mm:ss",
-            valueFormat: "yyyy-MM-dd hh:mm:ss",
-          },
-          {
-            label: "指令内容",
-            prop: "content",
-          },
-          {
-            label: "图片",
-            prop: "url",
-            dataType: "string",
-            type: "img",
-          },
-        ],
-      },
-      data: [
-        // {
-        //   deptid: "江西众泰保安公司",
-        //   punishtype: 2,
-        //   punishreason: "非法施工",
-        //   punishresult: "没收全部非法所得财产,并罚款3W元",
-        //   punishtime: "2021-01-01",
-        //   punisnum: 110110110120,
+                align: "center",
+                height: "auto",
+                calcHeight: 30,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                index: true,
+                viewBtn: true,
+                dialogClickModal: false,
+
+                column: [
+                    //   {
+                    //     label: "类型",
+                    //     prop: "type",
+                    //     overHidden: true,
+                    //   },
+                    // {
+                    //   label: "deptId",
+                    //   prop: "deptId",
+                    //   overHidden: true,
+                    //   // labelWidth: 120,
+                    //   // searchLabelWidth: 120,
+                    //   searchSpan: 4,
+                    //   dicUrl:
+                    //     "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+                    //   props: {
+                    //     label: "title",
+                    //     value: "id",
+                    //   },
+                    //   // hide: true,
+                    //   search: true,
+                    //   // overHidden: true,
+                    //   type: "select",
+                    //   // rules: [
+                    //   //   {
+                    //   //     required: true,
+                    //   //     message: "请输入保安公司",
+                    //   //     trigger: "blur",
+                    //   //   },
+                    //   // ],
+                    // },
+                    {
+                        label: "发送指令人",
+                        prop: "sendName",
+                        search: true,
+                        searchLabelWidth: 90,
+                        searchSpan: 4,
+                        //     hide: true,
+                        //     editDisplay: false,
+                        //     addDisplay: false
+                    },
+
+                    {
+                        label: "接收指令人",
+                        prop: "receiveName",
+                        search: true,
+                        searchLabelWidth: 90,
+                        searchSpan: 4,
+                    },
+                    {
+                        label: "发送指令时间",
+                        prop: "sendTime",
+                        type: "date",
+                        format: "yyyy-MM-dd hh:mm:ss",
+                        valueFormat: "yyyy-MM-dd hh:mm:ss",
+                    },
+                    {
+                        label: "指令内容",
+                        prop: "content",
+                    },
+                    {
+                        label: "图片",
+                        prop: "url",
+                        dataType: "string",
+                        type: "img",
+                    },
+                ],
+            },
+
+            data: [
+                // {
+                //   deptid: "江西众泰保安公司",
+                //   punishtype: 2,
+                //   punishreason: "非法施工",
+                //   punishresult: "没收全部非法所得财产,并罚款3W元",
+                //   punishtime: "2021-01-01",
+                //   punisnum: 110110110120,
+                // },
+            ],
+        };
+    },
+    computed: {
+        ...mapGetters(["permission"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(this.permission.post_add, false),
+                viewBtn: this.vaildData(this.permission.post_view, false),
+                delBtn: this.vaildData(this.permission.post_delete, false),
+                editBtn: this.vaildData(this.permission.post_edit, false),
+            };
+        },
+        ids () {
+            let ids = [];
+            this.selectionList.forEach((ele) => {
+                ids.push(ele.id);
+            });
+            return ids.join(",");
+        },
+    },
+    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) => {
+        //       this.form = res.data.data;
+        //     });
+        //   }
+        //   done();
         // },
-      ],
-    };
-  },
-  computed: {
-    ...mapGetters(["permission"]),
-    permissionList() {
-      return {
-        addBtn: this.vaildData(this.permission.post_add, false),
-        viewBtn: this.vaildData(this.permission.post_view, false),
-        delBtn: this.vaildData(this.permission.post_delete, false),
-        editBtn: this.vaildData(this.permission.post_edit, false),
-      };
-    },
-    ids() {
-      let ids = [];
-      this.selectionList.forEach((ele) => {
-        ids.push(ele.id);
-      });
-      return ids.join(",");
-    },
-  },
-  methods: {
-    rowSave(row, done, loading) {
-      adddata(row).then(
-        () => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
+        searchReset () {
+            this.query = {};
+            this.onLoad(this.page);
         },
-        (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();
+        searchChange (params, done) {
+            this.query = params;
+            this.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            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) => {
-    //       this.form = res.data.data;
-    //     });
-    //   }
-    //   done();
-    // },
-    searchReset() {
-      this.query = {};
-      this.onLoad(this.page);
-    },
-    searchChange(params, done) {
-      this.query = params;
-      this.page.currentPage = 1;
-      this.onLoad(this.page, params);
-      done();
-    },
-    selectionChange(list) {
-      this.selectionList = list;
-    },
-    selectionClear() {
-      this.selectionList = [];
-      this.$refs.crud.toggleSelection();
-    },
-    currentChange(currentPage) {
-      this.page.currentPage = currentPage;
-    },
-    sizeChange(pageSize) {
-      this.page.pageSize = pageSize;
-    },
-    refreshChange() {
-      this.onLoad(this.page, this.query);
-    },
-    onLoad(page, params = {}) {
-      // this.loading = false;
-      this.loading = true;
-      getLisperetaskDistribution(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query)
-      ).then((res) => {
-        const data = res.data.data;
-        this.page.total = data.total;
-        this.data = data.records;
-        // for (var k in this.data) {
-        //   this.data[k]["url"] = "https://avuejs.com/images/logo-bg.jpg";
-        // }
-        console.log(this.data, "getLisperetaskDistribution");
-        this.loading = false;
-        // this.selectionClear();
-      });
-    },
-    // onLoad(page, params = {}) {
-    //   // this.loading = false;
-    //   this.loading = true;
-    //   //   getListJSON().then((res) => {
-    //   //   axios
-    //   //     .get(
-    //   //       "../../api/qualificationExamination/signQualificationExamination.json"
-    //   //     )
-    //   //     .then((res) => {
-    //   // page.currentPage,
-    //   // page.pageSize,
-    //   // Object.assign(params, this.query)
-    //   if (datasing) {
-    //     var res = datasing;
-    //     console.log(res, "signQualificationExamination");
-    //     const data = res.data;
-    //     // this.page.total = data.total;
-    //     var d = data.records;
-    //     for (var k in d) {
-    //       d[k].examination_mx = "正常";
-    //       d[k].examination_type = "正常";
-    //       d[k]["carid"] = "370111198807051124";
-    //       d[k]["certificate"] = "拥有";
-    //       d[k]["reviewTime"] = "2021-02-21";
-    //       d[k]["results"] = "通过";
-    //       d[k]["onjob"] = "是";
-    //     }
-    //     this.data = d;
-    //     this.loading = false;
-    //   }
-    //   // this.selectionClear();
-    //   // });
-    // },
+        selectionChange (list) {
+            this.selectionList = list;
+        },
+        selectionClear () {
+            this.selectionList = [];
+            this.$refs.crud.toggleSelection();
+        },
+        currentChange (currentPage) {
+            this.page.currentPage = currentPage;
+        },
+        sizeChange (pageSize) {
+            this.page.pageSize = pageSize;
+        },
+        refreshChange () {
+            this.onLoad(this.page, this.query);
+        },
+        onLoad (page, params = {}) {
+            // this.loading = false;
+            this.loading = true;
+            getLisperetaskDistribution(
+                page.currentPage,
+                page.pageSize,
+                Object.assign(params, this.query)
+            ).then((res) => {
+                const data = res.data.data;
+                this.page.total = data.total;
+                this.data = data.records;
+                // for (var k in this.data) {
+                //   this.data[k]["url"] = "https://avuejs.com/images/logo-bg.jpg";
+                // }
+                console.log(this.data, "getLisperetaskDistribution");
+                this.loading = false;
+                // this.selectionClear();
+            });
+        },
+        // onLoad(page, params = {}) {
+        //   // this.loading = false;
+        //   this.loading = true;
+        //   //   getListJSON().then((res) => {
+        //   //   axios
+        //   //     .get(
+        //   //       "../../api/qualificationExamination/signQualificationExamination.json"
+        //   //     )
+        //   //     .then((res) => {
+        //   // page.currentPage,
+        //   // page.pageSize,
+        //   // Object.assign(params, this.query)
+        //   if (datasing) {
+        //     var res = datasing;
+        //     console.log(res, "signQualificationExamination");
+        //     const data = res.data;
+        //     // this.page.total = data.total;
+        //     var d = data.records;
+        //     for (var k in d) {
+        //       d[k].examination_mx = "正常";
+        //       d[k].examination_type = "正常";
+        //       d[k]["carid"] = "370111198807051124";
+        //       d[k]["certificate"] = "拥有";
+        //       d[k]["reviewTime"] = "2021-02-21";
+        //       d[k]["results"] = "通过";
+        //       d[k]["onjob"] = "是";
+        //     }
+        //     this.data = d;
+        //     this.loading = false;
+        //   }
+        //   // this.selectionClear();
+        //   // });
+        // },
 
-    // 行单击
-    handleRowClick(row) {
-      // delete (row["name"]);
-      var obj = row;
-      obj["name"] = "保安公司详细资料";
-      this.$router.push({
-        path: `/securityCompany/index`,
-        query: obj,
-      });
+        // 行单击
+        handleRowClick (row) {
+            // delete (row["name"]);
+            var obj = row;
+            obj["name"] = "保安公司详细资料";
+            this.$router.push({
+                path: `/securityCompany/index`,
+                query: obj,
+            });
+        },
+
+        seeLocation (row) {
+
+            this.seeLocationFlag = true
+
+            getPosition({ type: 1, workerId: row.receiveDirectiveIds }).then((result) => {
+                var res = result.data.data;
+                if (JSON.stringify(res) != "{}") {
+                    this.$refs.locationForm.addEntitys(
+                        {
+                            LGTD: res.longitude,
+                            LTTD: res.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());
+
+            getTrack({
+                workerId: this.rowData.receiveDirectiveIds,
+                type: 1,
+                startTime: start,
+                endTime: end,
+            }).then((res) => {
+                var result = res.data.data;
+                if (result.length > 1) {
+                    let arr = [];
+
+                    result.forEach((item) => {
+                        arr.push([Number(item.longitude), Number(item.latitude)]);
+                    });
+
+                    this.$refs.tarckForm.addLines(arr);
+                }
+            });
+        },
+
+        // 处理时间补零操作
+        disposeTime (s) {
+            return s < 10 ? "0" + s : s;
+        },
     },
-  },
 };
 </script>
 

--
Gitblit v1.9.3