215 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
|     <div class="index vrcode">
 | ||
|         <div class="header">
 | ||
|             <div class="header-left">
 | ||
|                 <img src="../assets/image/logo.png" alt="">
 | ||
|             </div>
 | ||
|             <div class="header-center">
 | ||
| 
 | ||
|             </div>
 | ||
|             <div class="header-right" v-if="userInfo">
 | ||
|                 <div class="return-btn" @click="returnBtn">返回</div>
 | ||
|                 <img src="../assets/image/avatar.png" alt="">
 | ||
|                 <div class="user-data">
 | ||
|                     <div class="name">欢迎,{{ userInfo.nickName }}</div>
 | ||
|                     <div class="time" v-if="time"> {{ time.year.year }}-{{ time.year.month }}-{{ time.year.date }}</div>
 | ||
|                 </div>
 | ||
|                 <div class="login-out" @click="loginOut"></div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <div class="index-content">
 | ||
|             <div class="left collapse scroll">
 | ||
|                 <el-menu :default-active="routerNow" class="el-menu-vertical-demo" @open="clickmenu" @close="clickmenu">
 | ||
|                     <template v-for="item, index in leftList">
 | ||
|                         <el-submenu @click="toRouter1(item)" :index="item.router" v-if="item.list.length">
 | ||
|                             <template slot="title">
 | ||
|                                 <div class="img"><img :src="item.img" alt=""></div>
 | ||
|                                 <span>{{ item.name }}</span>
 | ||
|                             </template>
 | ||
|                             <el-menu-item-group>
 | ||
|                                 <el-menu-item :disabled="item1.router ? false : true" @click="toRouter1(item1)"
 | ||
|                                     :index="item1.router" v-for="item1, index1 in item.list">{{ item1.name }}</el-menu-item>
 | ||
|                             </el-menu-item-group>
 | ||
|                         </el-submenu>
 | ||
|                         <el-menu-item @click="toRouter1(item)" :index="item.router" v-else>
 | ||
|                             <div class="img"><img :src="item.img" alt=""></div>
 | ||
|                             <span>{{ item.name }}</span>
 | ||
|                         </el-menu-item>
 | ||
|                     </template>
 | ||
| 
 | ||
|                 </el-menu>
 | ||
| 
 | ||
|             </div>
 | ||
|             <div class="right right-page">
 | ||
|                 <router-view></router-view>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| </template>
 | ||
| <script>
 | ||
| import { getnowtime } from '../assets/js/nowTime'
 | ||
| export default {
 | ||
|     data() {
 | ||
|         return {
 | ||
|             time: null,//当前时间
 | ||
| 
 | ||
| 
 | ||
|             activeNames: [3],
 | ||
|             leftList: [
 | ||
|                 {
 | ||
|                     name: '种植计划', router: 'plantingPlan',
 | ||
|                     img: require('../assets/image/vrcode-icon0.png'),
 | ||
|                     list: [],
 | ||
|                     isRouter: true,
 | ||
|                 },
 | ||
|                 {
 | ||
|                     name: '生产环节', router: 'productionProcess',
 | ||
|                     routerList: ['agricultural', 'sprayInsecticide', 'spreadManure', 'pickingRecords'],
 | ||
|                     img: require('../assets/image/vrcode-icon1.png'),
 | ||
|                     list: [{ name: '农事管理', router: '' },//agricultural
 | ||
|                     { name: '施肥记录', router: '' },//spreadManure
 | ||
|                     { name: '打药记录', router: '' },//sprayInsecticide
 | ||
|                     { name: '采摘记录', router: '' },//pickingRecords
 | ||
|                     { name: '清洁记录', router: '' },
 | ||
|                     { name: '病虫害管理', router: '' },]
 | ||
|                 },
 | ||
|                 {
 | ||
|                     name: '产品追溯', router: 'productTraceability',
 | ||
|                     routerList: ['setsuyuan'],
 | ||
|                     img: require('../assets/image/vrcode-icon2.png'),
 | ||
|                     list: [{ name: '溯源批次', router: '' },
 | ||
|                     { name: '配置溯源版面', router: 'setsuyuan' },
 | ||
|                     { name: '各种报告库', router: '' }]
 | ||
|                 },
 | ||
|                 {
 | ||
|                     name: '基础信息设置', router: 'setting', routerList: [],
 | ||
|                     img: require('../assets/image/vrcode-icon3.png'),
 | ||
|                     list: [{ name: '作物品种', router: '' },
 | ||
|                     { name: '种植栽培模式', router: '' },
 | ||
|                     { name: '农事作业工序', router: '' },
 | ||
|                     { name: '人员管理', router: '' },
 | ||
|                     { name: '农场信息管理', router: '' },
 | ||
|                     { name: '供应商管理', router: '' },
 | ||
|                     { name: '生产资料管理', router: '' },
 | ||
|                     { name: '农机工具管理', router: '' },
 | ||
|                     { name: '作物外观图片库', router: '' },]
 | ||
|                 },],
 | ||
|             routerNow: 'plantingPlan',
 | ||
|             deviceName: 1,
 | ||
|             routerIndex: 1,
 | ||
|             equipmentList: [],
 | ||
|             userInfo: null,
 | ||
|             loading: true,//页面加载
 | ||
|             IDTimer: null,
 | ||
|         }
 | ||
|     },
 | ||
|     watch: {
 | ||
|         "$route"(newName, oldName) {
 | ||
|             this.gerRouter();
 | ||
|         },
 | ||
|     },
 | ||
|     mounted() {
 | ||
|         const that = this
 | ||
|         this.getTime()
 | ||
|         var router = this.$route.query
 | ||
|         if (router.token && router.userid) {
 | ||
|             localStorage.setItem('token', router.token)
 | ||
| 
 | ||
|             this.api.getUser({ userId: router.userid }).then(res => {
 | ||
|                 var data = res.data.data
 | ||
|                 data.userid = router.userid
 | ||
|                 localStorage.setItem('userInfo', JSON.stringify(data))
 | ||
|                 this.userInfo = JSON.parse(localStorage.getItem('userInfo'))
 | ||
|                 this.gerRouter();
 | ||
|                 // this.getEqbyid()
 | ||
|             })
 | ||
|             return
 | ||
|         } else {
 | ||
|             if (localStorage.getItem('token')) {
 | ||
|                 this.userInfo = JSON.parse(localStorage.getItem('userInfo'))
 | ||
|             }
 | ||
|             this.gerRouter();
 | ||
|             // this.getEqbyid()
 | ||
|         }
 | ||
|         this.IDTimer && clearInterval(this.IDTimer)
 | ||
|         this.IDTimer = setInterval(() => {
 | ||
|             // that.getEqbyid()
 | ||
|         }, 120000);
 | ||
| 
 | ||
|     },
 | ||
|     beforeDestroy() {
 | ||
|         this.IDTimer && clearInterval(this.IDTimer)
 | ||
|     },
 | ||
|     methods: {
 | ||
|         clickmenu(key, keyPath) {
 | ||
|             if (key == 'productTraceability' && key != this.routerNow) {
 | ||
|                 this.$router.push({ name: key })
 | ||
|             }
 | ||
|         },
 | ||
|         handleOpen(key, keyPath) {
 | ||
|             console.log(key, keyPath);
 | ||
|         },
 | ||
|         handleClose(key, keyPath) {
 | ||
|             console.log(key, keyPath);
 | ||
|         },
 | ||
|         gerRouter() {
 | ||
|             var store = this.$store.state
 | ||
|             this.routerIndex = this.$route.query.index ? this.$route.query.index : store.equipmentIndex
 | ||
|             this.routerNow = this.$route.name;
 | ||
|             if (store.equipmentList.length) {
 | ||
|                 this.deviceName = store.equipmentList[this.routerIndex - 1].deviceName
 | ||
|             } else {
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|         },
 | ||
|         loginOut() {
 | ||
|             this.api.loginOut().then((res) => {
 | ||
| 
 | ||
|                 if (res.data.code == 200) {
 | ||
|                     this.$message({
 | ||
|                         message: '退出登录成功',
 | ||
|                         type: "success",
 | ||
|                     });
 | ||
|                     localStorage.removeItem('token')
 | ||
|                     localStorage.removeItem('userInfo')
 | ||
|                     this.$router.push({ name: 'login' })
 | ||
|                 } else {
 | ||
|                     this.$message.error("请求出错");
 | ||
|                 }
 | ||
|             })
 | ||
|         },
 | ||
|         returnBtn(){
 | ||
|                this.$router.push({ name: 'realTime' })
 | ||
|         },
 | ||
|         toHome() {
 | ||
|             this.$router.push({ name: 'home' })
 | ||
|         },
 | ||
| 
 | ||
|         toRouter1(item) {
 | ||
|             console.log(item, 11);
 | ||
|             if (item.router) {
 | ||
|                 if (item.http) {
 | ||
|                     window.location.href = item.http;
 | ||
|                 } else {
 | ||
|                     if (this.routerNow != item.router) {
 | ||
|                         this.$router.push({ name: item.router })
 | ||
|                     }
 | ||
|                 }
 | ||
|             } else {
 | ||
|                 this.$message('当前页面正在努力开发中');
 | ||
|             }
 | ||
|         },
 | ||
|         getTime() {
 | ||
|             this.time = getnowtime()
 | ||
|             const that = this
 | ||
|             setInterval(() => {
 | ||
|                 that.time = getnowtime()
 | ||
|             }, 1000);
 | ||
|         },
 | ||
|     },
 | ||
| 
 | ||
| }
 | ||
| </script>
 | ||
| <style lang="scss"></style>
 | ||
|    |