Просмотр исходного кода

Merge remote-tracking branch 'origin/visu_emergency_01_siping_2.5d' into visu_emergency_01_siping_2.5d

彭宇 2 лет назад
Родитель
Сommit
398aa910e4

+ 8 - 1
src/api/forest.js

@@ -359,7 +359,14 @@ export function sendMessage(param) {
     data:param
   })
 }
-
+// 左侧获取通知公共
+export function getLatestNotice() {
+  return request({
+    url: '/system/notice/getLatestNotice',
+    method: 'get',
+    params: {},
+  })
+}
 
 // 事件审核
 export function eventExamine(param) {

Разница между файлами не показана из-за своего большого размера
+ 691 - 392
src/assets/iconfont/demo_index.html


Разница между файлами не показана из-за своего большого размера
+ 66 - 14
src/assets/iconfont/iconfont.css


Разница между файлами не показана из-за своего большого размера
+ 1 - 1
src/assets/iconfont/iconfont.js


+ 102 - 11
src/assets/iconfont/iconfont.json

@@ -6,6 +6,97 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "14191056",
+      "name": "喇叭广播",
+      "font_class": "labaguangbo",
+      "unicode": "e65d",
+      "unicode_decimal": 58973
+    },
+    {
+      "icon_id": "36067460",
+      "name": "水利摄像头",
+      "font_class": "shuilishexiangtou",
+      "unicode": "e65c",
+      "unicode_decimal": 58972
+    },
+    {
+      "icon_id": "11032209",
+      "name": "类型",
+      "font_class": "leixing",
+      "unicode": "e65a",
+      "unicode_decimal": 58970
+    },
+    {
+      "icon_id": "14296829",
+      "name": "点位总数",
+      "font_class": "dianweizongshu",
+      "unicode": "e6cc",
+      "unicode_decimal": 59084
+    },
+    {
+      "icon_id": "17930624",
+      "name": "测量工具",
+      "font_class": "celianggongju",
+      "unicode": "e65b",
+      "unicode_decimal": 58971
+    },
+    {
+      "icon_id": "35809866",
+      "name": "流速",
+      "font_class": "gather-flow",
+      "unicode": "e659",
+      "unicode_decimal": 58969
+    },
+    {
+      "icon_id": "7335549",
+      "name": "氨氮",
+      "font_class": "gather-ammoniaNitrogen",
+      "unicode": "eb32",
+      "unicode_decimal": 60210
+    },
+    {
+      "icon_id": "7335568",
+      "name": "溶解氧",
+      "font_class": "gather-dissolve",
+      "unicode": "eb37",
+      "unicode_decimal": 60215
+    },
+    {
+      "icon_id": "7335569",
+      "name": "液位",
+      "font_class": "gather-level",
+      "unicode": "eb36",
+      "unicode_decimal": 60214
+    },
+    {
+      "icon_id": "7335632",
+      "name": "酸碱度",
+      "font_class": "gather-ph",
+      "unicode": "eb46",
+      "unicode_decimal": 60230
+    },
+    {
+      "icon_id": "9082594",
+      "name": "氧化还原电位",
+      "font_class": "gather-orp",
+      "unicode": "eb51",
+      "unicode_decimal": 60241
+    },
+    {
+      "icon_id": "13638743",
+      "name": "温度",
+      "font_class": "gather-temperature",
+      "unicode": "e660",
+      "unicode_decimal": 58976
+    },
+    {
+      "icon_id": "13804980",
+      "name": "浊度",
+      "font_class": "gather-turbidity",
+      "unicode": "e781",
+      "unicode_decimal": 59265
+    },
+    {
       "icon_id": "12770896",
       "name": "垃圾桶",
       "font_class": "centerdata-t-hydraulic-garbage-station",
@@ -309,42 +400,42 @@
     {
       "icon_id": "21492584",
       "name": "5饲料",
-      "font_class": "farmenterprise_3",
+      "font_class": "centerdata-t-farm-enterprise-3",
       "unicode": "e67a",
       "unicode_decimal": 59002
     },
     {
       "icon_id": "1486836",
       "name": "生鲜",
-      "font_class": "farmenterprise_1",
+      "font_class": "centerdata-t-farm-enterprise-1",
       "unicode": "e639",
       "unicode_decimal": 58937
     },
     {
       "icon_id": "2116698",
       "name": "规模化畜禽养殖场",
-      "font_class": "filingslivestock",
+      "font_class": "centerdata-t-farm-filings-livestock",
       "unicode": "e63a",
       "unicode_decimal": 58938
     },
     {
       "icon_id": "4670127",
       "name": "农业",
-      "font_class": "protectinfo",
+      "font_class": "centerdata-t-farm-botany-protect-info",
       "unicode": "e63b",
       "unicode_decimal": 58939
     },
     {
       "icon_id": "5387788",
       "name": "人工改站_o",
-      "font_class": "complexmodification",
+      "font_class": "centerdata-t-farm-complex-modification",
       "unicode": "eb56",
       "unicode_decimal": 60246
     },
     {
       "icon_id": "11831137",
       "name": "菜刀",
-      "font_class": "farmenterprise_2",
+      "font_class": "centerdata-t-farm-enterprise-2",
       "unicode": "e731",
       "unicode_decimal": 59185
     },
@@ -442,7 +533,7 @@
     {
       "icon_id": "765262",
       "name": "首页",
-      "font_class": "farmlivestock",
+      "font_class": "centerdata-t-farm-livestock",
       "unicode": "e629",
       "unicode_decimal": 58921
     },
@@ -456,7 +547,7 @@
     {
       "icon_id": "8353896",
       "name": "三农补助",
-      "font_class": "greenhousefilm",
+      "font_class": "centerdata-t-farm-greenhouse-film",
       "unicode": "e62a",
       "unicode_decimal": 58922
     },
@@ -484,7 +575,7 @@
     {
       "icon_id": "18262823",
       "name": "畜禽养殖粪污处理情况30",
-      "font_class": "excrementdispose",
+      "font_class": "centerdata-t-farm-excrement-dispose",
       "unicode": "e82e",
       "unicode_decimal": 59438
     },
@@ -498,7 +589,7 @@
     {
       "icon_id": "21432644",
       "name": "农民合作社",
-      "font_class": "agriculturalcooperatives",
+      "font_class": "centerdata-t-farm-agricultural-cooperatives",
       "unicode": "e62e",
       "unicode_decimal": 58926
     },
@@ -616,7 +707,7 @@
     },
     {
       "icon_id": "30787119",
-      "name": "野生动物",
+      "name": "动物保护",
       "font_class": "dwbh",
       "unicode": "e603",
       "unicode_decimal": 58883

Разница между файлами не показана из-за своего большого размера
+ 36 - 10
src/assets/iconfont/iconfont.svg


BIN
src/assets/iconfont/iconfont.ttf


BIN
src/assets/iconfont/iconfont.woff


BIN
src/assets/iconfont/iconfont.woff2


+ 20 - 0
src/assets/styles/base.scss

@@ -230,6 +230,26 @@ ul {
   width: 100%;
   height: 100vh;
 }
+.sj-icon-btn {
+
+  padding: 0 .3rem;
+  height: 1.5rem;
+  background-color: #112543;
+  color: $inBlue;
+  border: 1px $searchBorder;
+}
+.sj-icon-btn:hover {
+  text-shadow: 0 0 15px rgba($color: $inBlueHover, $alpha: 1.0);
+}
+.sj-upload{
+  .el-upload--picture-card{
+    background-color: #0d1620!important;
+    border: 1px dashed #083874;
+  }
+  .el-upload--picture-card i {
+    color: #153d6c;
+  }
+}
 //tips样式
 .js-tps{
 

+ 6 - 4
src/components/vBottomMenu.vue

@@ -432,7 +432,7 @@
                                                  v-for="(itemfile,indexfile) in item.fileVOs">
                                       <el-image :src="itemfile.fileUrl" v-if="itemfile.fileType=='image'"
                                                 :preview-src-list="assetTypeAnImage(item.fileVOs)"
-                                                style="width:3rem; height:3rem;margin: 2px;" :title="itemfile.fileName">
+                                                style="width:3rem; height:3rem;margin: 2px;" :z-index="10000" :title="itemfile.fileName">
                                       </el-image>
                                       <img v-else-if="itemfile.fileType=='video'"
                                            style="width:3rem; height:3rem;margin: 2px;"
@@ -532,13 +532,15 @@
           </el-input>
         </el-form-item>
         <el-form-item label="附件" prop="schedulePictures" v-if="eventStatusButton=='sh'">
-          <ImageUpload ref="ImageUpload" :limit="10" :fileType="['jpg', 'png','jpeg']" :value="uploadAttachList"
+          <ImageUpload class="sj-upload" ref="ImageUpload" :limit="10" :fileType="['jpg', 'png','jpeg']" :value="uploadAttachList"
                        @input="getUrl"></ImageUpload>
         </el-form-item>
-        <el-button size="mini" type="primary" v-if="eventStatusButton=='sh'"
+        <el-button class="sj-icon-btn" size="mini" type="primary" v-if="eventStatusButton=='sh'"
+                   icon="el-icon-circle-check"
                    @click="updateCentereventTEventcatalogueStatus('shtg',true)">通过
         </el-button>
-        <el-button size="mini" type="primary" v-if="eventStatusButton=='sh'"
+        <el-button class="sj-icon-btn" size="mini" type="primary" v-if="eventStatusButton=='sh'"
+                   icon="el-icon-circle-close"
                    @click="updateCentereventTEventcatalogueStatus('shbtg',true)">不通过
         </el-button>
       </el-form>

+ 3 - 3
src/views/datacenter.vue

@@ -405,7 +405,7 @@ export default {
           id: null,
           labelCode: data.cameraList[i].cameraCode,
           labelName: data.cameraList[i].cameraName,
-          cameraType: "1",
+          cameraType:data.cameraList[i].cameraType,
           parentLabelCode: "999",
         });
         labelChannels.push({
@@ -415,7 +415,7 @@ export default {
               channelCode: data.cameraList[i].cameraCode,
               channelName: data.cameraList[i].cameraName,
               channelSn: null,
-              cameraType: "1",
+              cameraType:data.cameraList[i].cameraType,
               online: "1",
               cameraCode: "1",
             },
@@ -612,7 +612,7 @@ export default {
             ? "<span>" +
               '                  <div class="d-l-con">' +
               '                  <div class="d-l-l-text">' +
-              "                  <h4>设备数量:" +
+              "                  <h4>核心装备及数量:" +
               item.equipment +
               "</h4>" +
               "                </div>" +

+ 25 - 2
src/views/eventdetailsdialog.vue

@@ -335,7 +335,7 @@
           </el-input>
         </el-form-item>
         <el-form-item label="附件" prop="schedulePictures" v-if="eventStatusButton=='sh'">
-          <ImageUpload ref="ImageUpload" :limit="10" :fileType="['jpg', 'png','jpeg']" :value="uploadAttachList"
+          <ImageUpload class="sj-upload" ref="ImageUpload" :limit="10" :fileType="['jpg', 'png','jpeg']" :value="uploadAttachList"
                        @input="getUrl"></ImageUpload>
         </el-form-item>
         <!--<el-form-item label="联系人" v-if="eventStatusButton=='qs'">-->
@@ -348,24 +348,38 @@
         <!--</el-select>-->
         <!--</el-form-item>-->
         <el-button size="mini" type="primary" v-if="eventStatusButton=='qr'"
+                   class="sj-icon-btn"
+                   icon="el-icon-document-checked"
                    @click="updateCentereventTEventcatalogueStatus('qr',false)">确认
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='qs'"
+                   class="sj-icon-btn"
+                   icon="el-icon-edit"
                    @click="updateCentereventTEventcatalogueStatus('qs',true)">签收
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='wb'"
+                   class="sj-icon-btn"
+                   icon="el-icon-close-notification"
                    @click="updateCentereventTEventcatalogueStatus('wb',true)">误报
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='cf'"
+                   class="sj-icon-btn"
+                   icon="el-icon-document-copy"
                    @click="updateCentereventTEventcatalogueStatus('cf',true)">重复
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='ld'"
+                   class="sj-icon-btn"
+                   icon="el-icon-phone"
                    @click="updateCentereventTEventcatalogueStatus('ld',true)">发起联动
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='sh'"
+                   class="sj-icon-btn"
+                   icon="el-icon-circle-check"
                    @click="updateCentereventTEventcatalogueStatus('shtg',true)">通过
         </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='sh'"
+                   class="sj-icon-btn"
+                   icon="el-icon-circle-close"
                    @click="updateCentereventTEventcatalogueStatus('shbtg',true)">不通过
         </el-button>
       </el-form>
@@ -1458,10 +1472,17 @@ export default {
         eventCode: this.eventCode
       }
       centereventtdepteventList(param).then(res => {
-        this.depteventList = res.data
+        if(Array.isArray(res.data)&&res.data.length>0){
+          this.depteventList = this.unique(res.data);
+          console.log(this.depteventList)
+        }
         this.showResponsibilityDialog = true
       })
     },
+    unique(arr1) {
+      const res = new Map()
+      return arr1.filter((item) => !res.has(item.deptId) && res.set(item.deptId, 1))
+    },
     closeResponsibilityDialog() { //责任制关闭
       this.dutysystemTableData = []
       this.dutysystemDeptName = ''
@@ -1817,6 +1838,7 @@ export default {
       this.sendEventType = null
       this.sendHuoZaiBanJing = 0
       this.sendGuanLianYuAn = null
+      this.filterText = ''
       // this.longitude = null
       // this.latitude = null
       this.sendTaskTitle = null
@@ -1837,6 +1859,7 @@ export default {
       this.sendDeptId = null
       this.sendDeptName = null
       this.sendUserFegin = []
+      this.filterText = ''
       this.sendEventType = null
       this.sendHuoZaiBanJing = 0
       this.sendGuanLianYuAn = null

+ 25 - 7
src/views/forest.vue

@@ -7,18 +7,18 @@
     <div class="visual-body">
       <!-- 左侧 -->
       <div class="leftbar" ref="left">
-        <!-- 1 基本情况 -->
+        <!-- 1 通知公告 -->
         <div class="forthis">
           <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
             <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;" />
             <div class="this-title">
-              <span>基本情况</span>
+              <span>通知公告</span>
               <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;" />
             </div>
             <div class="i-list-con h-14">
               <div class="d-l-con no_hover">
                 <div class="d-l-l-text w-100p no-weight">
-                  <h4 class="line-h-1 w-100p" v-html="forestInfo">{{ forestInfo }}</h4>
+                  <h4 class="line-h-1 w-100p" v-html="noticeContent">{{ noticeContent }}</h4>
                 </div>
               </div>
             </div>
@@ -342,10 +342,10 @@
               </div>
               <!--分页-->
               <div class="paging">
-                <el-button type="button" @click="getEventList(calendarDay, 10, pageNum - 1)">上一页
+                <el-button type="button" @click="getEventList(calendarDay, 10, pageNum - 1)" :disabled="nextbutton">上一页
                 </el-button>
-                <!-- <span>第0页</span> -->
-                <el-button type="button" @click="getEventList(calendarDay, 10, pageNum + 1)">下一页
+                 <span>第{{pageNum}}页</span>
+                <el-button type="button" @click="getEventList(calendarDay, 10, pageNum + 1)" :disabled="nextbutton">下一页
                 </el-button>
               </div>
             </dv-border-box-13>
@@ -414,6 +414,7 @@ import Cookies from 'js-cookie'
 
 import {
   getMenuEventType,
+  getLatestNotice,
   getEventPush,
   getBaseInfo,
   getTodayEvents,
@@ -488,7 +489,7 @@ export default {
     // 初始化地图数据
     this.getSuperMapUrl();
     setTimeout(() => {
-    this.getBaseInfo()
+      this.getLatestNotice()
     this.getTodayEvents(this.getCurrentDataStr())
     this.getDeptEventCount(this.getCurrentDataStr())
     this.getWeather(this.getCurrentDataStr())
@@ -509,6 +510,8 @@ export default {
   },
   data() {
     return {
+      noticeContent: '', //通知公告
+      nextbutton:false,
       title:"",
       //警报MP3文件
       audioSrc: require('@/assets/jingbao.mp3'),
@@ -614,6 +617,14 @@ export default {
         this.$refs.supermap.removeAllviewer(num, -1);
       });
     },
+    getLatestNotice() {
+      //左侧获取通知公告
+      getLatestNotice().then(res => {
+        if (res.code == 200) {
+          this.noticeContent = res.data.noticeContent //通知公告
+        }
+      })
+    },
     getMenuEventType() {
       let that = this
       getMenuEventType().then(res => {
@@ -1035,6 +1046,13 @@ export default {
       //右侧获取事件列表
       getEventList({ eventTypeIdDl: that.eventTypeIdDl, eventTypeId: that.eventTypeId, day: day, pageSize: pageSize, pageNum: pageNum, eventName: eventSearch }, loading).then(res => {
         this.eventList = res.data
+        if(res.data!==null&&res.data.length!==0)
+        {
+          this.nextbutton=false
+        }else
+        {
+          this.nextbutton=true
+        }
         if (this.eventList != null && this.eventList.length > 0) {
           if (this.eventList[0].eventStatusValue == 'forest_event_status_1') {
             that.$refs.bottomMenu.updateAlert()

+ 6 - 3
src/views/monitor.vue

@@ -75,7 +75,7 @@
               <div class="d-l-con" v-for="(item,index) in visuForestCloudCameraBOListSearch"
                 :class="{on:listCurrentIndex2 == index}" v-on:click="dropLocation(item.latitude,item.longitude,index)">
                 <div class="d-l-l-text">
-                  <i class="iconfont sj-icon-jkzx icon-sxt"></i>
+                  <i class="iconfont icon-sxt" :class="jkListIcon"></i>
                   <h4>{{ item.cameraName }}</h4>
                   <h4 v-if="onChuan" v-html="cgqData[index]"></h4>
                 </div>
@@ -195,7 +195,7 @@
     },
     data() {
       return {
-
+        jkListIcon:'sj-icon-jkzx',
         cgqData: [],
         //摄像头名称
         rightDeptName: undefined,
@@ -434,6 +434,7 @@
         clearInterval(this.cgqTimer);
         this.selectDeviceType();
         // this.getNotCoverPlaces(this.deptId);
+        this.jkListIcon = 'sj-icon-jkzx'
       },
       laClick() {
         this.onLa = true;
@@ -444,6 +445,7 @@
         this.deptId = Cookies.get("deptId");
         clearInterval(this.cgqTimer);
         this.getDlblistBydeptId(null);
+        this.jkListIcon = 'sj-icon-labaguangbo'
       },
       chuanClick() {
         this.onLa = false
@@ -453,6 +455,7 @@
         this.placeholderMsg = "请输入传感器名称"
         this.deptId = Cookies.get("deptId");
         this.getMonitorDeviceAndDataList(null)
+        this.jkListIcon = 'sj-icon-centerdata-t-firecontrol-fire-pressure-sensor'
       },
       // 云广播
       getDlblistBydeptId(deptId) {
@@ -550,7 +553,7 @@
       getDlblistBydeptIds() {
         let that = this;
 
-        getDlblistBydeptId(null).then(function(res) {
+        getDlblistBydeptId(that.deptId).then(function(res) {
             that.loudspeakerNum = res.data.length
           })
           .catch(function(error) {

+ 2 - 1
src/views/system/login.vue

@@ -77,7 +77,7 @@
         </el-form-item>
         <!--				<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>-->
         <el-form-item style="width: 100%">
-          <el-popover placement="top" trigger="click" @hide="onhide" v-model="popoverVisible">
+          <el-popover placement="top"  trigger="manual" @hide="onhide" v-model="popoverVisible">
             <!-- 滑动拼图验证区 -->
             <el-form-item v-if="sliderOnOff">
               <SliderVerify
@@ -300,6 +300,7 @@
       handleLogin() {
         this.verified = false;
         this.sliderOnOff = true;
+        this.popoverVisible = true;
       },
     },
   };