xsh 3 年之前
父節點
當前提交
fa3c69fa1c
共有 7 個文件被更改,包括 705 次插入1 次删除
  1. 24 0
      src/components/DhpVideo.vue
  2. 10 0
      src/router/ChildrenRouters.js
  3. 1 0
      src/utils/DHPlayer.js
  4. 473 0
      src/utils/api.js
  5. 183 0
      src/views/Env/Stark.vue
  6. 13 1
      src/views/dashboard/dashboard.vue
  7. 1 0
      vue.config.js

+ 24 - 0
src/components/DhpVideo.vue

@@ -0,0 +1,24 @@
+<template>
+  <div>
+    <DHPlayer videoId="'videoId'" :type="1" :windowType="0" :pathList="pathList"></DHPlayer>
+  </div>
+</template>
+
+<script>
+import DHPlayer from "../utils/DHPlayer";
+export default {
+  name: "DhpVideo",
+  components: {
+    DHPlayer
+  },
+  data() {
+    return {
+      pathList: [{path:'rtsp://36.26.62.70:9090/dss/monitor/param?cameraid=1002873%240&substream=2'}]
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 10 - 0
src/router/ChildrenRouters.js

@@ -103,6 +103,16 @@ const childrenRouters = [
       parentName: '环境监测'
     }
   },
+  {
+    path: '/stark',
+    name: 'Stark',
+    component: () => import('../views/Env/Stark.vue'),
+    meta: {
+      title: '料塔检测',
+      permission: 'stark',
+      parentName: '环境监测'
+    }
+  },
 
   /**
    *

文件差異過大導致無法顯示
+ 1 - 0
src/utils/DHPlayer.js


+ 473 - 0
src/utils/api.js

@@ -0,0 +1,473 @@
+import axios from './http';
+
+/**  登录相关   **/
+// 登录
+export function Login(data) {
+  return axios({
+    url: '/admin/my/loginMultilevel',
+    method: 'post',
+    data: data
+  })
+}
+// 根据用户id 拿到默认的 颜色 和 导航栏
+export function findOne(data) {
+  return axios({
+    url: '/admin/accountMultilevel/findOne',
+    method: 'get',
+    params: data
+  })
+}
+
+// 根据id 修改 默认样式 导航
+export function findUpdate(data) {
+  return axios({
+    url: '/admin/accountMultilevel/update',
+    method: 'post',
+    data: data
+  })
+}
+
+/**  系统管理api  **/
+// 获取菜单用户列表
+export function getUserMenu(data) {
+  return axios({
+    url: '/admin/auth/getMyMenu',
+    method: 'post',
+    params: data
+  })
+}
+
+// 拿到菜单用户列表
+export function getUserMenuAndButon(data) {
+  return axios({
+    url: '/admin/auth/getMyMenuAndButton',
+    method: 'post',
+    params: data,
+  })
+}
+
+// 拿到按钮权限
+export function getMyButton(data) {
+  return axios({
+    url: '/admin/auth/getMyButton',
+    method: 'get',
+    params: data
+  })
+}
+
+// 获取纯菜单(不带按钮)
+export function getMenuList() {
+  return axios({
+    url: '/admin/menu/list1',
+    method: 'post',
+  })
+}
+
+// 获取菜单列表
+export function getMenu() {
+  return axios({
+    url: '/admin/menu/list',
+    method: 'post'
+  })
+}
+
+// 菜单添加
+export function addMenu(data) {
+  return axios({
+    url: '/admin/menu/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 菜单编辑
+export function editMenu(data) {
+  return axios({
+    url: '/admin/menu/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 菜单删除
+export function delMenu(data) {
+  return axios({
+    url: '/admin/menu/remove',
+    method: 'post',
+    params: data
+  })
+}
+
+// 权限列表
+export function getAuth(data) {
+  return axios({
+    url: '/admin/group/list',
+    method: 'post',
+    data: data
+  })
+}
+
+// 权限列表删除
+export function delAuth(data) {
+  return axios({
+    url: '/admin/group/remove',
+    method: 'post',
+    params: data
+  })
+}
+
+// 新增权限组
+export function addAuth(data) {
+  return axios({
+    url: '/admin/group/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 编辑权限组
+export function editAuth(data) {
+  return axios({
+    url: '/admin/group/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 权限分配列表(上次保存的菜单)
+export function getMenuByGroup(data) {
+  return axios({
+    url: '/admin/auth/getMenuByGroup',
+    method: 'get',
+    params: data
+  })
+}
+
+// 权限分配保存
+export function saveGroupMenu(data) {
+  return axios({
+    url: '/admin/auth/saveGroupMenu',
+    method: 'post',
+    data: data
+  })
+}
+
+// 用户分配(上次保存的用户id)
+export function getAcountByGroup(data) {
+  return axios({
+    url: '/admin/auth/getAcountByGroup',
+    method: 'get',
+    params: data
+  })
+}
+
+// 用户分配保存
+export function saveAccountGroup(data) {
+  return axios({
+    url: '/admin/auth/saveAccountGroup',
+    method: 'post',
+    data: data
+  })
+}
+
+// 获取用户列表
+export function getUserList(data) {
+  return axios({
+    // url: '/admin/accountMultilevel/list',
+    url: '/admin/accountMultilevel/listSubordinate',
+    method: 'post',
+    data: data
+  })
+}
+
+// 用户添加
+export function addUser(data) {
+  return axios({
+    url: '/admin/accountMultilevel/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 用户编辑
+export function editUser(data) {
+  return axios({
+    url: '/admin/accountMultilevel/update',
+    method: 'post',
+    data: data
+  })
+}
+
+// 是否启用账号
+export function isUser(data) {
+  return axios({
+    url: '/admin/accountMultilevel/setAccountStatus',
+    method: 'get',
+    params: data
+  })
+}
+
+// 用户删除
+export function delUser(data) {
+  return axios({
+    url: '/admin/accountMultilevel/remove',
+    method: 'get',
+    params: data
+  })
+}
+
+// 牧场列表
+export function getFarm(data) {
+  return axios({
+    url: '/admin/farm/getFarm',
+    method: 'get',
+    params: data
+  })
+}
+
+// 牧场添加
+export function addFarm(data) {
+  return axios({
+    url: 'admin/farm/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 牧场编辑
+export function editFarm(data) {
+  return axios({
+    url: 'admin/farm/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 牧场删除
+
+export function delFarm(data) {
+  return axios({
+    url: 'admin/farm/remove',
+    method: 'get',
+    params: data
+  })
+}
+
+// 选择牧场
+export function getFarmId(data) {
+  return axios({
+    url: 'admin/accountMultilevel/getLastFarmId',
+    method: 'get',
+    params: data,
+  })
+}
+
+/**
+ *
+ * 视频监控部分
+ * **/
+
+// 监控区域列表
+export function areaList(data) {
+  return axios({
+    url: '/video/cameraArea/list',
+    method: 'post',
+    data: data
+  })
+}
+
+// 监控区域删除
+export function delArea(data) {
+  return axios({
+    url: '/video/cameraArea/remove',
+    method: 'get',
+    params: data
+  })
+}
+
+// 监控区域添加
+export function addArea(data) {
+  return axios({
+    url: '/video/cameraArea/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 监控区域编辑
+export function editArea(data) {
+  return axios({
+    url: '/video/cameraArea/update',
+    method: 'post',
+    data: data
+  })
+}
+
+// 摄像头品牌列表
+export function brandList(data) {
+  return axios({
+    url: '/video/cameraBrand/list',
+    method: 'post',
+    data: data
+  })
+}
+
+// 品牌添加
+export function addBarand(data) {
+  return axios({
+    url: '/video/cameraBrand/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 品牌删除
+export function delBarand(data) {
+  return axios({
+    url: '/video/cameraBrand/remove',
+    method: 'get',
+    params: data
+  })
+}
+
+// 品牌编辑
+export function editBarand(data) {
+  return axios({
+    url: '/video/cameraBrand/update',
+    method: 'post',
+    data: data
+  })
+}
+
+// 监控管理列表
+export function videoList(data) {
+  return axios({
+    url: '/video/camera/list',
+    method: 'post',
+    data: data
+  })
+}
+// 监控是否启用
+export function videoSwitch(data) {
+  return axios({
+    url: '/video/camera/updateStatus',
+    method: 'get',
+    params: data
+  })
+}
+// 监控删除
+export function delVideo(data) {
+  return axios({
+    url: '/video/camera/remove',
+    method: 'get',
+    params: data
+  })
+}
+// 监控添加
+export function addVideo(data) {
+  return axios({
+    url: '/video/camera/add',
+    method: 'post',
+    data: data
+  })
+}
+// 监控编辑
+export function editVideo(data) {
+  return axios({
+    url: '/video/camera/update',
+    method: 'post',
+    data: data
+  })
+}
+
+// 根据id获取摄像头
+export function getVideo(data) {
+  return axios({
+    url: '/video/camera/getCameraDetails',
+    method: 'post',
+    data: data
+  })
+}
+
+/** 生产数据 */
+/* 生产数据 - ERP */
+// 存栏结构 - 存栏变动折线图
+export function getInventoryLines(data) {
+  return axios({
+    url: '/produce/prodStock/listStorage',
+    method: 'get',
+    params: data
+  })
+}
+
+// 存栏情况 + 生产情况
+export function getInventoryAndProduct(data) {
+  return axios({
+    url: '/produce/prodStock/listERP',
+    method: 'get',
+    params: data
+  })
+}
+
+/** 经营分析 */
+
+// 经营分析 - 成本分析
+export function getCosts(data) {
+  return axios({
+    url: '/produce/prodCost/listProdCost',
+    method: 'get',
+    params: data
+  })
+}
+
+// 经营分析 - 销售改变
+export function getSalesChange(data) {
+  return axios({
+    url: '/produce/prodSalesDetail/getSalesWeek',
+    method: 'get',
+    params: data
+  })
+}
+// 经营分析 - 销售情况图
+export function getSalesChart(data) {
+  return axios({
+    url: '/produce/prodSalesDetail/getSalesDetail',
+    method: 'get',
+    params: data
+  })
+}
+
+/** 应收 */
+export function getYingShou(data) {
+  return axios({
+    url: '/produce/prodPayable/listReceivable',
+    method: 'get',
+    params: data
+  })
+}
+
+/** 应付 */
+export function getYingFu(data) {
+  return axios({
+    url: '/produce/prodPayable/listPayable',
+    method: 'get',
+    params: data
+  })
+}
+
+/** 人员管理 - 人脸门禁 - Token */
+export function getFaceToken(data) {
+  return axios({
+    url: 'http://192.168.1.171:9987/token/getToken',
+    method: 'get',
+    params: data
+  })
+}
+/** 人员管理 - 人脸门禁 - 查询 */
+export function getFaceGuard(data) {
+  return axios({
+    url: 'http://192.168.1.171:9987/person/get_person_record',
+    method: 'post',
+    data: data
+  })
+}

+ 183 - 0
src/views/Env/Stark.vue

@@ -0,0 +1,183 @@
+<template>
+  <div class="electro">
+    <div class="reply" :style="{color: color}">全场用料情况</div>
+    <x-form :formItems="formItems" :day="day" @setDay="setDay" @onClickType="onClickType"></x-form>
+    <div class="echarts">
+      <div class="echarts-l">
+        <chart-electro></chart-electro>
+      </div>
+      <div class="echarts-r">
+        <chart-dl></chart-dl>
+      </div>
+    </div>
+    <br>
+    <div class="reply" :style="{color: color}">用电量详情</div>
+    <x-form :formItems="selectItems" :day="day1" @setDay="setDay1" @onClickType="onClickType1"></x-form>
+    <div class="echarts">
+      <div class="echarts-l">
+        <chart-electro :id="'1'"></chart-electro>
+      </div>
+      <div class="echarts-r">
+        <chart-dl :id="'1'"></chart-dl>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {mapState} from "vuex";
+import XForm from "@/components/XForm";
+import ChartElectro from "@/views/Env/chart/ChartElectro";
+import ChartDl from "@/views/dashboard/chart/ChartDl";
+
+export default {
+  name: "Stark",
+  components: {
+    XForm,
+    ChartElectro,
+    ChartDl
+  },
+  data() {
+    return {
+      formItems: [
+        {
+          id: 2,
+          type: 'text',
+          text: '本周',
+          value: 1,
+          col: 1
+        },
+        {
+          id: 3,
+          type: 'text',
+          text: '本月',
+          value: 2,
+          col: 1
+        },
+        {
+          id: 4,
+          type: 'datepicker',
+          placeholder: [],
+          field: 'value1',
+          col: 6
+        },
+        {
+          id: 8,
+          type: 'button',
+          text: '查询',
+          col: 2,
+          click: 'search'
+        },
+        {
+          id: 5,
+          type: 'button',
+          text: '导出数据',
+          col: 2,
+          click: 'derive'
+        },
+      ],
+      day: 1,
+      selectItems: [
+        {
+          id: 1,
+          type: 'select',
+          label: '栋舍:',
+          placeholder: '请选择栋舍',
+          field: 'areaId',
+          options: [],
+          col: 4
+        },
+        {
+          id: 4,
+          type: 'text',
+          text: '本周',
+          value: 1,
+          col: 1
+        },
+        {
+          id: 5,
+          type: 'text',
+          text: '本月',
+          value: 2,
+          col: 1
+        },
+        {
+          id: 6,
+          type: 'datepicker',
+          placeholder: [],
+          field: 'value1',
+          col: 6
+        },
+        {
+          id: 8,
+          type: 'button',
+          text: '查询',
+          col: 2,
+          click: 'search'
+        },
+        {
+          id: 7,
+          type: 'button',
+          text: '导出数据',
+          col: 2,
+          click: 'derive'
+        }
+      ],
+      day1: 1,
+      dataValue: [12, 13, 10, 13, 9, 23, 21, 21, 24, 23, 14, 21, 21]
+    };
+  },
+  computed: {
+    ...mapState(['color'])
+  },
+  methods: {
+    setDay(data) {
+      this.day = data;
+    },
+    onClickType() {
+
+    },
+    setDay1(data) {
+      this.day1 = data;
+    },
+    onClickType1() {},
+
+  }
+}
+</script>
+
+<style scoped>
+.electro {
+  width: 100%;
+  height: 100%;
+  box-sizing: border-box;
+  padding: 20px 20px 0 20px;
+}
+.reply {
+  width: 100%;
+  border: 1px solid #ddd;
+  border-bottom: 0;
+  height: 50px;
+  background-color: #F3F3F3;
+  line-height: 50px;
+  font-size: 18px;
+  box-sizing: border-box;
+  padding-left: 20px;
+}
+.echarts {
+  width: 100%;
+  height: 401px;
+  box-sizing: border-box;
+  border: 1px solid #ddd;
+  border-top: 0;
+  display: flex;
+}
+.echarts-l {
+  width: 30%;
+  height: 100%;
+}
+.echarts-r {
+  width: 70%;
+  height: 100%;
+}
+</style>

+ 13 - 1
src/views/dashboard/dashboard.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="box">
+    <el-button @click="dialogVisible = true">测试</el-button>
     <div class="header">
       <el-row :gutter="20">
         <el-col v-for="item in 4" :key="item" :span="6">
@@ -311,6 +312,14 @@
         </div>
       </div>
     </div>
+    <el-dialog
+        title="提示"
+        :visible.sync="dialogVisible"
+        width="50%">
+      <div style="width: 100%; height: 600px">
+        <DhpVideo></DhpVideo>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -320,16 +329,19 @@ import ChartWsd from "./chart/ChartWsd";
 import ChartDl from'./chart/ChartDl';
 import ChartWater from "./chart/ChartWater";
 import ChartPig from "./chart/ChartPig";
+import DhpVideo from "../../components/DhpVideo";
 export default {
   name: "dashboard",
   components: {
     ChartWsd,
     ChartDl,
     ChartWater,
-    ChartPig
+    ChartPig,
+    DhpVideo
   },
   data() {
     return {
+      dialogVisible: false,
       elements: [
         {
           id: 1,

+ 1 - 0
vue.config.js

@@ -49,4 +49,5 @@ module.exports = {
       }
     }
   },
+  lintOnSave: false,
 };