odc.xiaohui
2023-03-18 b44206e6f3adba4b5f85760e4913e4214cd6a599
事件总数修改
3个文件已修改
472 ■■■■■ 已修改文件
src/views/intelligentPatrol/statistics/unlawful/area/index.vue 158 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/intelligentPatrol/statistics/unlawful/point/index.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/intelligentPatrol/statistics/unlawful/type/index.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/intelligentPatrol/statistics/unlawful/area/index.vue
@@ -58,29 +58,8 @@
          </el-table-column>
          <el-table-column prop="count" label="事件总数" min-width="5">
            <template slot-scope="scope">
              <el-popover
                  placement="right"
                  width="400"
                  trigger="click">
                <el-table :data="gridData">
                  <el-table-column width="150" property="date" label="日期"></el-table-column>
                  <el-table-column width="100" property="name" label="姓名"></el-table-column>
                  <el-table-column width="300" property="address" label="地址"></el-table-column>
                </el-table>
                <div >
                  <el-pagination
                      background
                      :current-page="currentPages"
                      layout="prev, pager, next"
                      :total="totalNums"
                      :page-size="pageSizes"
                      @current-change="changeCurrentPages"
                  >
                  </el-pagination>
                </div>
                <el-button type="text" slot="reference" @click="seachTotalEvents(scope.row.id)">{{scope.row.count}}</el-button>
              </el-popover>
              <el-button type="text" @click="seachTotalEvents(scope.row.id)">{{scope.row.count}}</el-button>
            </template>
          </el-table-column>
          <el-table-column prop="ratio" label="占比" min-width="5">
@@ -111,17 +90,133 @@
          </el-pagination>
        </div>
      </div>
      <el-dialog
          title="事件总数"
          :visible.sync="dialogVisibleEvent"
          width="80%"
          :before-close="handClose">
        <el-table
            border
            stripe
            ref="multipleTable"
            :header-cell-style="{
                        background: '#F5F5F5',
                        'font-weight': '650',
                        'line-height': '45px'
                    }"
            :data="gridData"
            style="width: 100%"
            :row-class-name="tableRowClassName"
        >
          <el-table-column
              prop="code"
              label="事件编号"
              min-width="18"
          >
          </el-table-column>
          <el-table-column
              prop="eventSource"
              label="问题来源"
              min-width="8"
          >
            <template slot-scope="scope">
                            <span>{{
                                scope.row.eventSource === 2
                                    ? '网格巡查'
                                    : '视频巡查'
                              }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'category' : 'category'"
              :label="mystatus === 1 ? '大类名称' : '违建类别'"
              :min-width="mystatus === 1 ? '10' : '15'"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'type' : 'site'"
              :label="mystatus === 1 ? '小类名称' : '违建地点'"
              min-width="10"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'site' : ''"
              :label="
                            mystatus === 1 ? '报警点位' : '违法建筑长、宽、高'
                        "
              :min-width="mystatus === 1 ? '10' : '20'"
              show-overflow-tooltip
          >
            <template slot-scope="scope">
              <div v-if="mystatus === 2">
                                <span>{{
                                    scope.row.buildingLength +
                                    '米' +
                                    '、' +
                                    scope.row.buildingWidth +
                                    '米' +
                                    '、' +
                                    scope.row.buildingHigh +
                                    '米'
                                  }}</span>
              </div>
              <div v-else>{{ scope.row.site }}</div>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'street' : 'buildingArea'"
              :label="mystatus === 1 ? '所属区域' : '违法建筑面积'"
              min-width="12"
          >
          </el-table-column>
          <el-table-column
              prop="alarmTime"
              label="报警时间"
              min-width="15"
              v-if="mystatus === 1"
          >
            <template slot-scope="scope">
              <span>{{ filterTime(scope.row.alarmTime) }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'continueTime' : 'materials'"
              :label="mystatus === 1 ? '持续时间' : '违法建筑材料'"
              min-width="12"
          >
          </el-table-column>
        </el-table>
        <div >
          <el-pagination
              background
              :current-page="currentPages"
              layout="prev, pager, next"
              :total="totalNums"
              :page-size="pageSizes"
              @current-change="changeCurrentPages"
          >
          </el-pagination>
        </div>
      </el-dialog>
    </main>
  </div>
</template>
  <script>
import { createNamespacedHelpers } from "vuex";
import basecase from "@/api/operate/basecase";
import helper from "@/utils/mydate";
const { mapActions } = createNamespacedHelpers("statistics");
export default {
  data() {
    return {
      seachID:'',
      dialogVisibleEvent:false,
      mystatus:1,
      totalNums:1,
      pageSizes:10,
      currentPages:1,
@@ -170,19 +265,31 @@
  },
  methods: {
    ...mapActions(["searchByArea"]),
    handClose(){
      this.dialogVisibleEvent=false
    },
// 处理时间
    filterTime(time) {
      return helper(time);
    },
    seachTotalEvents(id){
      this.seachID=id
      this.dialogVisibleEvent = true
      console.log(this.value2)
      let params ={
        type:1,
        street:id,
        current: this.currentPage,
        size: this.pageSize,
        current: this.currentPages,
        size: this.pageSizes,
      }
      params.startTime = this.value2[0]||''
      params.endTime = this.value2[1]||''
      basecase.baseCasePoolList(params).then(res=>{
        console.log(res)
        this.gridData =res.records
        this.pageSizes =res.size
        this.currentPages =res.current
            this.totalNums = res.total
      })
    },
    handleExport(e) {
@@ -243,6 +350,7 @@
    },
    changeCurrentPages(page){
      this.currentPages = page;
      this.seachTotalEvents(this.seachID)
    },
    // 当前页改变触发事件
    changeCurrentPage(page) {
src/views/intelligentPatrol/statistics/unlawful/point/index.vue
@@ -57,6 +57,10 @@
          <el-table-column prop="name" label="点位名称" min-width="10">
          </el-table-column>
          <el-table-column prop="count" label="事件总数" min-width="5">
            <template slot-scope="scope">
              <el-button type="text" @click="seachTotalEvents(scope.row.id)">{{scope.row.count}}</el-button>
            </template>
          </el-table-column>
          <el-table-column prop="ratio" label="占比" min-width="5">
          </el-table-column>
@@ -96,16 +100,137 @@
          </el-pagination>
        </div>
      </div>
      <el-dialog
          title="事件总数"
          :visible.sync="dialogVisibleEvent"
          width="80%"
          :before-close="handClose">
        <el-table
            border
            stripe
            ref="multipleTable"
            :header-cell-style="{
                        background: '#F5F5F5',
                        'font-weight': '650',
                        'line-height': '45px'
                    }"
            :data="gridData"
            style="width: 100%"
            :row-class-name="tableRowClassName"
        >
          <el-table-column
              prop="code"
              label="事件编号"
              min-width="18"
          >
          </el-table-column>
          <el-table-column
              prop="eventSource"
              label="问题来源"
              min-width="8"
          >
            <template slot-scope="scope">
                            <span>{{
                                scope.row.eventSource === 2
                                    ? '网格巡查'
                                    : '视频巡查'
                              }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'category' : 'category'"
              :label="mystatus === 1 ? '大类名称' : '违建类别'"
              :min-width="mystatus === 1 ? '10' : '15'"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'type' : 'site'"
              :label="mystatus === 1 ? '小类名称' : '违建地点'"
              min-width="10"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'site' : ''"
              :label="
                            mystatus === 1 ? '报警点位' : '违法建筑长、宽、高'
                        "
              :min-width="mystatus === 1 ? '10' : '20'"
              show-overflow-tooltip
          >
            <template slot-scope="scope">
              <div v-if="mystatus === 2">
                                <span>{{
                                    scope.row.buildingLength +
                                    '米' +
                                    '、' +
                                    scope.row.buildingWidth +
                                    '米' +
                                    '、' +
                                    scope.row.buildingHigh +
                                    '米'
                                  }}</span>
              </div>
              <div v-else>{{ scope.row.site }}</div>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'street' : 'buildingArea'"
              :label="mystatus === 1 ? '所属区域' : '违法建筑面积'"
              min-width="12"
          >
          </el-table-column>
          <el-table-column
              prop="alarmTime"
              label="报警时间"
              min-width="15"
              v-if="mystatus === 1"
          >
            <template slot-scope="scope">
              <span>{{ filterTime(scope.row.alarmTime) }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'continueTime' : 'materials'"
              :label="mystatus === 1 ? '持续时间' : '违法建筑材料'"
              min-width="12"
          >
          </el-table-column>
        </el-table>
        <div >
          <el-pagination
              background
              :current-page="currentPages"
              layout="prev, pager, next"
              :total="totalNums"
              :page-size="pageSizes"
              @current-change="changeCurrentPages"
          >
          </el-pagination>
        </div>
      </el-dialog>
    </main>
  </div>
</template>
  <script>
import { createNamespacedHelpers } from "vuex";
import helper from "@/utils/mydate";
import basecase from "@/api/operate/basecase";
const { mapActions } = createNamespacedHelpers("statistics");
export default {
  data() {
    return {
      seachID:'',
      dialogVisibleEvent:false,
      mystatus:1,
      totalNums:1,
      pageSizes:10,
      currentPages:1,
      gridData:[],
      pickerOptions: {
        shortcuts: [
          {
@@ -150,7 +275,37 @@
  },
  methods: {
    ...mapActions(["searchByPoint"]),
    changeCurrentPages(page){
      this.currentPages = page;
      this.seachTotalEvents(this.seachID)
    },
    handClose(){
      this.dialogVisibleEvent=false
    },
// 处理时间
    filterTime(time) {
      return helper(time);
    },
    seachTotalEvents(id){
      this.seachID=id
      this.dialogVisibleEvent = true
      console.log(this.value2)
      let params ={
        type:1,
        videoId:id,
        current: this.currentPages,
        size: this.pageSizes,
      }
      params.startTime = this.value2[0]||''
      params.endTime = this.value2[1]||''
      basecase.baseCasePoolList(params).then(res=>{
        console.log(res)
        this.gridData =res.records
        this.pageSizes =res.size
        this.currentPages =res.current
        this.totalNums = res.total
      })
    },
    handleExport(e) {
      this.$axios({
        method: "post",
src/views/intelligentPatrol/statistics/unlawful/type/index.vue
@@ -57,6 +57,10 @@
          <el-table-column prop="name" label="类型名称" min-width="10">
          </el-table-column>
          <el-table-column prop="count" label="事件总数" min-width="5">
            <template slot-scope="scope">
              <el-button type="text" @click="seachTotalEvents(scope.row.id)">{{scope.row.count}}</el-button>
            </template>
          </el-table-column>
          <el-table-column prop="ratio" label="占比" min-width="5">
          </el-table-column>
@@ -94,16 +98,138 @@
          </el-pagination>
        </div>
      </div>
      <el-dialog
          title="事件总数"
          :visible.sync="dialogVisibleEvent"
          width="80%"
          :before-close="handClose">
        <el-table
            border
            stripe
            ref="multipleTable"
            :header-cell-style="{
                        background: '#F5F5F5',
                        'font-weight': '650',
                        'line-height': '45px'
                    }"
            :data="gridData"
            style="width: 100%"
            :row-class-name="tableRowClassName"
        >
          <el-table-column
              prop="code"
              label="事件编号"
              min-width="18"
          >
          </el-table-column>
          <el-table-column
              prop="eventSource"
              label="问题来源"
              min-width="8"
          >
            <template slot-scope="scope">
                            <span>{{
                                scope.row.eventSource === 2
                                    ? '网格巡查'
                                    : '视频巡查'
                              }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'category' : 'category'"
              :label="mystatus === 1 ? '大类名称' : '违建类别'"
              :min-width="mystatus === 1 ? '10' : '15'"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'type' : 'site'"
              :label="mystatus === 1 ? '小类名称' : '违建地点'"
              min-width="10"
          >
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'site' : ''"
              :label="
                            mystatus === 1 ? '报警点位' : '违法建筑长、宽、高'
                        "
              :min-width="mystatus === 1 ? '10' : '20'"
              show-overflow-tooltip
          >
            <template slot-scope="scope">
              <div v-if="mystatus === 2">
                                <span>{{
                                    scope.row.buildingLength +
                                    '米' +
                                    '、' +
                                    scope.row.buildingWidth +
                                    '米' +
                                    '、' +
                                    scope.row.buildingHigh +
                                    '米'
                                  }}</span>
              </div>
              <div v-else>{{ scope.row.site }}</div>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'street' : 'buildingArea'"
              :label="mystatus === 1 ? '所属区域' : '违法建筑面积'"
              min-width="12"
          >
          </el-table-column>
          <el-table-column
              prop="alarmTime"
              label="报警时间"
              min-width="15"
              v-if="mystatus === 1"
          >
            <template slot-scope="scope">
              <span>{{ filterTime(scope.row.alarmTime) }}</span>
            </template>
          </el-table-column>
          <el-table-column
              :prop="mystatus === 1 ? 'continueTime' : 'materials'"
              :label="mystatus === 1 ? '持续时间' : '违法建筑材料'"
              min-width="12"
          >
          </el-table-column>
        </el-table>
        <div >
          <el-pagination
              background
              :current-page="currentPages"
              layout="prev, pager, next"
              :total="totalNums"
              :page-size="pageSizes"
              @current-change="changeCurrentPages"
          >
          </el-pagination>
        </div>
      </el-dialog>
    </main>
  </div>
</template>
  <script>
import { createNamespacedHelpers } from "vuex";
import helper from "@/utils/mydate";
import basecase from "@/api/operate/basecase";
const { mapActions } = createNamespacedHelpers("statistics");
export default {
  data() {
    return {
      seachID:'',
      dialogVisibleEvent:false,
      mystatus:1,
      totalNums:1,
      pageSizes:10,
      currentPages:1,
      gridData:[],
      pickerOptions: {
        shortcuts: [
          {
@@ -148,7 +274,38 @@
  },
  methods: {
    ...mapActions(["searchByType"]),
    handClose(){
      this.dialogVisibleEvent=false
    },
    changeCurrentPages(page){
      this.currentPages = page;
      this.seachTotalEvents(this.seachID)
    },
// 处理时间
    filterTime(time) {
      return helper(time);
    },
    seachTotalEvents(id){
      this.seachID=id
      this.dialogVisibleEvent =true
      console.log(this.value2)
      let params ={
        type:1,
        violationsTypeId:id,
        current: this.currentPages,
        size: this.pageSizes,
      }
      params.startTime = this.value2[0]||''
      params.endTime = this.value2[1]||''
      basecase.baseCasePoolList(params).then(res=>{
        console.log(res)
        this.gridData =res.records
        this.pageSizes =res.size
        this.currentPages =res.current
        this.totalNums = res.total
      })
    },
    handleExport(e) {
      this.$axios({
        method: 'post',