Prechádzať zdrojové kódy

首页添加事项库

DESKTOP-6LTVLN7\Liumouren 2 rokov pred
rodič
commit
cf2f1179b4

+ 57 - 33
package-lock.json

@@ -3851,6 +3851,8 @@
       "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
       "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
       "dev": true,
+      "optional": true,
+      "peer": true,
       "dependencies": {
         "fast-deep-equal": "^3.1.1",
         "json-schema-traverse": "^1.0.0",
@@ -3862,7 +3864,9 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
       "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
-      "dev": true
+      "dev": true,
+      "optional": true,
+      "peer": true
     },
     "node_modules/ajv-keywords": {
       "version": "3.5.2",
@@ -12936,7 +12940,8 @@
     "@videojs-player/vue": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/@videojs-player/vue/-/vue-1.0.0.tgz",
-      "integrity": "sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg=="
+      "integrity": "sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg==",
+      "requires": {}
     },
     "@videojs/http-streaming": {
       "version": "2.16.2",
@@ -12949,8 +12954,7 @@
         "global": "^4.4.0",
         "m3u8-parser": "4.8.0",
         "mpd-parser": "^0.22.1",
-        "mux.js": "6.0.1",
-        "video.js": "^6 || ^7"
+        "mux.js": "6.0.1"
       }
     },
     "@videojs/vhs-utils": {
@@ -13030,7 +13034,6 @@
       "integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==",
       "dev": true,
       "requires": {
-        "@babel/core": "^7.12.16",
         "@babel/helper-compilation-targets": "^7.12.16",
         "@babel/helper-module-imports": "^7.12.13",
         "@babel/plugin-proposal-class-properties": "^7.12.13",
@@ -13043,7 +13046,6 @@
         "@vue/babel-plugin-jsx": "^1.0.3",
         "@vue/babel-preset-jsx": "^1.1.2",
         "babel-plugin-dynamic-import-node": "^2.3.3",
-        "core-js": "^3.8.3",
         "core-js-compat": "^3.8.3",
         "semver": "^7.3.4"
       },
@@ -13206,7 +13208,8 @@
       "version": "5.0.8",
       "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz",
       "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "@vue/cli-service": {
       "version": "5.0.8",
@@ -13289,7 +13292,8 @@
           "version": "6.3.1",
           "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
           "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "cssnano": {
           "version": "5.1.15",
@@ -13343,7 +13347,8 @@
           "version": "3.1.0",
           "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
           "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "lru-cache": {
           "version": "6.0.0",
@@ -13401,25 +13406,29 @@
           "version": "5.1.2",
           "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
           "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-duplicates": {
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
           "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-empty": {
           "version": "5.1.1",
           "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
           "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-overridden": {
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
           "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-loader": {
           "version": "6.2.1",
@@ -13498,7 +13507,8 @@
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
           "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-normalize-display-values": {
           "version": "5.1.0",
@@ -14127,7 +14137,8 @@
       "version": "1.8.0",
       "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
       "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "acorn-walk": {
       "version": "8.2.0",
@@ -14169,15 +14180,14 @@
       "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
       "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
       "dev": true,
-      "requires": {
-        "ajv": "^8.0.0"
-      },
+      "requires": {},
       "dependencies": {
         "ajv": {
-          "version": "8.12.0",
-          "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
+          "version": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
           "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
           "dev": true,
+          "optional": true,
+          "peer": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
             "json-schema-traverse": "^1.0.0",
@@ -14189,7 +14199,9 @@
           "version": "1.0.0",
           "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
           "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
-          "dev": true
+          "dev": true,
+          "optional": true,
+          "peer": true
         }
       }
     },
@@ -14197,7 +14209,8 @@
       "version": "3.5.2",
       "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
       "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "amfe-flexible": {
       "version": "2.2.1",
@@ -15080,7 +15093,8 @@
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
           "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "lru-cache": {
           "version": "6.0.0",
@@ -15106,7 +15120,8 @@
           "version": "3.0.0",
           "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
           "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-modules-local-by-default": {
           "version": "4.0.0",
@@ -15193,7 +15208,8 @@
           "version": "6.3.1",
           "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
           "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "cssnano": {
           "version": "5.1.15",
@@ -15247,7 +15263,8 @@
           "version": "3.1.0",
           "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
           "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "json-schema-traverse": {
           "version": "1.0.0",
@@ -15302,25 +15319,29 @@
           "version": "5.1.2",
           "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
           "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-duplicates": {
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
           "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-empty": {
           "version": "5.1.1",
           "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
           "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-discard-overridden": {
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
           "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-merge-longhand": {
           "version": "5.1.7",
@@ -15388,7 +15409,8 @@
           "version": "5.1.0",
           "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
           "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         },
         "postcss-normalize-display-values": {
           "version": "5.1.0",
@@ -19935,7 +19957,8 @@
           "version": "8.12.1",
           "resolved": "https://registry.npmmirror.com/ws/-/ws-8.12.1.tgz",
           "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
-          "dev": true
+          "dev": true,
+          "requires": {}
         }
       }
     },
@@ -20056,7 +20079,8 @@
       "version": "7.5.9",
       "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
       "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "y18n": {
       "version": "5.0.8",

BIN
src/assets/img/tool/new_tb/event_library.png


BIN
src/assets/img/tool/new_tb/event_library_active.png


+ 276 - 167
src/components/Tool.vue

@@ -1,21 +1,12 @@
 <template>
   <div class="tool">
     <ul class="func">
-      <li
-        v-for="(item, index) in funcList"
-        :key="index"
-        :class="{ active: item.active }"
-        @click="toolClickHandle(item)"
-      >
+      <li v-for="(item, index) in funcList" :key="index" :class="{ active: item.active }" @click="toolClickHandle(item)">
         <p></p>
         <!-- {{ item.label }} -->
       </li>
     </ul>
-    <div
-      :class="{ help: true, active: helpActive }"
-      v-show="false"
-      @click="showHelp"
-    ></div>
+    <div :class="{ help: true, active: helpActive }" v-show="false" @click="showHelp"></div>
 
     <!-- 展示索引页面 -->
     <van-popup
@@ -49,11 +40,7 @@
           </div> -->
           <div class="list_container">
             <div>
-              <div
-                class="first_content"
-                v-for="(item, index) in cameraInfo"
-                :key="index"
-              >
+              <div class="first_content" v-for="(item, index) in cameraInfo" :key="index">
                 <div class="title">{{ item.name }}</div>
                 <ul>
                   <li
@@ -105,7 +92,7 @@
         height: '460px',
         width: '100%',
         top: '55%',
-        background: 'transparent',
+        background: 'transparent'
       }"
       :close-on-click-overlay="false"
       :closed="hidePlaneInfoDailog"
@@ -113,11 +100,7 @@
       <div class="plane_container">
         <div class="image_container">
           <ul>
-            <li
-              v-for="(item, index) in planeArr"
-              :key="index"
-              v-show="item.active"
-            >
+            <li v-for="(item, index) in planeArr" :key="index" v-show="item.active">
               <img :src="item.src" alt="" />
             </li>
             <div class="close" @click="hidePlaneInfoDailog"></div>
@@ -125,12 +108,7 @@
         </div>
         <div class="image_header">
           <ul>
-            <li
-              v-for="(item, index) in planeArr"
-              :key="index"
-              :class="{ active: item.active }"
-              @click="choosePlane(index)"
-            >
+            <li v-for="(item, index) in planeArr" :key="index" :class="{ active: item.active }" @click="choosePlane(index)">
               {{ item.name }}
             </li>
           </ul>
@@ -146,7 +124,7 @@
         height: '180px',
         width: '75%',
         top: '50%',
-        background: 'transparent',
+        background: 'transparent'
       }"
       :close-on-click-overlay="false"
       :closed="hideHelpInfoDailog"
@@ -172,38 +150,24 @@
       <div class="content">
         <div
           class="doThingFirstContent"
-          v-if="
-            doThingFirst.length != 0 &&
-            Object.getOwnPropertyNames(doThingSecond).length == 0
-          "
+          v-if="doThingFirst.length != 0 && Object.getOwnPropertyNames(doThingSecond).length == 0"
         >
           <div class="header">部门</div>
           <div class="list">
             <ul>
-              <li
-                v-for="(item, index) in doThingFirst"
-                :key="index"
-                @click="chooseDBSecond(item)"
-              >
+              <li v-for="(item, index) in doThingFirst" :key="index" @click="chooseDBSecond(item)">
                 <span>{{ item.unit }}</span
                 ><span v-if="item.chiles">({{ item.chiles.length }})</span>
               </li>
             </ul>
           </div>
         </div>
-        <div
-          class="doThingSecondContent"
-          v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"
-        >
+        <div class="doThingSecondContent" v-if="Object.getOwnPropertyNames(doThingSecond).length != 0">
           <div class="header">青浦区{{ doThingSecond.unit }}</div>
           <div class="list">
             <van-collapse v-model="activeNames" accordion>
               <div v-for="(item, index) in doThingSecond.chiles" :key="index">
-                <van-collapse-item
-                  :title="item.name"
-                  :name="index + 1 + ''"
-                  v-if="item.chiles[0].name.length != 0"
-                >
+                <van-collapse-item :title="item.name" :name="index + 1 + ''" v-if="item.chiles[0].name.length != 0">
                   <ul>
                     <li v-for="(item_, index_) in item.chiles" :key="index_">
                       {{ item_.name }}
@@ -221,16 +185,51 @@
 
       <div class="close" @click="closeDoThingPopup"></div>
       <!-- v-if="Object.getOwnPropertyNames(doThingSecond).length == 0" -->
-      <div
-        class="back"
-        @click="backDoThingPopup"
-        v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"
-      ></div>
+      <div class="back" @click="backDoThingPopup" v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"></div>
+    </van-popup>
+
+    <!-- 事项库 -->
+    <van-popup
+      v-model:show="showEventState"
+      class="plane_popup"
+      :style="{
+        height: '460px',
+        width: '100%',
+        background: 'transparent'
+      }"
+      :close-on-click-overlay="false"
+      :closed="hideEventListDailog"
+    >
+      <div class="plane_container_event">
+        <div class="close" @click="hideEventListDailog"></div>
+        <div class="paramsBox">
+          <input type="text" v-model="eventData.params.where" /><span class="paramBtu" @click="reSetParam()">重置</span>
+          <span class="paramBtu" @click="getEventData()">查询</span>
+        </div>
+        <div class="eventDataList">
+          <div class="eventMessage">
+            <span v-show="eventData.message" style="font-size: 1rem; color: #ccc">{{ eventData.message }}</span>
+          </div>
+          <p v-for="(item, index) in eventData.data" :key="'event_' + index">
+            <span
+              v-if="(item.link_ck || item.jsfs_ck) && (item.link_ws || item.jsfs_ws)"
+              @click="windowOpenNewPage(item.link_ws || item.jsfs_ws)"
+              >{{ item.link_ck || item.jsfs_ck }}</span
+            >
+          </p>
+        </div>
+        <div class="bottomToPageBox">
+          <div :class="eventData.params.page > 1 ? 'toPageBtu' : 'unToPageBtu'" @click="changePage(-1)">上一页</div>
+          <div>第{{ eventData.params.page }}页</div>
+          <div :class="!eventData.message ? 'toPageBtu' : 'unToPageBtu'" @click="changePage(1)">下一页</div>
+        </div>
+      </div>
     </van-popup>
   </div>
 </template>
 
 <script>
+import { postform } from "../utils/request.js";
 export default {
   data() {
     return {
@@ -241,6 +240,18 @@ export default {
       indexesShow: false,
       pointShow: false,
       planeShow: false,
+      showEventState: false, // 事项库弹窗显示状态
+      eventData: {
+        url: "/proxy_oauth/qpxzfwzx/szlsswsjsxk/qpxzfwzx/query/selectContent",
+        data: [],
+        message: "",
+        params: {
+          tableName: "ywtb_auditfwzn",
+          page: 1,
+          pageSize: 20,
+          where: ""
+        }
+      },
       helpShow: false,
       doThingShow: false,
       pointInfos: "",
@@ -255,21 +266,21 @@ export default {
         {
           name: "一层1F",
           src: "./static/images/plane/plane1.png",
-          active: true,
+          active: true
         },
         {
           name: "二层2F",
           src: "./static/images/plane/plane2.png",
-          active: false,
+          active: false
         },
         {
           name: "三层3F",
           src: "./static/images/plane/plane3.png",
-          active: false,
-        },
+          active: false
+        }
       ],
       activeNames: "0",
-      helpActive: false,
+      helpActive: false
     };
   },
   mounted() {
@@ -279,32 +290,38 @@ export default {
         label: "热点",
         changeActive: true,
         active: true,
-        clickFunc: this.loadPoint,
+        clickFunc: this.loadPoint
       },
       {
         label: "索引",
         changeActive: true,
         active: false,
-        clickFunc: this.showIndexes,
+        clickFunc: this.showIndexes
       },
       {
         label: "漫游",
         changeActive: true,
         active: false,
-        clickFunc: this.lookaround,
+        clickFunc: this.lookaround
       },
       {
         label: "复位",
         changeActive: false,
         active: false,
-        clickFunc: this.setViewDefaultlocation,
+        clickFunc: this.setViewDefaultlocation
       },
       {
         label: "平面图",
         changeActive: true,
         active: false,
-        clickFunc: this.showPlane,
+        clickFunc: this.showPlane
       },
+      {
+        label: "事项库",
+        changeActive: true,
+        active: false,
+        clickFunc: this.showEvent
+      }
     ];
     window.cancelLookAround = this.cancelLookAround;
     setTimeout(() => {
@@ -343,6 +360,62 @@ export default {
     showPlane() {
       this.planeShow = true;
     },
+    // 事项库跳转
+    windowOpenNewPage(linkUrl) {
+      if (linkUrl) {
+        window.location.href = linkUrl;
+      }
+    },
+    // 上一页,下一页
+    changePage(num) {
+      if (this.eventData.params.page + num > 0) {
+        this.eventData.params.page += num;
+        this.showEvent();
+      }
+    },
+    // 事项库查询条件重置
+    reSetParam() {
+      this.eventData.params.where = "";
+      this.eventData.params.page = 1;
+      this.eventData.params.pageSize = 20;
+      this.showEvent();
+    },
+    getEventData() {
+      this.eventData.data = [];
+      this.eventData.params.page = 1;
+      this.eventData.params.pageSize = 20;
+      this.showEvent();
+    },
+    // 展示事项库弹窗
+    showEvent() {
+      this.eventData.message = "";
+      let params_ = Object.assign({}, this.eventData.params);
+      if (params_.where) {
+        params_.where = "link_ck like '%" + params_.where + "%' or jsfs_ck like '%" + params_.where + "%'";
+      }
+      if (params_.page > 0) {
+        params_.page -= 1;
+      }
+      postform(this.eventData.url, params_).then(res => {
+        if (!this.showEventState) {
+          this.showEventState = true;
+        }
+        if (res.code == 200) {
+          this.eventData.data = [];
+          res.content.forEach(item => {
+            if ((item.link_ck || item.jsfs_ck) && (item.link_ws || item.jsfs_ws)) {
+              this.eventData.data.push(item);
+            }
+          });
+        } else {
+          this.eventData.message = res.message;
+        }
+      });
+    },
+    hideEventListDailog() {
+      this.showEventState = false;
+      this.funcList[5].active = false;
+    },
     hidePlaneInfoDailog() {
       this.planeShow = false;
       this.funcList[4].active = false;
@@ -378,16 +451,12 @@ export default {
         lng: 121.12275503870025,
         lat: 31.153914277622604,
         pitch: -35,
-        height: 140,
+        height: 140
       };
       // rotateCamera({lng:121.12275503870025, lat:31.153914277622604, pitch: -35, height: 140});
       // // 相机绕点环绕飞行
       // function rotateCamera(options){
-      var position = Cesium.Cartesian3.fromDegrees(
-        options.lng,
-        options.lat,
-        0.0
-      );
+      var position = Cesium.Cartesian3.fromDegrees(options.lng, options.lat, 0.0);
       // 相机看点的角度,如果大于0那么则是从地底往上看,所以要为负值,这里取-30度
       var pitch = Cesium.Math.toRadians(options.pitch);
       // 给定飞行一周所需时间,比如30s, 那么每秒转动度数
@@ -396,11 +465,7 @@ export default {
       var distance = options.height;
       var startTime = Cesium.JulianDate.fromDate(new Date());
 
-      var stopTime = Cesium.JulianDate.addSeconds(
-        startTime,
-        30,
-        new Cesium.JulianDate()
-      );
+      var stopTime = Cesium.JulianDate.addSeconds(startTime, 30, new Cesium.JulianDate());
 
       globalVariable.viewer.clock.startTime = startTime.clone(); // 开始时间
       globalVariable.viewer.clock.stopTime = stopTime.clone(); // 结速时间
@@ -418,17 +483,9 @@ export default {
         // 根据过去的时间,计算偏航角的变化
         var heading = Cesium.Math.toRadians(delTime * angle) + initialHeading;
 
-        globalVariable.viewer.camera.lookAt(
-          position,
-          new Cesium.HeadingPitchRange(heading, pitch, distance)
-        );
+        globalVariable.viewer.camera.lookAt(position, new Cesium.HeadingPitchRange(heading, pitch, distance));
 
-        if (
-          Cesium.JulianDate.compare(
-            globalVariable.viewer.clock.currentTime,
-            globalVariable.viewer.clock.stopTime
-          ) >= 0
-        ) {
+        if (Cesium.JulianDate.compare(globalVariable.viewer.clock.currentTime, globalVariable.viewer.clock.stopTime) >= 0) {
           that.cancelLookAround();
         }
       };
@@ -463,7 +520,7 @@ export default {
           roll: systemConfig.mapDefault.roll,
           time: 1,
           pitchAdjustHeight: 1000,
-          callback: function () {},
+          callback: function () {}
         }).then(() => {
           resolve();
         });
@@ -527,8 +584,8 @@ export default {
                   outlineColor: Cesium.Color.fromCssColorString("#00000066"), //背景颜色
                   verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
                   horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平位置
-                  pixelOffset: new Cesium.Cartesian2(0, -20), //偏移
-                },
+                  pixelOffset: new Cesium.Cartesian2(0, -20) //偏移
+                }
               });
               entity.infos = item;
               entity.callback = that.pointClickHandle;
@@ -559,8 +616,8 @@ export default {
                   outlineColor: Cesium.Color.fromCssColorString("#00000066"), //背景颜色
                   verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
                   horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平位置
-                  pixelOffset: new Cesium.Cartesian2(0, 23), //偏移
-                },
+                  pixelOffset: new Cesium.Cartesian2(0, 23) //偏移
+                }
               });
               entity.infos = item;
               entity.callback = that.pointClickHandle;
@@ -584,24 +641,15 @@ export default {
       return;
       globalVariable.viewer.scene.postRender.addEventListener(function () {
         globalVariable.hotMarkerArr.map(function (item) {
-          var canvasPosition =
-            globalVariable.viewer.scene.cartesianToCanvasCoordinates(
-              item._position._value,
-              new Cesium.Cartesian2()
-            );
-          if (
-            Cesium.defined(canvasPosition) &&
-            !isNaN(canvasPosition.x) &&
-            !isNaN(canvasPosition.y)
-          ) {
+          var canvasPosition = globalVariable.viewer.scene.cartesianToCanvasCoordinates(
+            item._position._value,
+            new Cesium.Cartesian2()
+          );
+          if (Cesium.defined(canvasPosition) && !isNaN(canvasPosition.x) && !isNaN(canvasPosition.y)) {
             document.getElementsByClassName(item.id)[0].style.display = "block";
             if (!document.getElementsByClassName(item.id)) return;
-            document.getElementsByClassName(item.id)[0].style.top = `${
-              canvasPosition.y - 15
-            }px`;
-            document.getElementsByClassName(item.id)[0].style.left = `${
-              canvasPosition.x - 15
-            }px`;
+            document.getElementsByClassName(item.id)[0].style.top = `${canvasPosition.y - 15}px`;
+            document.getElementsByClassName(item.id)[0].style.left = `${canvasPosition.x - 15}px`;
           } else {
             document.getElementsByClassName(item.id)[0].style.display = "none";
           }
@@ -610,10 +658,7 @@ export default {
     },
 
     addGIF2(item, position, id) {
-      let c = globalVariable.viewer.scene.cartesianToCanvasCoordinates(
-        position,
-        new Cesium.Cartesian2()
-      );
+      let c = globalVariable.viewer.scene.cartesianToCanvasCoordinates(position, new Cesium.Cartesian2());
       //创建一个div
       var div = document.createElement("div");
       //为div创建属性class = "test"
@@ -689,7 +734,7 @@ export default {
             callback: function (item) {
               // closeHull(item.camera.sceneType);
               showTitle(item.details.areaName);
-            },
+            }
           }).then(() => {});
           break;
         case 5:
@@ -727,11 +772,8 @@ export default {
             horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
             verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
             pixelOffset: new Cesium.Cartesian2(0, 0),
-            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(
-              0,
-              15
-            ),
-          },
+            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 15)
+          }
           // label: {
           //   text: item.areaName != "" ? item.areaName : "" + (index + 1),
           //   // text: "" + (index + 1),
@@ -767,7 +809,7 @@ export default {
         time: 1,
         pitchAdjustHeight: 1000,
         details: item,
-        callback: function () {},
+        callback: function () {}
       }).then(() => {
         // resolve();
       });
@@ -819,7 +861,7 @@ export default {
         details: item,
         callback: function (item) {
           closeHull(item.details.sceneType);
-        },
+        }
       });
 
       this.indexesShow = false;
@@ -850,7 +892,7 @@ export default {
         }
         return item;
       });
-    },
+    }
   },
 
   watch: {
@@ -861,9 +903,9 @@ export default {
         } else {
           this.helpActive = false;
         }
-      },
-    },
-  },
+      }
+    }
+  }
 };
 </script>
 
@@ -923,52 +965,50 @@ export default {
       }
       &:nth-child(1) {
         p {
-          background: url(~@/assets/img/tool/new_tb/hotpoint.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/hotpoint.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/hotpoint_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/hotpoint_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(2) {
         p {
-          background: url(~@/assets/img/tool/new_tb/indexes.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/indexes.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/indexes_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/indexes_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(3) {
         p {
-          background: url(~@/assets/img/tool/new_tb/pan.png) center center/100%
-            100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/pan.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/pan_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/pan_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(4) {
         p {
-          background: url(~@/assets/img/tool/new_tb/reposition.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/reposition.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/reposition_active.png)
-            center center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/reposition_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(5) {
         p {
-          background: url(~@/assets/img/tool/new_tb/plan.png) center center/100%
-            100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/plan.png) center center/100% 100% no-repeat;
+        }
+        &.active p {
+          background: url(~@/assets/img/tool/new_tb/plan_active.png) center center/100% 100% no-repeat;
+        }
+      }
+      &:nth-child(6) {
+        p {
+          background: url(~@/assets/img/tool/new_tb/event_library.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/plan_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/event_library_active.png) center center/100% 100% no-repeat;
         }
       }
     }
@@ -976,11 +1016,9 @@ export default {
   .help {
     width: 50px;
     height: 50px;
-    background: url(~@/assets/img/tool/new_tb/help.png) center center / 100%
-      100% no-repeat;
+    background: url(~@/assets/img/tool/new_tb/help.png) center center / 100% 100% no-repeat;
     &.active {
-      background: url(~@/assets/img/tool/new_tb/help_active.png) center
-        center/100% 100% no-repeat;
+      background: url(~@/assets/img/tool/new_tb/help_active.png) center center/100% 100% no-repeat;
     }
   }
 
@@ -1010,8 +1048,7 @@ export default {
           text-align: center;
           color: #ffffff;
           margin: 21px auto;
-          background: url(~@/assets/img/tool/indexes_header.png) center center /
-            100% 100% no-repeat;
+          background: url(~@/assets/img/tool/indexes_header.png) center center / 100% 100% no-repeat;
         }
         // .title_container {
         //   height: 36px;
@@ -1102,8 +1139,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1135,17 +1171,96 @@ export default {
     .close {
       width: 16px;
       height: 16px;
-      margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      // margin: 4px 4px;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
     }
   }
   :deep(.plane_popup) {
-    .plane_container {
-      width: 100%;
+    .plane_container_event {
+      padding: 1.5rem 1rem;
+      height: calc(100% - 3rem);
+      width: calc(100% - 3rem);
+      margin-left: 0.5rem;
+      background: rgba(0, 0, 0, 0.4);
+      // border-radius: 1rem;
+      position: absolute;
+      p {
+        color: #ffffff;
+        margin: 0.5rem 0;
+        font-size: 1rem;
+        font-weight: bold;
+      }
+      .paramsBox {
+        max-width: calc(100% - 20px);
+        font-size: 1rem;
+        color: #666;
+        position: relative;
+        display: flex;
+        align-self: center;
+        input {
+          color: #333;
+        }
+        .paramBtu {
+          margin: 0rem 0.3rem;
+          padding: 0.2rem 0.3rem;
+          color: #ffffff;
+          font-size: 1.2rem;
+          background: #1fb4ffaa;
+          border-radius: 0.3rem;
+        }
+      }
+      .eventDataList {
+        max-height: calc(100% - 3rem);
+        overflow-x: hidden;
+        p {
+          padding-bottom: 2px;
+          border-bottom: 1px solid #fff;
+          /* 1.设置宽度 */
+          // background-color: #ffffff32;
+          line-height: 30px;
+          /* 2.设置旧版弹性盒 */
+          display: -webkit-box;
+          /* 3. 控制行数*/
+          -webkit-line-clamp: 2;
+          /* 4. 设置子元素的排列方式  垂直排列*/
+          -webkit-box-orient: vertical;
+          /* 5.溢出隐藏 */
+          overflow: hidden;
+        }
+        .eventMessage {
+          width: 100%;
+          height: 100%;
+          display: flex;
+          justify-content: center;
+          align-content: center;
+        }
+      }
+      .bottomToPageBox {
+        width: calc(100% - 2rem);
+        position: absolute;
+        bottom: 0.5rem;
+        line-height: 1rem;
+        display: flex;
+        justify-content: space-between;
+        font-size: 0.75rem;
+        color: #dbdbdb;
+        div {
+          padding: 0.2rem 0.3rem;
+          border-radius: 0.1rem;
+        }
+        .toPageBtu {
+          color: #1fb4ff;
+          text-decoration: underline;
+          background-color: #1fb4ff64;
+        }
+        .unToPageBtu {
+          color: #ccc;
+          background-color: #cccccc64;
+        }
+      }
     }
     .image_header {
       color: #dbdbdb;
@@ -1207,9 +1322,8 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      margin-right: 10px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      // margin-right: 10px;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1252,8 +1366,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1302,15 +1415,13 @@ export default {
               height: 2px;
               width: 120px;
               position: absolute;
-              background: url(~@/assets/img/tool/indexes_point_bottom.png)
-                center center / 100% 100% no-repeat;
+              background: url(~@/assets/img/tool/indexes_point_bottom.png) center center / 100% 100% no-repeat;
               bottom: 0px;
               left: 15px;
             }
             &.active {
               color: #ffc44d;
-              background: url(~@/assets/img/tool/indexes_point_active.png)
-                center center / 100% 100% no-repeat;
+              background: url(~@/assets/img/tool/indexes_point_active.png) center center / 100% 100% no-repeat;
               &::after {
                 display: none;
               }
@@ -1385,8 +1496,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1394,8 +1504,7 @@ export default {
     .back {
       width: 24px;
       height: 24px;
-      background: url(~@/assets/img/tool/back.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/back.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       left: 0px;
@@ -1409,4 +1518,4 @@ export default {
     height: 100%;
   }
 }
-</style>
+</style>

+ 213 - 203
src/components2/Tool.vue

@@ -1,21 +1,12 @@
 <template>
   <div class="tool">
     <ul class="func">
-      <li
-        v-for="(item, index) in funcList"
-        :key="index"
-        :class="{ active: item.active }"
-        @click="toolClickHandle(item)"
-      >
+      <li v-for="(item, index) in funcList" :key="index" :class="{ active: item.active }" @click="toolClickHandle(item)">
         <p></p>
         <!-- {{ item.label }} -->
       </li>
     </ul>
-    <div
-      :class="{ help: true, active: helpActive }"
-      v-show="false"
-      @click="showHelp"
-    ></div>
+    <div :class="{ help: true, active: helpActive }" v-show="false" @click="showHelp"></div>
 
     <!-- 展示索引页面 -->
     <van-popup
@@ -49,11 +40,7 @@
           </div> -->
           <div class="list_container">
             <div>
-              <div
-                class="first_content"
-                v-for="(item, index) in cameraInfo"
-                :key="index"
-              >
+              <div class="first_content" v-for="(item, index) in cameraInfo" :key="index">
                 <div class="title">{{ item.name }}</div>
                 <ul>
                   <li
@@ -80,10 +67,7 @@
           </div>
         </div>
       </div>
-      <div
-        class="close"
-        @click="hideIndexesInfoDailog"
-      ></div>
+      <div class="close" @click="hideIndexesInfoDailog"></div>
     </van-popup>
 
     <!-- 展示点位文字信息 -->
@@ -97,10 +81,7 @@
       <div class="pointInfoContent">
         <div v-html="pointInfos"></div>
       </div>
-      <div
-        class="close"
-        @click="hidePointInfoDailog"
-      ></div>
+      <div class="close" @click="hidePointInfoDailog"></div>
     </van-popup>
 
     <!-- 展示平面图 -->
@@ -111,7 +92,6 @@
       :close-on-click-overlay="false"
       :closed="hidePlaneInfoDailog"
     >
-
       <!--      :style="{
         height: '460px',
         width: '100%',
@@ -121,30 +101,15 @@
       <div class="plane_container">
         <div class="image_container">
           <ul>
-            <li
-              v-for="(item, index) in planeArr"
-              :key="index"
-              v-show="item.active"
-            >
-              <img
-                :src="item.src"
-                alt=""
-              />
+            <li v-for="(item, index) in planeArr" :key="index" v-show="item.active">
+              <img :src="item.src" alt="" />
             </li>
-            <div
-              class="close"
-              @click="hidePlaneInfoDailog"
-            ></div>
+            <div class="close" @click="hidePlaneInfoDailog"></div>
           </ul>
         </div>
         <div class="image_header">
           <ul>
-            <li
-              v-for="(item, index) in planeArr"
-              :key="index"
-              :class="{ active: item.active }"
-              @click="choosePlane(index)"
-            >
+            <li v-for="(item, index) in planeArr" :key="index" :class="{ active: item.active }" @click="choosePlane(index)">
               {{ item.name }}
             </li>
           </ul>
@@ -160,7 +125,7 @@
         height: '180px',
         width: '75%',
         top: '50%',
-        background: 'transparent',
+        background: 'transparent'
       }"
       :close-on-click-overlay="false"
       :closed="hideHelpInfoDailog"
@@ -172,10 +137,7 @@
           <div>2. 使用工具栏内“索引”功能,可快速切换场景</div>
         </div>
       </div>
-      <div
-        class="close"
-        @click="hideHelpInfoDailog"
-      ></div>
+      <div class="close" @click="hideHelpInfoDailog"></div>
     </van-popup>
 
     <!-- 展示点位可办事项 -->
@@ -189,57 +151,31 @@
       <div class="content">
         <div
           class="doThingFirstContent"
-          v-if="
-            doThingFirst.length != 0 &&
-            Object.getOwnPropertyNames(doThingSecond).length == 0
-          "
+          v-if="doThingFirst.length != 0 && Object.getOwnPropertyNames(doThingSecond).length == 0"
         >
           <div class="header">部门</div>
           <div class="list">
             <ul>
-              <li
-                v-for="(item, index) in doThingFirst"
-                :key="index"
-                @click="chooseDBSecond(item)"
-              >
+              <li v-for="(item, index) in doThingFirst" :key="index" @click="chooseDBSecond(item)">
                 <span>{{ item.unit }}</span>
                 <span v-if="item.chiles">({{ item.chiles.length }})</span>
               </li>
             </ul>
           </div>
         </div>
-        <div
-          class="doThingSecondContent"
-          v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"
-        >
+        <div class="doThingSecondContent" v-if="Object.getOwnPropertyNames(doThingSecond).length != 0">
           <div class="header">青浦区{{ doThingSecond.unit }}</div>
           <div class="list">
-            <van-collapse
-              v-model="activeNames"
-              accordion
-            >
-              <div
-                v-for="(item, index) in doThingSecond.chiles"
-                :key="index"
-              >
-                <van-collapse-item
-                  :title="item.name"
-                  :name="index + 1 + ''"
-                  v-if="item.chiles[0].name.length != 0"
-                >
+            <van-collapse v-model="activeNames" accordion>
+              <div v-for="(item, index) in doThingSecond.chiles" :key="index">
+                <van-collapse-item :title="item.name" :name="index + 1 + ''" v-if="item.chiles[0].name.length != 0">
                   <ul>
-                    <li
-                      v-for="(item_, index_) in item.chiles"
-                      :key="index_"
-                    >
+                    <li v-for="(item_, index_) in item.chiles" :key="index_">
                       {{ item_.name }}
                     </li>
                   </ul>
                 </van-collapse-item>
-                <span
-                  class="item"
-                  v-else
-                >
+                <span class="item" v-else>
                   {{ item.name }}
                 </span>
               </div>
@@ -248,21 +184,49 @@
         </div>
       </div>
 
-      <div
-        class="close"
-        @click="closeDoThingPopup"
-      ></div>
+      <div class="close" @click="closeDoThingPopup"></div>
       <!-- v-if="Object.getOwnPropertyNames(doThingSecond).length == 0" -->
-      <div
-        class="back"
-        @click="backDoThingPopup"
-        v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"
-      ></div>
+      <div class="back" @click="backDoThingPopup" v-if="Object.getOwnPropertyNames(doThingSecond).length != 0"></div>
+    </van-popup>
+
+    <!-- 事项库 -->
+    <van-popup
+      v-model:show="showEventState"
+      class="plane_popup"
+      :style="{
+        background: 'transparent'
+      }"
+      :close-on-click-overlay="false"
+      :closed="hideEventListDailog"
+    >
+      <div class="plane_container_event">
+        <div class="close" @click="hideEventListDailog"></div>
+        <div class="paramsBox">
+          关键字:<input type="text" v-model="eventData.params.where" /> 当前页:<input
+            type="number"
+            v-model="eventData.params.page"
+          />
+          每页数:<input type="number" v-model="eventData.params.pageSize" />
+          <div class="paramBtuBox">
+            <div class="paramBtu" @click="reSetParam()">重置</div>
+            <div class="paramBtu" @click="showEvent()">查询</div>
+          </div>
+        </div>
+
+        <p v-for="(item, index) in eventData.data" :key="'event_' + index">
+          <span
+            v-if="(item.link_ck || item.jsfs_ck) && (item.link_ws || item.jsfs_ws)"
+            @click="windowOpenNewPage(item.link_ws || item.jsfs_ws)"
+            >{{ item.link_ck || item.jsfs_ck }}</span
+          >
+        </p>
+      </div>
     </van-popup>
   </div>
 </template>
 
 <script>
+import { postform } from "../utils/request.js";
 export default {
   data() {
     return {
@@ -273,6 +237,17 @@ export default {
       indexesShow: false,
       pointShow: false,
       planeShow: false,
+      showEventState: false, // 事项库弹窗显示状态
+      eventData: {
+        url: "/proxy_oauth/qpxzfwzx/szlsswsjsxk/qpxzfwzx/query/selectContent",
+        data: [],
+        params: {
+          tableName: "ywtb_auditfwzn",
+          page: 1,
+          pageSize: 20,
+          where: ""
+        }
+      },
       helpShow: false,
       doThingShow: false,
       pointInfos: "",
@@ -287,21 +262,21 @@ export default {
         {
           name: "一层1F",
           src: "./static/images/plane/plane1.png",
-          active: true,
+          active: true
         },
         {
           name: "二层2F",
           src: "./static/images/plane/plane2.png",
-          active: false,
+          active: false
         },
         {
           name: "三层3F",
           src: "./static/images/plane/plane3.png",
-          active: false,
-        },
+          active: false
+        }
       ],
       activeNames: "0",
-      helpActive: false,
+      helpActive: false
     };
   },
   mounted() {
@@ -311,32 +286,38 @@ export default {
         label: "热点",
         changeActive: true,
         active: true,
-        clickFunc: this.loadPoint,
+        clickFunc: this.loadPoint
       },
       {
         label: "索引",
         changeActive: true,
         active: false,
-        clickFunc: this.showIndexes,
+        clickFunc: this.showIndexes
       },
       {
         label: "漫游",
         changeActive: true,
         active: false,
-        clickFunc: this.lookaround,
+        clickFunc: this.lookaround
       },
       {
         label: "复位",
         changeActive: false,
         active: false,
-        clickFunc: this.setViewDefaultlocation,
+        clickFunc: this.setViewDefaultlocation
       },
       {
         label: "平面图",
         changeActive: true,
         active: false,
-        clickFunc: this.showPlane,
+        clickFunc: this.showPlane
       },
+      {
+        label: "事项库",
+        changeActive: true,
+        active: false,
+        clickFunc: this.showEvent
+      }
     ];
     window.cancelLookAround = this.cancelLookAround;
     setTimeout(() => {
@@ -345,6 +326,12 @@ export default {
     }, 1000);
   },
   methods: {
+    // 事项库跳转
+    windowOpenNewPage(linkUrl) {
+      if (linkUrl) {
+        window.location.href = linkUrl;
+      }
+    },
     // 工具栏点击事件
     toolClickHandle(item) {
       if (item.changeActive) item.active = !item.active;
@@ -379,6 +366,37 @@ export default {
       this.planeShow = false;
       this.funcList[4].active = false;
     },
+    // 事项库查询条件重置
+    reSetParam() {
+      this.eventData.params.where = "";
+      this.eventData.params.page = 1;
+      this.eventData.params.pageSize = 20;
+      this.showEvent();
+    },
+    // 展示事项库弹窗
+    showEvent() {
+      let params_ = Object.assign({}, this.eventData.params);
+      if (params_.where) {
+        params_.where = "link_ck like '%" + params_.where + "%' or jsfs_ck like '%" + params_.where + "%'";
+      }
+      if (params_.page > 0) {
+        params_.page -= 1;
+      }
+      postform(this.eventData.url, params_).then(res => {
+        if (!this.showEventState) {
+          this.showEventState = true;
+        }
+        if (res.code == 200) {
+          this.eventData.data = res.content;
+        } else {
+          this.eventData.message = res.message;
+        }
+      });
+    },
+    hideEventListDailog() {
+      this.showEventState = false;
+      this.funcList[5].active = false;
+    },
     // 帮助弹窗
     showHelp() {
       this.helpShow = true;
@@ -414,16 +432,12 @@ export default {
         lng: 121.12275503870025,
         lat: 31.153914277622604,
         pitch: -35,
-        height: 140,
+        height: 140
       };
       // rotateCamera({lng:121.12275503870025, lat:31.153914277622604, pitch: -35, height: 140});
       // // 相机绕点环绕飞行
       // function rotateCamera(options){
-      var position = Cesium.Cartesian3.fromDegrees(
-        options.lng,
-        options.lat,
-        0.0
-      );
+      var position = Cesium.Cartesian3.fromDegrees(options.lng, options.lat, 0.0);
       // 相机看点的角度,如果大于0那么则是从地底往上看,所以要为负值,这里取-30度
       var pitch = Cesium.Math.toRadians(options.pitch);
       // 给定飞行一周所需时间,比如30s, 那么每秒转动度数
@@ -432,11 +446,7 @@ export default {
       var distance = options.height;
       var startTime = Cesium.JulianDate.fromDate(new Date());
 
-      var stopTime = Cesium.JulianDate.addSeconds(
-        startTime,
-        30,
-        new Cesium.JulianDate()
-      );
+      var stopTime = Cesium.JulianDate.addSeconds(startTime, 30, new Cesium.JulianDate());
 
       globalVariable.viewer.clock.startTime = startTime.clone(); // 开始时间
       globalVariable.viewer.clock.stopTime = stopTime.clone(); // 结速时间
@@ -454,17 +464,9 @@ export default {
         // 根据过去的时间,计算偏航角的变化
         var heading = Cesium.Math.toRadians(delTime * angle) + initialHeading;
 
-        globalVariable.viewer.camera.lookAt(
-          position,
-          new Cesium.HeadingPitchRange(heading, pitch, distance)
-        );
+        globalVariable.viewer.camera.lookAt(position, new Cesium.HeadingPitchRange(heading, pitch, distance));
 
-        if (
-          Cesium.JulianDate.compare(
-            globalVariable.viewer.clock.currentTime,
-            globalVariable.viewer.clock.stopTime
-          ) >= 0
-        ) {
+        if (Cesium.JulianDate.compare(globalVariable.viewer.clock.currentTime, globalVariable.viewer.clock.stopTime) >= 0) {
           that.cancelLookAround();
         }
       };
@@ -502,7 +504,7 @@ export default {
           roll: systemConfig.mapDefault.roll,
           time: 1,
           pitchAdjustHeight: 1000,
-          callback: function () {},
+          callback: function () {}
         }).then(() => {
           resolve();
         });
@@ -566,8 +568,8 @@ export default {
                   outlineColor: Cesium.Color.fromCssColorString("#00000066"), //背景颜色
                   verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
                   horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平位置
-                  pixelOffset: new Cesium.Cartesian2(0, -20), //偏移
-                },
+                  pixelOffset: new Cesium.Cartesian2(0, -20) //偏移
+                }
               });
               entity.infos = item;
               entity.callback = that.pointClickHandle;
@@ -598,8 +600,8 @@ export default {
                   outlineColor: Cesium.Color.fromCssColorString("#00000066"), //背景颜色
                   verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
                   horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平位置
-                  pixelOffset: new Cesium.Cartesian2(0, 23), //偏移
-                },
+                  pixelOffset: new Cesium.Cartesian2(0, 23) //偏移
+                }
               });
               entity.infos = item;
               entity.callback = that.pointClickHandle;
@@ -623,24 +625,15 @@ export default {
       return;
       globalVariable.viewer.scene.postRender.addEventListener(function () {
         globalVariable.hotMarkerArr.map(function (item) {
-          var canvasPosition =
-            globalVariable.viewer.scene.cartesianToCanvasCoordinates(
-              item._position._value,
-              new Cesium.Cartesian2()
-            );
-          if (
-            Cesium.defined(canvasPosition) &&
-            !isNaN(canvasPosition.x) &&
-            !isNaN(canvasPosition.y)
-          ) {
+          var canvasPosition = globalVariable.viewer.scene.cartesianToCanvasCoordinates(
+            item._position._value,
+            new Cesium.Cartesian2()
+          );
+          if (Cesium.defined(canvasPosition) && !isNaN(canvasPosition.x) && !isNaN(canvasPosition.y)) {
             document.getElementsByClassName(item.id)[0].style.display = "block";
             if (!document.getElementsByClassName(item.id)) return;
-            document.getElementsByClassName(item.id)[0].style.top = `${
-              canvasPosition.y - 15
-            }px`;
-            document.getElementsByClassName(item.id)[0].style.left = `${
-              canvasPosition.x - 15
-            }px`;
+            document.getElementsByClassName(item.id)[0].style.top = `${canvasPosition.y - 15}px`;
+            document.getElementsByClassName(item.id)[0].style.left = `${canvasPosition.x - 15}px`;
           } else {
             document.getElementsByClassName(item.id)[0].style.display = "none";
           }
@@ -649,10 +642,7 @@ export default {
     },
 
     addGIF2(item, position, id) {
-      let c = globalVariable.viewer.scene.cartesianToCanvasCoordinates(
-        position,
-        new Cesium.Cartesian2()
-      );
+      let c = globalVariable.viewer.scene.cartesianToCanvasCoordinates(position, new Cesium.Cartesian2());
       //创建一个div
       var div = document.createElement("div");
       //为div创建属性class = "test"
@@ -733,7 +723,7 @@ export default {
             callback: function (item) {
               // closeHull(item.camera.sceneType);
               showTitle(item.details.areaName);
-            },
+            }
           }).then(() => {});
           break;
         case 5:
@@ -771,11 +761,8 @@ export default {
             horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
             verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
             pixelOffset: new Cesium.Cartesian2(0, 0),
-            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(
-              0,
-              15
-            ),
-          },
+            distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 15)
+          }
           // label: {
           //   text: item.areaName != "" ? item.areaName : "" + (index + 1),
           //   // text: "" + (index + 1),
@@ -811,7 +798,7 @@ export default {
         time: 1,
         pitchAdjustHeight: 1000,
         details: item,
-        callback: function () {},
+        callback: function () {}
       }).then(() => {
         // resolve();
       });
@@ -863,7 +850,7 @@ export default {
         details: item,
         callback: function (item) {
           closeHull(item.details.sceneType);
-        },
+        }
       });
 
       this.indexesShow = false;
@@ -894,7 +881,7 @@ export default {
         }
         return item;
       });
-    },
+    }
   },
 
   watch: {
@@ -905,9 +892,9 @@ export default {
         } else {
           this.helpActive = false;
         }
-      },
-    },
-  },
+      }
+    }
+  }
 };
 </script>
 
@@ -941,52 +928,50 @@ export default {
       }
       &:nth-child(1) {
         p {
-          background: url(~@/assets/img/tool/new_tb/hotpoint.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/hotpoint.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/hotpoint_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/hotpoint_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(2) {
         p {
-          background: url(~@/assets/img/tool/new_tb/indexes.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/indexes.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/indexes_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/indexes_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(3) {
         p {
-          background: url(~@/assets/img/tool/new_tb/pan.png) center center/100%
-            100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/pan.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/pan_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/pan_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(4) {
         p {
-          background: url(~@/assets/img/tool/new_tb/reposition.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/reposition.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/reposition_active.png)
-            center center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/reposition_active.png) center center/100% 100% no-repeat;
         }
       }
       &:nth-child(5) {
         p {
-          background: url(~@/assets/img/tool/new_tb/plan.png) center center/100%
-            100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/plan.png) center center/100% 100% no-repeat;
         }
         &.active p {
-          background: url(~@/assets/img/tool/new_tb/plan_active.png) center
-            center/100% 100% no-repeat;
+          background: url(~@/assets/img/tool/new_tb/plan_active.png) center center/100% 100% no-repeat;
+        }
+      }
+      &:nth-child(6) {
+        p {
+          background: url(~@/assets/img/tool/new_tb/event_library.png) center center/100% 100% no-repeat;
+        }
+        &.active p {
+          background: url(~@/assets/img/tool/new_tb/event_library_active.png) center center/100% 100% no-repeat;
         }
       }
     }
@@ -994,11 +979,9 @@ export default {
   .help {
     width: 50px;
     height: 50px;
-    background: url(~@/assets/img/tool/new_tb/help.png) center center / 100%
-      100% no-repeat;
+    background: url(~@/assets/img/tool/new_tb/help.png) center center / 100% 100% no-repeat;
     &.active {
-      background: url(~@/assets/img/tool/new_tb/help_active.png) center
-        center/100% 100% no-repeat;
+      background: url(~@/assets/img/tool/new_tb/help_active.png) center center/100% 100% no-repeat;
     }
   }
 
@@ -1026,8 +1009,7 @@ export default {
           text-align: center;
           color: #ffffff;
           margin: 21px auto;
-          background: url(~@/assets/img/tool/indexes_header.png) center center /
-            100% 100% no-repeat;
+          background: url(~@/assets/img/tool/indexes_header.png) center center / 100% 100% no-repeat;
         }
         .list_container {
           width: 100%;
@@ -1068,8 +1050,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1100,8 +1081,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1112,6 +1092,42 @@ export default {
     height: 380px;
     .plane_container {
       width: 100%;
+      &_event {
+        padding: 1.5rem 1rem;
+        width: calc(100% - 2rem);
+        max-height: calc(100% - 3rem);
+        overflow-x: hidden;
+        background: rgba(0, 0, 0, 0.4);
+        border-radius: 1rem;
+        position: absolute;
+        p {
+          color: #ffffff;
+          margin: 0.5rem 0;
+          font-size: 1.2rem;
+          font-weight: bold;
+        }
+        .paramsBox {
+          max-width: calc(100% - 20px);
+          font-size: 1rem;
+          color: #dbdbdb;
+          position: relative;
+          input {
+            color: #333;
+          }
+          .paramBtuBox {
+            display: flex;
+            justify-content: flex-end;
+            .paramBtu {
+              margin: 0.2rem 0.6rem;
+              padding: 0.3rem 0.5rem;
+              color: #ffffff;
+              font-size: 1.2rem;
+              background: #1fb4ffaa;
+              border-radius: 0.3rem;
+            }
+          }
+        }
+      }
     }
     .image_header {
       color: #dbdbdb;
@@ -1171,8 +1187,7 @@ export default {
       height: 16px;
       margin: 4px 4px;
       margin-right: 10px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1214,8 +1229,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1262,15 +1276,13 @@ export default {
               height: 2px;
               width: 120px;
               position: absolute;
-              background: url(~@/assets/img/tool/indexes_point_bottom.png)
-                center center / 100% 100% no-repeat;
+              background: url(~@/assets/img/tool/indexes_point_bottom.png) center center / 100% 100% no-repeat;
               bottom: 0px;
               left: 15px;
             }
             &.active {
               color: #ffc44d;
-              background: url(~@/assets/img/tool/indexes_point_active.png)
-                center center / 100% 100% no-repeat;
+              background: url(~@/assets/img/tool/indexes_point_active.png) center center / 100% 100% no-repeat;
               &::after {
                 display: none;
               }
@@ -1347,8 +1359,7 @@ export default {
       width: 16px;
       height: 16px;
       margin: 4px 4px;
-      background: url(~@/assets/img/tool/close.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/close.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       right: 0px;
@@ -1356,8 +1367,7 @@ export default {
     .back {
       width: 24px;
       height: 24px;
-      background: url(~@/assets/img/tool/back.png) center center / 100% 100%
-        no-repeat;
+      background: url(~@/assets/img/tool/back.png) center center / 100% 100% no-repeat;
       position: absolute;
       top: 0px;
       left: 0px;
@@ -1371,4 +1381,4 @@ export default {
     height: 100%;
   }
 }
-</style>
+</style>