From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1
---
src/components/mobilePopupOur/index.vue | 560 ++++++++++++++++++++++++++++++++++---------------------
1 files changed, 347 insertions(+), 213 deletions(-)
diff --git a/src/components/mobilePopupOur/index.vue b/src/components/mobilePopupOur/index.vue
index 0c89a11..20480d8 100644
--- a/src/components/mobilePopupOur/index.vue
+++ b/src/components/mobilePopupOur/index.vue
@@ -1,221 +1,355 @@
<template>
- <div id="mobilePopupOur" v-loading.fullscreen.lock="fullscreenLoading">
- <div class="m_p_heard">
- <div class="m_p_h_break" @click="closeBigPopup">
- <i class="el-icon-arrow-left icon"></i>
- </div>
- <div class="m_p_h_center">
- <div>
- <div v-if="mBigPopup.search" style="color: #fff">
- 查询结果{{ searchLabel ? "--" + searchLabel : "" }}
- </div>
- <el-dropdown trigger="click" @command="choiceIt" v-else>
- <span class="el-dropdown-link">
- {{ choiceValue }}<i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item
- v-for="(item, index) in choiceData"
- :key="index"
- :command="item"
- >{{ item.name }}</el-dropdown-item
- >
- </el-dropdown-menu>
- </el-dropdown>
- </div>
- </div>
- </div>
- <div class="m_p_center">
- <div
- class="m_p_c_tableIn"
- style="padding-top: 10px"
- v-if="tabTable.length <= 0"
- >
- <el-empty
- v-show="onlyData.length == 0"
- description="暂无数据"
- ></el-empty>
- <mobilePopupOurOnce
- v-for="(citem, cindex) in onlyData"
- :key="citem.bgImg + ''"
- :ends="onlyData.length - 1 == cindex"
- :onceData="citem"
- ></mobilePopupOurOnce>
- <div v-show="onlyData.length != 0">
- <el-divider content-position="left">
- <i class="el-icon-s-promotion"></i> 暂无更多
- </el-divider>
- </div>
- </div>
- <el-tabs v-model="activeName" @tab-click="handleClick" v-else>
- <el-tab-pane
- v-for="(item, index) in tabTable"
- :key="index"
- :label="item.title"
- :name="item.key"
- >
- <div class="m_p_c_tableIn">
- <el-empty
- v-show="item.child.length == 0"
- description="暂无数据"
- ></el-empty>
- <mobilePopupOurOnce
- v-for="(citem, cindex) in item.child"
- :key="citem.icon + ''"
- :ends="item.child.length - 1 == cindex"
- :onceData="citem"
- ></mobilePopupOurOnce>
- <div v-show="item.child.length != 0">
- <el-divider content-position="left">
- <i class="el-icon-s-promotion"></i> 暂无更多
- </el-divider>
+ <!-- 信息窗口主体mobilePopupOur -->
+ <div id="mobilePopupOur" v-loading.fullscreen.lock="fullscreenLoading">
+ <div class="m_p_heard">
+ <div class="m_p_h_break" @click="closeBigPopup">
+ <i class="el-icon-arrow-left icon"></i>
</div>
- </div>
- </el-tab-pane>
- </el-tabs>
+ <div class="m_p_h_center">
+ <div>
+ <div
+ v-if="mBigPopup.search"
+ style="color: #fff"
+ >查询结果{{ searchLabel ? " -- " + searchLabel : "" }}</div>
+ <el-dropdown trigger="click" @command="choiceIt" v-else>
+ <span class="el-dropdown-link">
+ {{ choiceValue }}
+ <i class="el-icon-arrow-down el-icon--right"></i>
+ </span>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item
+ v-for="(item, index) in choiceData"
+ :key="index"
+ :command="item"
+ >{{ item.name }}</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
+ </div>
+ </div>
+ <div class="m_p_center">
+ <div class="m_p_c_tableIn" style="padding-top: 10px" v-if="tabTable.length <= 0">
+ <el-empty v-show="onlyData.length == 0" description="暂无数据"></el-empty>
+ <mobilePopupOurOnce
+ v-for="(citem, cindex) in onlyData"
+ :key="citem.name + cindex"
+ :ends="onlyData.length - 1 == cindex"
+ :onceData="citem"
+ ></mobilePopupOurOnce>
+ <div v-show="onlyData.length != 0">
+ <el-divider content-position="left">
+ <i class="el-icon-s-promotion"></i> 暂无更多
+ </el-divider>
+ </div>
+ </div>
+ <el-tabs v-model="activeName" @tab-click="handleClick" v-else>
+ <el-tab-pane
+ v-for="(item, index) in tabTable"
+ :key="index"
+ :label="item.title"
+ :name="item.key"
+ >
+ <div class="m_p_c_tableIn">
+ <el-empty v-show="item.child.length == 0" description="暂无数据"></el-empty>
+ <mobilePopupOurOnce
+ v-for="(citem, cindex) in item.child"
+ :key="citem.icons"
+ :ends="item.child.length - 1 == cindex"
+ :onceData="citem"
+ ></mobilePopupOurOnce>
+ <!-- {{ citem.icon }} -->
+ <div v-show="item.child.length != 0">
+ <el-divider content-position="left">
+ <i class="el-icon-s-promotion"></i> 暂无更多
+ </el-divider>
+ </div>
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
</div>
- </div>
</template>
<script>
-import { getListarc } from "@/api/mobile/public/arc"; //头部下标签页数据
-import { mapGetters } from "vuex";
+import { getListarc } from '@/api/mobile/public/arc' // 头部下标签页数据
+import { mapGetters } from 'vuex'
+// 搜索
+import { getListSearch } from '@/api/mobile/search/index'
export default {
- computed: {
- ...mapGetters(["mBigPopup", "popupOurOpenData"]),
- },
- name: "mobilePopupOur",
- data() {
- return {
- searchLabel: "",
- choiceValue: "",
- choiceKey: "",
- choiceMethod: "",
- choiceData: [],
- tabTable: [],
- fullscreenLoading: false,
- activeName: "1",
- choiceMain: "",
- onlyData: [],
- };
- },
- mounted() {
- this.fullscreenLoading = true;
- if (this.mBigPopup.search) {
- //搜索事件
- this.searchLabel = this.mBigPopup.value;
- // console.log("查询搜索结果", this.mBigPopup.value);
- this.fullscreenLoading = false;
- this.choiceMain = "搜索";
- return;
+ computed: {
+ ...mapGetters(['mBigPopup', 'popupOurOpenData'])
+ },
+ name: 'mobilePopupOur',
+ data () {
+ return {
+ searchLabel: '',
+ choiceValue: '',
+ choiceKey: '',
+ choiceMethod: '',
+ choiceData: [],
+ tabTable: [],
+ fullscreenLoading: false,
+ activeName: '1',
+ choiceMain: '',
+ onlyData: []
+ }
+ },
+ mounted () {
+ this.fullscreenLoading = true
+ if (this.mBigPopup.search) {
+ // 搜索事件
+ this.searchLabel = this.mBigPopup.value
+ // console.log("查询搜索结果", this.mBigPopup.value);
+ this.fullscreenLoading = false
+ this.choiceMain = '搜索'
+ this.getListSearchMethod(this.mBigPopup.value)
+ return
+ }
+ this.choiceMain = this.popupOurOpenData.qurey // 进入的主题:列:机构单位,校区建筑
+ this.choiceData = this.popupOurOpenData.main // 带入数据 包括name、type、method
+
+ this.choiceValue = this.popupOurOpenData.main[0].name
+ this.choiceKey = this.popupOurOpenData.main[0].type
+ this.choiceMethod = this.popupOurOpenData.main[0].method
+
+ this.$store.commit('MSET_BIGPOPUPAFTER', false) // 关闭前一个弹窗
+ // console.log("请求对应街道接口", this.popupOurOpenData);
+ this.getDataHeardDown()
+ },
+ watch: {
+ fullscreenLoading () {
+ if (this.fullscreenLoading) {
+ this.notLine()
+ }
+ }
+ },
+ methods: {
+ handleClick (tab, event) {
+ // 头下部标签
+ this.fullscreenLoading = true
+ this.getOutList(this.activeName, this.choiceKey)
+ },
+ choiceIt (command) {
+ // 头部下拉菜单
+ this.fullscreenLoading = true
+ this.choiceValue = command.name
+ this.choiceKey = command.type
+ this.choiceMethod = command.method // 更改请求
+ // console.log("请求对应头部下拉菜单接口", command);
+ this.getOutList(this.activeName, this.choiceKey)
+ },
+ closeBigPopup () {
+ this.$store.commit('MSET_BIGPOPUP', false)
+ },
+ getDataHeardDown () {
+ if (this.choiceMain == '活动') {
+ // 不请求头部标签页数据
+ this.getOutList(this.choiceKey)
+ return
+ }
+ if (this.choiceMain == '机构单位') {
+ this.getOutList('', this.choiceKey)
+ return
+ }
+ // 获取头下部标签页
+ getListarc().then((res) => {
+ const title = []
+ res.data.data.forEach((item) => {
+ title.push({
+ title: item.dictValue,
+ flag: false,
+ key: item.dictKey,
+ child: []
+ })
+ })
+ this.tabTable = title
+ this.getOutList(this.activeName, this.choiceKey)
+ })
+ },
+ // 请求
+ getOutList (campus, type) {
+ // console.log(this.choiceMain, campus, type, "see");
+ const that = this
+ let d
+ if (this.choiceMain == '机构单位') {
+ // 不传标签页
+ d = {
+ type: type
+ }
+ } else if (
+ this.choiceMain == '生活设施' ||
+ this.choiceMain == '出入口' ||
+ this.choiceMain == '停车场'
+ ) {
+ // 改变传入属性
+ d = {
+ campus: campus,
+ lifetype: type
+ }
+ } else {
+ d = {
+ campus: campus,
+ type: type
+ }
+ }
+ this.choiceMethod(d).then((res) => {
+ console.log(res)
+ const data = res.data.data
+ const outList = []
+ if (
+ this.mBigPopup.name == '校区建筑' ||
+ this.mBigPopup.name == '文化风景'
+ ) {
+ // 校区建筑使用该id获取具体信息
+ data.forEach((item) => {
+ const icon = item.tpurl ? item.tpurl.split(',') : item.id
+ outList.push({
+ id: item.id,
+ name: item.mechanismname,
+ icon: icon,
+ icons: icon + item.mechanismname, // 图片响应改变
+ from: this.choiceMain,
+ video: item.videourl,
+ buts:
+ this.mBigPopup.name == '校区建筑' ||
+ this.mBigPopup.name == '文化风景'
+ ? ['定位', '实景', '图集']
+ : ['定位']
+ })
+ })
+ } else if (this.mBigPopup.name == '活动') {
+ // 校区建筑使用该id获取具体信息
+ data.records.forEach((item) => {
+ const icon = item.tpurl.split(',')
+ const useData = {
+ name: item.hdname,
+ // lntLat: [item.jd, item.wd],
+ // alt: item.gd,
+ // heading: item.heading,
+ // pitch: item.pitch,
+ // roll: item.roll,
+ bgImg: item.tpurl,
+ icon: icon,
+ icons: icon + item.hdname, // 图片响应改变
+ from: this.choiceMain,
+ // QRImg: item.codeurl,
+ websiteUrl: item.websiteurl,
+ telePhone: item.telephone,
+ // address: item.address,
+ introduce: item.context,
+ video: item.videourl,
+ buts:
+ that.mBigPopup.name == '校区建筑' ||
+ that.mBigPopup.name == '文化风景'
+ ? ['定位', '实景', '图集']
+ : ['定位'],
+ // 活动添加的字段
+ addressname: item.addressname.split(';'),
+ address: item.address.split(';'),
+ lxname: item.lxname.split(';'),
+ lx: item.lx.split(';'),
+ lntLat: [
+ item.address.split(';')[0].split(',')[0],
+ item.address.split(';')[0].split(',')[1]
+ ],
+ panoramaurl: item.panoramaurl, // 全景
+ x: item.x
+ }
+ outList.push(useData)
+ })
+ } else {
+ // 正常获取全部数据
+ data.records.forEach((item) => {
+ const icon = item.tpurl.split(',')
+ const useData = {
+ name: item.mechanismname,
+ lntLat: [item.jd, item.wd],
+ alt: item.gd,
+ heading: item.heading,
+ pitch: item.pitch,
+ roll: item.roll,
+ bgImg: item.tpurl,
+ icon: icon,
+ icons: icon + item.mechanismname, // 图片响应改变
+ from: this.choiceMain,
+ QRImg: item.codeurl,
+ websiteUrl: item.websiteurl,
+ telePhone: item.telephone,
+ address: item.address,
+ introduce: item.introduce,
+ video: item.videourl,
+ buts:
+ that.mBigPopup.name == '校区建筑' ||
+ that.mBigPopup.name == '文化风景'
+ ? ['定位', '实景', '图集']
+ : ['定位'],
+ panoramaurl: item.panoramaurl, // 全景
+ x: item.x
+ }
+ outList.push(useData)
+ })
+ }
+ that.fullscreenLoading = false
+ if (this.choiceMain == '机构单位' || this.choiceMain == '活动') {
+ that.onlyData = outList
+ return
+ }
+ that.tabTable[+campus - 1].child = outList
+ })
+ },
+ // 搜索请求
+ getListSearchMethod (name) {
+ const val = {
+ mechanismName: name
+ }
+ const that = this
+ getListSearch(val).then((res) => {
+ if (res.data.code != 200) {
+ return
+ }
+ const data = res.data.data
+ // 正常获取全部数据
+ const outList = []
+ data.forEach((item) => {
+ const icon = item.tpurl.split(',')
+ const useData = {
+ name: item.mechanismname,
+ lntLat: [item.jd, item.wd],
+ alt: item.gd,
+ heading: item.heading,
+ pitch: item.pitch,
+ roll: item.roll,
+ bgImg: item.tpurl,
+ icon: icon,
+ icons: icon + item.mechanismname, // 图片响应改变
+ from: this.choiceMain,
+ QRImg: item.codeurl,
+ websiteUrl: item.websiteurl,
+ telePhone: item.telephone,
+ address: item.address,
+ introduce: item.introduce,
+ video: item.videourl,
+ buts:
+ that.mBigPopup.name == '校区建筑' ||
+ that.mBigPopup.name == '文化风景'
+ ? ['定位', '实景', '图集']
+ : ['定位'],
+ panoramaurl: item.panoramaurl, // 全景
+ x: item.x
+ }
+ outList.push(useData)
+ })
+ that.fullscreenLoading = false
+ that.onlyData = outList
+ })
+ },
+ notLine () {
+ console.log('等待关闭')
+ setTimeout(() => {
+ this.fullscreenLoading = false
+ console.log('关闭dolog')
+ }, 5000)
+ }
}
- this.choiceMain = this.popupOurOpenData.qurey; // 进入的主题:列:机构单位,校园建筑
- this.choiceData = this.popupOurOpenData.main; //带入数据 包括name、type、method
-
- this.choiceValue = this.popupOurOpenData.main[0].name;
- this.choiceKey = this.popupOurOpenData.main[0].type;
- this.choiceMethod = this.popupOurOpenData.main[0].method;
-
- this.$store.commit("MSET_BIGPOPUPAFTER", false); //关闭前一个弹窗
- // console.log("请求对应街道接口", this.popupOurOpenData);
- this.getDataHeardDown();
- },
- methods: {
- handleClick(tab, event) {
- //头下部标签
- this.fullscreenLoading = true;
- this.getOutList(this.activeName, this.choiceKey);
- },
- choiceIt(command) {
- //头部下拉菜单
- this.fullscreenLoading = true;
- this.choiceValue = command.name;
- this.choiceKey = command.type;
- this.choiceMethod = command.method; //更改请求
- // console.log("请求对应头部下拉菜单接口", command);
- this.getOutList(this.activeName, this.choiceKey);
- },
- closeBigPopup() {
- this.$store.commit("MSET_BIGPOPUP", false);
- },
- getDataHeardDown() {
- if (this.choiceMain == "机构单位") {
- //不请求头部标签页数据
- this.getOutList(this.activeName, this.choiceKey);
- return;
- }
- //获取头下部标签页
- getListarc().then((res) => {
- let title = [];
- res.data.data.forEach((item) => {
- title.push({
- title: item.dictValue,
- flag: false,
- key: item.dictKey,
- child: [],
- });
- });
- this.tabTable = title;
- this.getOutList(this.activeName, this.choiceKey);
- });
- },
- //请求
- getOutList(campus, type) {
- let that = this;
- this.choiceMethod({ campus: campus, type: type }).then((res) => {
- const data = res.data.data;
- let outList = [];
- if (this.choiceMain == "校园建筑") {
- // 校园建筑使用该id获取具体信息
- data.forEach((item) => {
- let icon = item.tpurl.split(",");
- outList.push({
- id: item.id,
- name: item.mechanismname,
- icon: icon,
- from: this.choiceMain,
- buts:
- this.mBigPopup.name == "校园建筑" ||
- this.mBigPopup.name == "文化风景"
- ? ["定位", "实景", "图集"]
- : ["定位"],
- });
- });
- } else {
- //正常获取全部数据
- data.records.forEach((item) => {
- let icon = item.tpurl.split(",");
- outList.push({
- name: item.mechanismname,
- lntLat: [item.jd, item.wd],
- alt: item.gd,
- heading: item.heading,
- pitch: item.pitch,
- roll: item.roll,
- bgImg: item.tpurl,
- icon: icon,
- from: this.choiceMain,
- QRImg: item.codeurl,
- websiteUrl: item.websiteurl,
- telePhone: item.telephone,
- address: item.address,
- introduce: item.introduce,
- buts:
- that.mBigPopup.name == "校园建筑" ||
- that.mBigPopup.name == "文化风景"
- ? ["定位", "实景", "图集"]
- : ["定位"],
- });
- });
- }
- that.fullscreenLoading = false;
- if (this.choiceMain == "机构单位") {
- that.onlyData = outList;
- return;
- }
- that.tabTable[+campus - 1].child = outList;
- });
- },
- },
-};
-</script>
\ No newline at end of file
+}
+</script>
--
Gitblit v1.9.3