无人机管理后台前端(已迁走)
张含笑
2025-08-09 f19841d2742d9a5af07ff068e76e3ac296aa3193
feat:地址生成二维码
1 files modified
44 ■■■■■ changed files
src/views/tickets/ticket.vue 44 ●●●●● patch | view | raw | blame | history
src/views/tickets/ticket.vue
@@ -638,7 +638,24 @@
                  </div>
                </template>
                <template v-else>
                  <div class="media-title">地图标记事件点</div>
                  <div class="media-title">地图标记事件点
                    <el-popover   v-if="currentDetail.status === 3"
                                popper-class="custom-qrcode-popover"
                                :width="120"
                                :visible="currentDetail.showQR && detailVisible"
                                placement="top"
                                title=""
                                trigger="click"
                            >
                                <template #reference>
                                    <img @click.stop="handleQRCode(currentDetail)"  class="QRCodeImg" src="@/assets/images/dataCenter/positionicon.png" alt="" title="事件导航" />
                                </template>
                                <div class="qrcode-content">
                                    <CreateQRcode v-if="currentDetail.showQR && detailVisible" :latAndLon="currentDetail.location"></CreateQRcode>
                                </div>
                            </el-popover>
                  </div>
                  <div class="media-content">
                    <map-container v-if="detailVisible" ref="MapContainer"></map-container>
                  </div>
@@ -867,6 +884,7 @@
</template>
<script>
import { getSmallImg, getShowImg } from '@/utils/util';
import { ElMessageBox, ElLoading } from 'element-plus';
import { calculateDefaultRange } from '@/utils/util';
@@ -888,6 +906,7 @@
import { getAdcodeObj } from '@/utils/disposeData'
import elTooltipCopy from '@/components/ElTooltipCopy.vue'
import getBaseConfig from '@/buildConfig/config'
import CreateQRcode from '@/components/CreateQRcode/CreateQRcode.vue'
const { envName } = getBaseConfig()
function regExp (label, name) {
  var reg = new RegExp(label + '=([^&]*)(&|$)', 'g')
@@ -895,7 +914,7 @@
}
export default {
  components: { elTooltipCopy },
  components: { elTooltipCopy,CreateQRcode },
  name: 'TicketPage',
  data() {
    return {
@@ -1409,12 +1428,18 @@
      this.currentDetail.processingDetail = this.currentDetail.content;
      this.handleViewDetail(this.currentDetail);
      // 如果使用地图组件,需要更新地图标记
      this.$nextTick(() => {
        if (this.$refs.MapContainer && this.currentDetail.location) {
          this.$refs.MapContainer.initAddEntity('point', this.currentDetail.location);
        }
      });
    },
    async handleQRCode (val){
    val.showQR = !val.showQR
console.log('this.currentDetailvvvvv',val);
    },
    async loadAMapScripts() {
      try {
@@ -2056,12 +2081,15 @@
      this.currentDetail = {
        ...detailData,
        // address: null,
        showQR: false,
        latAndLon: _.round(detailData.location[0], 6) + ',' + _.round(detailData.location[1], 6),
      };
      console.log('this.currentDetail', this.currentDetail);
      this.detailVisible = true;
      this.handleTypeChange(this.currentDetail.type)
      console.log('this.currentDetail.location',this.currentDetail.location);
      this.$nextTick(() => {
        if (this.$refs.MapContainer && this.$refs.MapContainer.initAddEntity) {
          this.$refs.MapContainer.initAddEntity('point', this.currentDetail.location);
@@ -2967,7 +2995,10 @@
};
</script>
<style lang="scss">
.custom-dialog {  max-height: 96vh; /* 80% 视口高度 */}
.custom-dialog {  max-height: 96vh; }
.custom-qrcode-popover {
min-width: 120px !important;
}
</style>
<style lang="scss" scoped>
@@ -3413,6 +3444,13 @@
  .media-title {
    font-weight: bold;
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    .QRCodeImg{
    width: 18px;
    height: 18px;
    cursor: pointer;
    }
  }
  .media-content {