linwe
2025-11-19 cf95edd6bfe811b7b6a0f6db49397fc34c52e333
经开分局优化
4 files modified
129 ■■■■ changed files
src/views/home/components/dialog/countByDetailsBox.vue 4 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/keyPersonBox.vue 38 ●●●●● patch | view | raw | blame | history
src/views/home/components/leftContainer.vue 10 ●●●● patch | view | raw | blame | history
src/views/home/components/rightContainer.vue 77 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/countByDetailsBox.vue
@@ -51,7 +51,7 @@
        <!-- 是否制牌 -->
        <el-table-column prop="isCardMaking" label="是否制牌">
          <template slot-scope="scope">
            {{ scope.row.isCardMaking == 1 ? '是' : '否' }}
            {{ scope.row.isCardMaking == 1 ? '是' : scope.row.isCardMaking == 2 ? '无需制牌' : '否' }}
          </template>
        </el-table-column>
        <el-table-column prop="isCardMaking" label="二维码">
@@ -292,7 +292,7 @@
        policeName,
        phone,
        address,
        isCardMaking: this.barType === 'off' ? 0 : this.barType === 'on' ? 1 : null,
        isCardMaking: this.barType === 'off' ? 0 : this.barType === 'on' ? 1 : this.barType === 'not' ? 2 : null,
        size: this.landPage.pageSize
      }).then(res => {
        this.landDetailArr = []
src/views/home/components/dialog/keyPersonBox.vue
@@ -32,8 +32,15 @@
        <el-table-column :show-overflow-tooltip="true" prop="address" label="地址" min-width="240%"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="phone" label="联系电话"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="zdryzry" label="责任人"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="zdrtjdld" label="街道责任领导"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="zdryxl" label="重点人员类型"></el-table-column>
        <!-- <el-table-column :show-overflow-tooltip="true" prop="zdrtjdld" label="街道责任领导"></el-table-column> -->
        <!-- <el-table-column :show-overflow-tooltip="true" prop="zdryxl" label="重点人员类型"></el-table-column> -->
        <el-table-column prop="isCardMaking" label="二维码">
          <template slot-scope="scope">
            <img v-if="scope.row.address" :src="'http://47.217.32.232/qrcode_image/' + scope.row.picName" alt="二维码"
              style="width: 40px; height: 40px; cursor: pointer;"
              @click="previewImage('http://47.217.32.232/qrcode_image/' + scope.row.picName)" />
          </template>
        </el-table-column>
        <!-- <el-table-column :show-overflow-tooltip="true" prop="policeStationName" label="所属派出所"></el-table-column> -->
        <!-- <el-table-column :show-overflow-tooltip="true" prop="areaName" label="所属责任区"></el-table-column> -->
        <el-table-column label="操作" align="center">
@@ -108,6 +115,33 @@
  },
  methods: {
    previewImage (url) {
      // 检查URL是否存在
      if (!url) {
        this.$message.warning('二维码图片不存在')
        return
      }
      const h = this.$createElement
      this.$msgbox({
        title: '二维码',
        message: h('img', {
          attrs: { src: url },
          style: {
            width: '100%',
            height: 'auto',
            maxWidth: '300px',
            display: 'block',
            margin: '0 auto'
          }
        }),
        showConfirmButton: true,
        confirmButtonText: '关闭',
        customClass: 'image-preview-dialog'
      }).catch(() => {
        // 处理用户关闭弹窗的情况
      })
    },
    showkeypersondetail (name) {
      this.curLoading = true
      this.keyPersonEmptyText = ""
src/views/home/components/leftContainer.vue
@@ -1483,11 +1483,11 @@
      const high = this.$refs.REFPERSONECHARTS.offsetHeight
     // if (personInfo.length * (high / 7) > high) {
     //   this.personEchartsHeight = personInfo.length * (high / 7) + 'px'
     // } else {
        this.personEchartsHeight = '100%'
     // }
      // if (personInfo.length * (high / 7) > high) {
      //   this.personEchartsHeight = personInfo.length * (high / 7) + 'px'
      // } else {
      this.personEchartsHeight = '100%'
      // }
      this.$nextTick(() => {
        var chartDom = document.getElementById('PersonEcharts')
src/views/home/components/rightContainer.vue
@@ -152,9 +152,14 @@
      </svg>
    </div>
    <div class="crowd-box" ref="crowdBox">
    <div class="crowd-box before-box" ref="crowdBox">
      <div class="box">
        <div class="title">已制牌数:{{ zpCount }} 未制牌数:{{ unZpCount }} </div>
        <div class="title">
          <div>已制牌数:{{ zpCount }}</div>
          <div>未制牌数:{{ unZpCount }}</div>
          <div>无需制牌数:{{ notZpCount }}</div>
        </div>
        <!-- <div class="title"> </div> -->
        <el-main v-loading="CountByTypeMpEchartsLoading" element-loading-text="拼命加载中"
          element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"
          style="height: calc(100% - 17.6%);">
@@ -214,6 +219,7 @@
      addresCount: '',
      zpCount: '',
      unZpCount: '',
      notZpCount: '',
      eventTime: [],
      CountByTypeEchartsLoading: false,
      CountByTypeMpEchartsLoading: false,
@@ -416,11 +422,14 @@
        let data = res.data.data
        this.zpCount = 0
        this.unZpCount = 0
        this.notZpCount = 0
        data.forEach(item => {
          if (item.is_card_making == 1) {
            this.zpCount = this.zpCount + item.count
          } else if (item.is_card_making == 0) {
            this.unZpCount = this.zpCount + item.count
            this.unZpCount = this.unZpCount + item.count
          } else if (item.is_card_making == 2) {
            this.notZpCount = this.notZpCount + item.count
          }
        })
        // 楼栋牌,中门牌,单元牌,户室牌
@@ -428,37 +437,42 @@
          {
            type: 'building',
            value: 0,
            onValue: 10,
            offValue: 100,
            onValue: 0,
            offValue: 0,
            notValue: 0,
            name: '楼栋牌'
          },
          {
            type: 'aoi',
            value: 0,
            onValue: 100,
            offValue: 100,
            onValue: 0,
            offValue: 0,
            notValue: 0,
            name: '大门牌'
          },
          {
            type: 'road_no',
            value: 0,
            onValue: 100,
            offValue: 100,
            onValue: 0,
            offValue: 0,
            notValue: 0,
            name: '中门牌'
          },
          {
            type: 'unit',
            value: 0,
            onValue: 100,
            offValue: 100,
            onValue: 0,
            offValue: 0,
            notValue: 0,
            name: '单元牌'
          },
          {
            type: 'room',
            value: 0,
            onValue: 100,
            offValue: 100,
            onValue: 0,
            offValue: 0,
            notValue: 0,
            name: '户室牌'
          },
@@ -471,6 +485,9 @@
            }
            if (item.is_card_making == 0 && item.type === i.type) {
              i.offValue = item.count
            }
            if (item.is_card_making == 2 && item.type === i.type) {
              i.notValue = item.count
            }
          })
        })
@@ -698,6 +715,29 @@
                  position: 'top', //在上方显示
                  textStyle: { //数值样式
                    color: '#ccc',
                    fontSize: 10
                  }
                }
              }
            },
          }, {
            name: '无需制牌',
            data: yDate.map(item => ({
              ...item,
              value: item.notValue,
              barType: 'not'
            })),
            type: 'bar',
            barWidth: '10',
            cursor: that.userInfo.dept_id != '1596020515064381442' ? 'default' : 'pointer',
            itemStyle: {
              normal: {
                color: '#e1fb4c',
                label: {
                  show: true, //开启显示
                  position: 'top', //在上方显示
                  textStyle: { //数值样式
                    color: '#e1fb4c',
                    fontSize: 10
                  }
                }
@@ -1902,6 +1942,17 @@
    }
  }
  .before-box {
    .box {
      .title {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
      }
    }
  }
  .alert-box {
    margin-top: 0;
    margin-bottom: 0;