zengh
2022-05-16 63ad2c3598400370dd7da5534659fd7e768a0a4a
src/views/activitys/real.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container>
  <basic-container class="activitys">
    <avue-crud
      :option="option"
      :table-loading="loading"
@@ -20,13 +20,13 @@
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @row-click="rowClick"
      @refresh-change="refreshChange"
      @on-load="onLoad"
      @row-click="rowClick"
    >
      <!-- @row-click="rowClick" -->
      <template slot="menuLeft">
        <el-button
          type="danger"
          v-show="true"
          size="mini"
          icon="el-icon-delete"
@@ -37,7 +37,7 @@
        </el-button>
      </template>
      <template slot="menuLeft">
      <!-- <template slot="menuLeft">
        <el-button
          v-bind:class="activeClass == 0 ? 'btn-color' : ''"
          size="mini"
@@ -62,9 +62,9 @@
          @click="getQBdata(3)"
          >全部
        </el-button>
      </template>
      </template> -->
      <template slot="menuLeft">
      <!-- <template slot="menuLeft">
        <el-button
          type="warning"
          size="mini"
@@ -81,7 +81,7 @@
          @click="handleExportStatis"
          >导出报表
        </el-button>
      </template>
      </template> -->
      <template slot-scope="{ row }" slot="jtype">
        <el-tag
@@ -187,10 +187,10 @@
        dialogClickModal: false,
        column: [
          {
            label: "任务标题",
            label: "巡查标题",
            prop: "rname",
            search: false,
            searchSpan: 3,
            search: true,
            searchSpan: 4,
            span: 12,
            rules: [
              {
@@ -201,7 +201,47 @@
            ],
          },
          {
            label: "任务封面",
            label: "开始时间",
            type: "datetime",
            prop: "time",
            width: 160,
            addDisplay: false,
            viewDisplay: false,
            editDisplay: false,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
          },{
            label: "结束时间",
            type: "datetime",
            prop: "endtime",
            width: 160,
            addDisplay: false,
            viewDisplay: false,
            editDisplay: false,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
          },
          {
            label: "开始时间",
            type: 'datetimerange',
            hide: true,
            prop: "timeList",
            width: 160,
            span: 12,
            startPlaceholder: '任务开始时间',
            endPlaceholder: '预估结束时间',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            rules: [
              {
                required: true,
                message: "请选择时间范围",
                trigger: "blur",
              },
            ],
          },
          {
            label: "封面",
            prop: "url",
            // align:'center',
            width: 80,
@@ -213,23 +253,7 @@
              url: "link",
            },
            // hide: true,
            span: 12,
          },
          {
            label: "下发时间",
            type: "datetime",
            prop: "time",
            width: 160,
            span: 12,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            rules: [
              {
                required: true,
                message: "请选择报警时间",
                trigger: "blur",
              },
            ],
            span: 24,
          },
          // {
          //   label: "报警时间",
@@ -254,7 +278,7 @@
          //   ],
          // },
          {
            label: "任务内容",
            label: "巡查内容",
            prop: "content",
            span: 24,
          },
@@ -304,90 +328,147 @@
          //   span: 5,
          // },
          {
            label: "省份",
            prop: "province",
            label: "所属辖区",
            prop: "jurisdiction",
            searchLabelWidth: 80,
            search: true,
            width: 100,
            searchSpan: 2,
            searchLabelWidth: 45,
            placeholder: "省份",
            type: "select",
            value: "36",
            searchSpan: 4,
            overHidden: true,
            parent: false,
            type: "tree",
            dicUrl: "/api/jurisdiction/lazy-tree",
            props: {
              label: "name",
              value: "code",
              label: "title",
              value: "id",
            },
            cascaderItem: ["city", "district"],
            dicUrl: "/api/blade-system/region/select",
            span: 6,
            className: "cityreal1",
            addDisplay: true,
            editDisplay: true,
            viewDisplay: true,
            checkStrictly: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "click",
              },
            ],
          },
          // {
          //   label: "省份",
          //   hide: true,
          //   prop: "province",
          //   // search: true,
          //   width: 100,
          //   searchSpan: 2,
          //   searchLabelWidth: 45,
          //   placeholder: "省份",
          //   type: "select",
          //   value: "36",
          //   props: {
          //     label: "name",
          //     value: "code",
          //   },
          //   cascaderItem: ["city", "district"],
          //   dicUrl: "/api/blade-system/region/select",
          //   span: 6,
          //   className: "cityreal1",
          //   addDisplay: true,
          //   editDisplay: true,
          //   viewDisplay: true,
          // },
          // {
          //   label: "地市",
          //   hide: true,
          //   prop: "city",
          //   type: "select",
          //   width: 100,
          //   searchPlaceholder: "地市",
          //   placeholder: "地市",
          //   searchLabelWidth: 1,
          //   value: "3601",
          //   searchSpan: 2,
          //   // search: true,
          //   props: {
          //     label: "name",
          //     value: "code",
          //   },
          //   dicUrl: "/api/blade-system/region/select?code={{key}}",
          //   span: 3,
          //   labelWidth: "0",
          //   className: "cityreal2",
          //   addDisplay: true,
          //   editDisplay: true,
          //   viewDisplay: true,
          // },
          // {
          //   label: "区县",
          //   hide: true,
          //   searchSpan: 2,
          //   searchLabelWidth: 1,
          //   width: 100,
          //   searchPlaceholder: "区县",
          //   placeholder: "区县",
          //   // search: true,
          //   prop: "district",
          //   type: "select",
          //   props: {
          //     label: "name",
          //     value: "code",
          //   },
          //   dicUrl: "/api/blade-system/region/select?code={{key}}",
          //   span: 3,
          //   labelWidth: "0",
          //   className: "cityreal3",
          //   addDisplay: true,
          //   editDisplay: true,
          //   viewDisplay: true,
          // },
          {
            label: "集合点",
            prop: "gathername",
            labelWidth: 100,
            span: 9,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请选择地址",
                trigger: "blur",
              },
            ],
          },
          {
            label: "地市",
            prop: "city",
            type: "select",
            width: 100,
            searchPlaceholder: "地市",
            placeholder: "地市",
            searchLabelWidth: 1,
            value: "3601",
            searchSpan: 2,
            search: true,
            props: {
              label: "name",
              value: "code",
            },
            dicUrl: "/api/blade-system/region/select?code={{key}}",
            span: 3,
            labelWidth: "0",
            className: "cityreal2",
            addDisplay: true,
            editDisplay: true,
            viewDisplay: true,
            label: null,
            prop: "map",
            labelWidth: 10,
            searchSpan: 0,
            // maxlength: 5,
            hide: true,
            span: 2,
            // display:false,
            component: "AvueMap",
          },
          {
            label: "区县",
            searchSpan: 2,
            searchLabelWidth: 1,
            width: 100,
            searchPlaceholder: "区县",
            placeholder: "区县",
            search: true,
            prop: "district",
            type: "select",
            props: {
              label: "name",
              value: "code",
            },
            dicUrl: "/api/blade-system/region/select?code={{key}}",
            span: 3,
            labelWidth: "0",
            className: "cityreal3",
            addDisplay: true,
            editDisplay: true,
            viewDisplay: true,
          },
          {
            label: "任务状态",
            label: "巡查状态",
            prop: "rtype",
            type: "select",
            span: 6,
            value: "0",
            value: "2",
            rules: [
              {
                required: true,
                message: "请选择巡查状态",
                trigger: "blur",
              },
            ],
            dicData: [
              {
                label: "任务开始",
                value: "0",
              },
              {
                label: "正在进行",
                value: "1",
                value: "2",
              },
              {
                label: "任务结束",
                value: "2",
                value: "1",
              },
              {
                label: "正在进行",
                value: "0",
              },
            ],
            // label: "任务状态",
@@ -422,6 +503,21 @@
          //   editDisplay: false,
          // },
          {
            label: "发布人",
            prop: "fname",
            // multiple: true,
            // dicUrl: "/api/catalogs/catalogs/getBigTree",
            // props: {
            //   label: "title",
            // },
            width: 72,
            // hide: true,
            // leafOnly: "",
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
          },
          {
            label: "积分数值",
            prop: "integral",
            type: "number",
@@ -430,12 +526,12 @@
            // props: {
            //   label: "title",
            // },
            span: 6,
            width: 72,
            // hide: true,
            minRows: 1,
            value: 1,
            value: 5,
            // leafOnly: "",
            disabled: true,
            addDisplay: true,
            editDisplay: true,
            viewDisplay: true,
@@ -457,6 +553,13 @@
            addDisplay: true,
            editDisplay: true,
            viewDisplay: true,
            rules: [
              {
                required: true,
                message: "请输入接收人数",
                trigger: "blur",
              },
            ],
          },
          // {
          //   label: "巡逻路线",
@@ -472,7 +575,7 @@
          // },
          {
            label: "请在下方地图中,建立路径!",
            labelWidth: "0",
            labelWidth: 0,
            className: "mapClass",
            prop: "haveMap",
            hide: true,
@@ -537,15 +640,17 @@
          this.form.wd = val.latitude;
          this.form.jd = val.longitude;
          this.form.gather = val.latitude + "," + val.longitude;
          var address = val.formattedAddress.toString();
          if (address.search("县") != -1) {
            this.form.place = address.substring(
            this.form.gathername = address.substring(
              address.indexOf("县") + 1,
              address.length
            );
          }
          if (address.search("区") != -1) {
            this.form.place = address.substring(
            this.form.gathername = address.substring(
              address.indexOf("区") + 1,
              address.length
            );
@@ -600,6 +705,7 @@
    },
    rotesData() {
      // console.log(this.rotesData, "rotesDatarotesDatarotesData");
      // console.log(this.rotesData, "this.rotesDatathis.rotesData");
      if (this.rotesData) {
        // var haveMap = (this.option.column[9].value = "已选择路径!");
        // haveMap.value = "已选择路径!";
@@ -613,7 +719,7 @@
    },
  },
  computed: {
    ...mapGetters(["permission", "flowRoutes", "rotesData"]),
    ...mapGetters(["permission", "flowRoutes", "rotesData", "userInfo"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.real_add, false),
@@ -645,12 +751,18 @@
  methods: {
    rowSave(row, done, loading) {
      // console.log(row);
      // console.log(this.userInfo);
      // return;
      var userId1 = this.userInfo.user_id;
      var username = this.userInfo.nick_name;
      var phone = this.userInfo.phone;
      let latleng = row.map.latitude + "," + row.map.longitude;
      let d = {
        line: row.line, //路线
        rname: row.rname, //标题
        url: row.url, //封面
        time: row.time, //下发时间
        time: row.timeList[0], //下发时间
        endtime: row.timeList[1], //结束时间
        province: row.$province, //省
        city: row.$city, //城市
        district: row.$district, //区县
@@ -658,10 +770,20 @@
        integral: row.integral + "", //积分
        content: row.content, //内容
        rtype: row.rtype, //任务状态
        fid: userId1, //发起人id
        serid: userId1, //发起人id
        fname: username, //发起人id
        captain: username, //队长
        phone: phone, //发起人电话
        jurisdiction: row.jurisdiction,
        gather: row.gather, //地址经纬度
        gathername: row.map.formattedAddress, //地址经纬度
        tasktype: "0", //任务类型0:治安巡查 1:治安义务宣传 2:治安防范培训
      };
      console.log(d);
      // console.log(d);
      // done();
      // return;
      let that = this;
      add(d).then(
        () => {
          this.onLoad(this.page);
@@ -676,93 +798,25 @@
        }
      );
      return;
      // console.log(row, "rowrowrowrowrow");
      // console.log(this.rotesData, "rowrowrowrowrow");
      // if (!this.rotesData) {
      //   this.$message({
      //     message: "未绘制地图路径,请重试",
      //     type: "warning",
      //   });
      //   done();
      //   return;
      // }
      // done();
      //结束后  需要把vuex中路径清除
      // that.$store.commit("setRotesData", false);
      // return;
      if (typeof row.securityArr != "string") {
        var security = "";
        row.securityArr.forEach((item) => {
          security = security + item + ",";
        });
        row.securityArr = security.substring(0, security.length - 1);
      }
      var userId = JSON.parse(
        window.localStorage.getItem("群防群控后台管理系统-userInfo")
      ).content.nick_name;
      if (row.jtype != "2") {
        if (row.securityArr == "" || row.securityArr == null) {
          row.jtype = "0";
          row.alarmPeople = "";
        } else {
          row.jtype = "1";
          //已派发保安
        }
      }
      row.alarmPeople = userId;
      add(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          loading();
        }
      );
    },
    getxllx(val) {
      var that = this;
      if (this.$refs.modalForm == undefined) {
        setTimeout(function () {
          that.$refs.modalForm.addLinesDraw(val);
          try {
            that.$refs.modalForm.addLinesDraw(val);
          } catch (error) {}
        }, 1500);
      } else {
        that.$refs.modalForm.addLinesDraw(val);
        try {
          that.$refs.modalForm.addLinesDraw(val);
        } catch (error) {}
      }
    },
    rowUpdate(row, index, done, loading) {
      // var userId = JSON.parse(
      //   window.localStorage.getItem("群防群控后台管理系统-userInfo")
      // ).content.nick_name;
      // if (typeof row.securityArr != "string") {
      //   var security = "";
      //   row.securityArr.forEach((item) => {
      //     security = security + item + ",";
      //   });
      //   row.securityArr = security.substring(0, security.length - 1);
      // }
      // if (row.jtype != "2") {
      //   if (row.securityArr == "" || row.securityArr == null) {
      //     row.jtype = "0";
      //     row.alarmPeople = "";
      //   } else {
      //     row.jtype = "1";
      //     //已派发保安
      //   }
      // }
      // row.alarmPeople = userId;
      // row.coordinate = "";
      // console.log(row);
      // row.province = row.$province; //省
      // row.city = row.$city; //城市
      // row.district = row.$district; //区县
      // return;
      let that = this;
      row.time = row.timeList[0];
      row.endtime = row.timeList[1];
      update(row).then(
        () => {
          this.onLoad(this.page);
@@ -840,6 +894,10 @@
        });
    },
    beforeOpen(done, type) {
      this.form.timeList = [];
      this.form["timeList"][0]= this.form["time"];
      this.form["timeList"][1]= this.form["endtime"];
      // console.log(type, "this.formthis.formthis.form");
      // console.log(type);
      // if (["edit", "view"].includes(type)) {
      //   getclient(this.form.id).then((res) => {
@@ -847,6 +905,11 @@
      //   });
      // }
      // console.log(this.form);
      if (type == "add") {
        this.$store.commit("setRotesData", false); //用vuex传最终数据 清除
        done();
        return;
      }
      if (this.form.line != "" && this.form != undefined) {
        this.form["haveMap"] = "已绘制路径!";
      } else {
@@ -864,90 +927,8 @@
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      // const { releaseTimeRange } = this.query;
      // let values = {
      //   ...params,
      // };
      // if (
      //   this.$route.query.waringType &&
      //   this.$route.query != undefined &&
      //   this.$route.query != null &&
      //   this.$route.query != ""
      // ) {
      //   if (
      //     this.$route.query.status != undefined &&
      //     this.$route.query.status != null &&
      //     this.$route.query.status == ""
      //   ) {
      //     this.activeClass = this.$route.query.status;
      //     this.page.currentPage = 1;
      //     if (this.$route.query.status == 0) {
      //       params = {
      //         waringType: this.$route.query.waringType,
      //         beginTime: this.dateTime.day.beginTime,
      //         endTime: this.dateTime.day.endTime,
      //       };
      //     } else if (this.$route.query.status == 1) {
      //       params = {
      //         waringType: this.$route.query.waringType,
      //         beginTime: this.dateTime.week.beginTime,
      //         endTime: this.dateTime.week.endTime,
      //       };
      //     } else if (this.$route.query.status == 2) {
      //       params = {
      //         waringType: this.$route.query.waringType,
      //         beginTime: this.dateTime.month.beginTime,
      //         endTime: this.dateTime.month.endTime,
      //       };
      //     }
      //   } else {
      //     this.activeClass = 0;
      //     this.page.currentPage = 1;
      //     params = {
      //       waringType: this.$route.query.waringType,
      //       beginTime: this.dateTime.day.beginTime,
      //       endTime: this.dateTime.day.endTime,
      //     };
      //   }
      //   if (
      //     this.$route.query.startTime != undefined &&
      //     this.$route.query.startTime != null &&
      //     this.$route.query.startTime != ""
      //   ) {
      //     params = {
      //       waringType: this.$route.query.waringType,
      //       beginTime: this.$route.query.startTime,
      //       endTime: this.$route.query.endTime,
      //     };
      //   }
      // }
      // if (releaseTimeRange) {
      //   values = {
      //     ...params,
      //     beginTime: releaseTimeRange[0],
      //     endTime: releaseTimeRange[1],
      //     ...this.query,
      //   };
      //   values.releaseTimeRange = null;
      // } else {
      //   values = {
      //     ...params,
      //     ...this.query,
      //   };
      // }
      // if (this.$route.query.timeDesc) {
      //   values = {
      //     ...params,
      //     timeDesc: this.$route.query.timeDesc,
      //     ...this.query,
      //   };
      // }
      // this.loading = true;
      getList(page.currentPage, page.pageSize).then((res) => {
      params["tasktype"] = "0"; // 治安巡查
      getList(page.currentPage, page.pageSize, params).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
@@ -1325,13 +1306,13 @@
    PoliceTracking(row) {
      var arr = [];
      this.$store.state.tags.tagList.forEach((item) => {
        if (item.label != "任务追踪") {
        if (item.label != "任务详情") {
          arr.push(item);
        }
      });
      this.$store.state.tags.tagList = arr;
      //警情追踪
      this.$router.push({ path: "/policeTracking/track", query: row });
      this.$router.push({ path: "/policeTracking/details", query: row });
    },
    //打开新增窗体
    openAdd() {