Переглянути джерело

Merge remote-tracking branch 'origin/visu_forest_0_1' into visu_forest_0_1

wang_xy 2 роки тому
батько
коміт
6b84f234fa

+ 2 - 2
.env.development

@@ -1,10 +1,10 @@
 # 页面标题
-VUE_APP_TITLE = 通榆县乡村振兴监管平台
+VUE_APP_TITLE = 四平市态势感知平台
 
 # 开发环境配置
 ENV = 'development'
 
-# 通榆县乡村振兴监管平台/开发环境
+# 四平市态势感知平台/开发环境
 VUE_APP_BASE_API = '/dev-api'
 
 # 路由懒加载

+ 2 - 2
.env.production

@@ -1,8 +1,8 @@
 # 页面标题
-VUE_APP_TITLE = 通榆县乡村振兴监管平台
+VUE_APP_TITLE = 四平市态势感知平台
 
 # 生产环境配置
 ENV = 'production'
 
-# 若依管理系统/生产环境
+# 四平市态势感知平台/生产环境
 VUE_APP_BASE_API = '/prod-api'

+ 2 - 2
.env.staging

@@ -1,10 +1,10 @@
 # 页面标题
-VUE_APP_TITLE = 通榆县乡村振兴监管平台
+VUE_APP_TITLE = 四平市态势感知平台
 
 NODE_ENV = production
 
 # 测试环境配置
 ENV = 'staging'
 
-# 若依管理系统/测试环境
+# 四平市态势感知平台/测试环境
 VUE_APP_BASE_API = '/stage-api'

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "name": "ruoyi",
   "version": "3.4.0",
-  "description": "通榆县乡村振兴监管平台",
+  "description": "四平市态势感知平台",
   "author": "若依",
   "license": "MIT",
   "scripts": {

Різницю між файлами не показано, бо вона завелика
+ 2 - 0
public/hwMeeting/HWMeeting.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
public/hwMeeting/bulma.min.css


Різницю між файлами не показано, бо вона завелика
+ 1015 - 0
public/hwMeeting/meeting-en.html


Різницю між файлами не показано, бо вона завелика
+ 1032 - 0
public/hwMeeting/meeting.html


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
public/hwMeeting/moment.min.js


Різницю між файлами не показано, бо вона завелика
+ 26292 - 0
public/hwMeeting/react-dom.development.js


Різницю між файлами не показано, бо вона завелика
+ 3357 - 0
public/hwMeeting/react.development.js


+ 25 - 0
src/api/meeting.js

@@ -0,0 +1,25 @@
+import request from '@/utils/request'
+
+// 查询该事件是否有会议
+export function hasConferences(eventId) {
+  return request({
+    url: '/center-event/hwMeeting/hasConferences?eventId=' + eventId,
+    method: 'post'
+  })
+}
+
+// 根据事件ID和标题创建会议
+export function createConferences(eventId, subject) {
+  return request({
+    url: '/center-event/hwMeeting/createConferences?eventId='+eventId+'&subject='+subject,
+    method: 'post'
+  })
+}
+
+// 获取登录人信息
+export function getUserInfo() {
+  return request({
+    url: '/center-event/hwMeeting/getUserInfo',
+    method: 'get'
+  })
+}

+ 128 - 115
src/components/v-header.vue

@@ -1,135 +1,148 @@
 <template>
-	<!--头部-->
-	<div class="header">
-		<Clock></Clock>
-		<!--中间LOGO -->
-		<div class="title">
-			<!-- <img src="@/assets/images/integrated/bigdata-header-nav-left2.png" /> -->
-			<h3><img class="logo" src="@/assets/images/integrated/logo-small.png" />通榆县乡村振兴监管平台 {{titlename}}
-			</h3>
-			<!-- <img src="@/assets/images/integrated/bigdata-header-nav-right2.png" /> -->
-		</div>
+  <!--头部-->
+  <div class="header">
+    <Clock></Clock>
+    <!--中间LOGO -->
+    <div class="title">
+      <!-- <img src="@/assets/images/integrated/bigdata-header-nav-left2.png" /> -->
+      <h3><img class="logo" src="@/assets/images/integrated/logo-small.png"/>{{ systemTitle.title }} {{ titlename }}
+      </h3>
+      <!-- <img src="@/assets/images/integrated/bigdata-header-nav-right2.png" /> -->
+    </div>
 
-		<!--中间导航-->
-		<div class="bignav">
-			<img src="@/assets/images/integrated/bigdata-header-nav-left.png" />
-			<router-link v-for="(navbar,index) in navbar" :key="index+'1'" :to="navbar.path"  class="bignav-list"
-				exact>
-				<a>{{navbar.meta.title}}</a>
-			</router-link>
-			<img src="@/assets/images/integrated/bigdata-header-nav-right.png" />
-		</div>
-		<!-- 右侧5个中心 -->
-		<VfastMenu></VfastMenu>
-	</div>
+    <!--中间导航-->
+    <div class="bignav">
+      <img src="@/assets/images/integrated/bigdata-header-nav-left.png"/>
+      <router-link v-for="(navbar,index) in navbar" :key="index+'1'" :to="navbar.path" class="bignav-list"
+                   exact>
+        <a>{{ navbar.meta.title }}</a>
+      </router-link>
+      <img src="@/assets/images/integrated/bigdata-header-nav-right.png"/>
+    </div>
+    <!-- 右侧5个中心 -->
+    <VfastMenu></VfastMenu>
+  </div>
 </template>
 
 <script>
-	import {constantRoutes} from '@/router/index'//navbar导航引用了router路由的数组
-	import Clock from '@/components/clock.vue' // 时钟+天气
-	import VfastMenu from '@/components/v-fastmenu.vue' // 头部右侧菜单
-	export default{
-		components:{
-			VfastMenu,
-			Clock
+import { constantRoutes } from '@/router/index' //navbar导航引用了router路由的数组
+import Clock from '@/components/clock.vue' // 时钟+天气
+import VfastMenu from '@/components/v-fastmenu.vue' // 头部右侧菜单
+import { fontConfig } from '@/api/login'
 
-		},
-		created(){
-			this.navbar
-		},
-		data(){
-			return{
+export default {
+  components: {
+    VfastMenu,
+    Clock
 
-			}
-		},
-		methods:{
-		},
-		computed:{
-			titlename(){
-				return this.$route.meta.title
-			},
-			//导航菜单
-			navbar(){
-				return constantRoutes.slice(1)
-			},
-		},
+  },
+  created() {
+    this.navbar,
+      this.fontConfig()
+  },
+  data() {
+    return {
+      systemTitle: {
+        title: '',  //标题
+        subTitle: ''//副标题 数字林业
+      }
+    }
+  },
+  methods: {
+    fontConfig() {
+      fontConfig().then(res => {
+        this.systemTitle.title = res.data.fontTitle
+        this.systemTitle.subTitle = res.data.subTitle
+      })
+    }
+  },
+  computed: {
+    titlename() {
+      return this.$route.meta.title
+    },
+    //导航菜单
+    navbar() {
+      return constantRoutes.slice(1)
+    }
+  }
 
-	}
+}
 </script>
 
 <style rel="stylesheet/scss" lang="scss" scoped>
-	@import '@/assets/styles/base.scss';
-	.header {
-		width: 100%;
-		background: #a7ec12;
-		background: url(../assets/images/visual/header.png) no-repeat center center;
-		background-size: cover;
-		height: 4rem;
-		display: flex;
-		align-items: center;
-		z-index: 1000;
-		position: absolute;
-		top: 0;
+@import '@/assets/styles/base.scss';
 
-		.title {
-			display: flex;
-			position: fixed;
-			left: 50%;
-			transform: translateX(-50%);
+.header {
+  width: 100%;
+  background: #a7ec12;
+  background: url(../assets/images/visual/header.png) no-repeat center center;
+  background-size: cover;
+  height: 4rem;
+  display: flex;
+  align-items: center;
+  z-index: 1000;
+  position: absolute;
+  top: 0;
 
-			h3 {
-				display: flex;
-				align-items: center;
-				text-align: center;
-				color: $white;
-				font-size: 1.8rem;
-				font-family: $fontFk;
+  .title {
+    display: flex;
+    position: fixed;
+    left: 50%;
+    transform: translateX(-50%);
 
-				img {
-					margin-right: .5rem;
-				}
-			}
-		}
+    h3 {
+      display: flex;
+      align-items: center;
+      text-align: center;
+      color: $white;
+      font-size: 1.8rem;
+      font-family: $fontFk;
 
-		.bignav {
-			height: 40px;
-			position: fixed;
-			left: 50%;
-			transform: translateX(-50%);
-			top: 3.9rem;
-			z-index: 1000;
-			border-radius: 5px;
-			display: flex;
-			justify-content: cetner;
-			align-items: center;
+      img {
+        margin-right: .5rem;
+      }
+    }
+  }
 
-			.bignav-list {
-				background: url(../assets/images/integrated/bigdata-header-nav-re.png) repeat-x center;
-				float: left;
-				display: flex;
-				justify-content: cetner;
-				align-items: center;
-				color: $fListTitle;
-				height: 40px;
-				font-size: 12px;
-				padding: 0 23px;
-				cursor: pointer;
-				-webkit-transform: translateY(0);
-				transform: translateY(0);
-				transition: all 0.3s ease-in-out;
-			}
+  .bignav {
+    height: 40px;
+    position: fixed;
+    left: 50%;
+    transform: translateX(-50%);
+    top: 3.9rem;
+    z-index: 1000;
+    border-radius: 5px;
+    display: flex;
+    justify-content: cetner;
+    align-items: center;
 
-			.router-link-active,
-			.bignav-list:hover {
-				filter: brightness(2.3);
-				-webkit-transform: translateY(-1px);
-				transform: translateY(-1px);
-				color: $inBlueHover;
-				border-bottom: 1px solid $inBlueHover;
-				transition: all 0.3s ease-in-out;
+    .bignav-list {
+      background: url(../assets/images/integrated/bigdata-header-nav-re.png) repeat-x center;
+      float: left;
+      display: flex;
+      justify-content: cetner;
+      align-items: center;
+      color: $fListTitle;
+      height: 40px;
+      font-size: 12px;
+      padding: 0 23px;
+      cursor: pointer;
+      -webkit-transform: translateY(0);
+      transform: translateY(0);
+      transition: all 0.3s ease-in-out;
+    }
 
-			}
-		}
+    .router-link-active,
+    .bignav-list:hover {
+      filter: brightness(2.3);
+      -webkit-transform: translateY(-1px);
+      transform: translateY(-1px);
+      color: $inBlueHover;
+      border-bottom: 1px solid $inBlueHover;
+      transition: all 0.3s ease-in-out;
 
-	}
+    }
+  }
+
+}
 </style>

+ 1 - 1
src/layout/components/Sidebar/Logo.vue

@@ -35,7 +35,7 @@ export default {
   },
   data() {
     return {
-      title: '通榆县乡村振兴监管平台',
+      title: '四平市态势感知平台',
       logo: logoImg
     }
   }

+ 5 - 5
src/views/afforestation.vue

@@ -15,7 +15,7 @@
               </el-date-picker>
             </div>
             <div class="i-list-con h-19">
-              <div class="d-l-con" :class="{on:listCurrentIndex1 == item.id}" v-for="(item,index) in afforestationList"
+              <div class="d-l-con" v-if="afforestationList!=null&&afforestationList.length>0" :class="{on:listCurrentIndex1 == item.id}" v-for="(item,index) in afforestationList"
                    @click="getAfforestationArea(item.id)">
                 <div class="d-l-l-text">
                   <i class="i-small"></i>
@@ -91,8 +91,8 @@ export default {
   },
   data() {
     return {
-      listCurrentIndex1: '',
-      listCurrentIndex2: '',
+      listCurrentIndex1: '1',
+      listCurrentIndex2: '2',
       pickYear: new Date(), //选择年份
       afforestationList: [],
       AfforestationAreaList: [],
@@ -172,8 +172,8 @@ export default {
     /** ----------------------------------底部按钮公用组件结束------------------------------------- */
 
     getInit() {
-      this.listCurrentIndex1 = ''
-      this.listCurrentIndex2 = ''
+      this.listCurrentIndex1 = '1'
+      this.listCurrentIndex2 = '2'
       let that = this
       this.afforestationList = []
       this.AfforestationAreaList = []

+ 17 - 8
src/views/bigdata/bigdata.vue

@@ -5,7 +5,7 @@
     <div class="header">
       <!-- title -->
       <div class="header-left"><img class="logo" src="@/assets/images/integrated/logo-small.png"/>
-        <h3 class="title">通榆县乡村振兴监管平台-数字林业-统计分析</h3>
+        <h3 class="title">{{ systemTitle.title }}-{{ systemTitle.subTitle }}-统计分析</h3>
       </div>
       <div class="bignav">
         <img src="@/assets/images/integrated/bigdata-header-nav-left.png"/>
@@ -137,7 +137,6 @@
 <script>
 import tabbar from './tabbar.vue' //区域切换
 import bigdataSupermap from '@/components/supermap' //超图
-
 //echarts
 import chartEvent from './chart-event.vue' //1  事件、、
 import chartForestFarm from './chart-forestFarm.vue' //2  林场分布、、
@@ -153,8 +152,8 @@ import chartFireBrigade from './chart-fireBrigade.vue' //12 防火队、、
 import chartGridStaff from './chart-gridStaff.vue' //13 网格人员、、
 import chartWeatherStation from './chart-weatherStation.vue' //14 气象站、、
 import chartEquipmentDistribution from './chart-equipmentDistribution' //16 设备分布、、
-
-import {getRlt} from '@/api/bigdata'
+import { getRlt } from '@/api/bigdata'
+import { fontConfig } from '@/api/login'
 
 export default {
   components: {
@@ -178,6 +177,10 @@ export default {
   data() {
 
     return {
+      systemTitle: {
+        title: '',  //标题
+        subTitle: ''//副标题 数字林业
+      },
       visited: '',
       navbar: [
         {
@@ -226,8 +229,10 @@ export default {
 
     }
   },
-
-  methods:{
+  created() {
+    this.fontConfig()
+  },
+  methods: {
     rlt() {
       let that = this
       getRlt().then(resp => {
@@ -236,6 +241,12 @@ export default {
           that.$refs.bigdataSupermap.loadHeatMap(resp.data)
         }, 5000)
       })
+    },
+    fontConfig() {
+      fontConfig().then(res => {
+        this.systemTitle.title = res.data.fontTitle
+        this.systemTitle.subTitle = res.data.subTitle
+      })
     }
   },
   mounted() {
@@ -244,8 +255,6 @@ export default {
 }
 
 
-
-
 </script>
 
 <style rel="stylesheet/scss" lang="scss" scoped>

+ 27 - 0
src/views/datacenter.vue

@@ -139,8 +139,12 @@ export default {
         this.$refs.eventLocation.showEventLocation()
         this.$refs.supermap.isEditableLayers = false
         this.$refs.bottomMenu.showChild = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChangChild = false
       } else if (click == 'editableLayers') {
         this.$refs.bottomMenu.showChild = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChangChild = false
         if (!this.$refs.supermap.isEditableLayers) {
           this.$refs.supermap.isEditableLayers = true
         } else {
@@ -148,6 +152,8 @@ export default {
         }
       } else if (click == 'layerSwitching') {
         this.$refs.supermap.isEditableLayers = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChangChild = false
         if (!this.$refs.bottomMenu.showChild) {
           this.$refs.bottomMenu.showChild = true
         } else {
@@ -157,7 +163,28 @@ export default {
         this.$refs.TVWall.showTVWall()
         this.$refs.supermap.isEditableLayers = false
         this.$refs.bottomMenu.showChild = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChangChild = false
+      } else if (click == 'forestban') {
+        this.$refs.supermap.isEditableLayers = false
+        this.$refs.bottomMenu.showChild = false
+        this.$refs.bottomMenu.showChangChild = false
+        if (!this.$refs.bottomMenu.showBanChild) {
+          this.$refs.bottomMenu.showBanChild = true
+        } else {
+          this.$refs.bottomMenu.showBanChild = false
+        }
+      } else if (click == 'forestchang') {
+        this.$refs.supermap.isEditableLayers = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChild = false
+        if (!this.$refs.bottomMenu.showChangChild) {
+          this.$refs.bottomMenu.showChangChild = true
+        } else {
+          this.$refs.bottomMenu.showChangChild = false
+        }
       }
+
     },
     //选择图层
     choseLayerSwitching(url, isClear) {

+ 29 - 3
src/views/eventdetailsdialog.vue

@@ -158,7 +158,7 @@
                                 </el-button>
                               </div>
                               <div class="z-info-btm-grp-right">
-                                <el-button size="small" icon="el-icon-mic">会议
+                                <el-button size="small" icon="el-icon-mic" @click="joinMeeting()">会议
                                 </el-button>
                               </div>
                             </div>
@@ -977,7 +977,10 @@ import {
 import {
   getHaiKangVideoServer
 } from '@/api/haikang/haikang'
-
+import {
+  hasConferences,
+  createConferences, getUserInfo
+} from "@/api/meeting"
 export default {
   dicts: ['task_source'],
   watch: {
@@ -2187,11 +2190,34 @@ export default {
         }
       })
     },
-//RSA加密
+    //RSA加密
     setEncrypt(value) {
       var encrypt = new JSEncrypt()
       encrypt.setPublicKey(this.pubKey)
       return encrypt.encrypt(value)
+    },
+    //加入华为视频会议方法
+    joinMeeting(){
+      let eventId = this.eventId;
+      let subject = "视频会议";
+      let nickName;
+      getUserInfo().then(res => {
+        nickName = res.data.nickName;
+      });
+      hasConferences(eventId).then(res => {
+        let data = res.data;
+        /**如果没有正在开启的会议会返回空对象**/
+        if(res.code == 200 && Object.keys(data).length === 0){
+          createConferences(eventId,subject).then(res => {
+            let data = res.data;
+            if(res.code == 200){
+              window.open("/hwMeeting/meeting.html?nickName="+encodeURI(encodeURI(nickName))+"&conferenceID="+data.conferenceID+"&password="+data.password);
+            }
+          });
+        }else{
+          window.open("/hwMeeting/meeting.html?nickName="+encodeURI(encodeURI(nickName))+"&conferenceID="+data.conferenceID+"&password="+data.password);
+        }
+      });
     }
     /** ----------------------------------海康摄像头预览结束------------------------------------- */
   }

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

@@ -1,7 +1,7 @@
 <template>
   <div class="login">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">通榆县乡村振兴监管平台</h3>
+      <h3 class="title">四平市态势感知平台</h3>
       <div class="login-container">
         <h4>请登录</h4>
         <el-form-item prop="username">

+ 16 - 11
src/views/system/login.vue

@@ -2,9 +2,8 @@
   <div class="login" :style="{backgroundImage: 'url('+backgroudImg+')'}">
     <StarBackground />
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="sub-title" v-if="systemTitle.subTitle">{{systemTitle.subTitle}}</h3>
       <h3 class="title">{{systemTitle.title}}</h3>
-
+      <h3 class="sub-title" v-if="systemTitle.subTitle">{{systemTitle.subTitle}}</h3>
       <div class="login-container">
         <h4>请登录</h4>
         <el-form-item prop="username">
@@ -70,8 +69,8 @@
 			return {
         backgroudImg:'', //背景图片
         systemTitle:{
-          title:'通榆县乡村振兴综合监管平台',  //标题
-          subTitle:'数字林业'  ,//副标题
+          title:'',  //标题
+          subTitle:''  ,//副标题 数字林业
         },
 				codeUrl: '',
 				loginForm: {
@@ -212,14 +211,20 @@
     font-family: $fontFk;
     font-size: 55px;
   }
-	.title {
-		margin: 0px auto 30px auto;
-		text-align: center;
-		color: #fff;
-		font-family: $fontFk;
-		font-size: 38px;
+  .title {
+    margin: 0px auto 10px auto;
+    text-align: center;
+    color: #fff;
+    font-family: $fontFk;
+    font-size: 38px;
 
-	}
+  }
+  .sub-title {
+    text-align: center;
+    color: #fff;
+    font-family: $fontFk;
+    font-size: 38px;
+  }
 
 	.login-form {
 		border-radius: 6px;

+ 1 - 1
src/views/system/register.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="register">
     <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
-      <h3 class="title">通榆县乡村振兴监管平台</h3>
+      <h3 class="title">四平市态势感知平台</h3>
       <el-form-item prop="username">
         <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />

+ 1 - 1
vue.config.js

@@ -7,7 +7,7 @@ function resolve(dir) {
 
 const CompressionPlugin = require('compression-webpack-plugin')
 
-const name = process.env.VUE_APP_TITLE || '通榆县乡村振兴监管平台' // 网页标题
+const name = process.env.VUE_APP_TITLE || '四平市态势感知平台' // 网页标题
 
 const port = process.env.port || process.env.npm_config_port || 80 // 端口