浏览代码

Merge branch 'VERSIONS-XiaoJiDaPing-3.3.16' into leb-web-dev

dedsudiyu 3 月之前
父节点
当前提交
c1e43dbd75
共有 36 个文件被更改,包括 996 次插入109 次删除
  1. 1 3
      .env.production
  2. 12 1
      README.md
  3. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjcgl.png
  4. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjyks.png
  5. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqzrgl.png
  6. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_dygxyy.png
  7. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_hxpzngk.png
  8. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_jcjggl.png
  9. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sbzhgl.png
  10. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sydwzx.png
  11. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysaqzr.png
  12. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysfjfl.png
  13. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_syszyyy.png
  14. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_yjyjgl.png
  15. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_zcglxt.png
  16. 二进制
      src/assets/ZDimages/basicsModules/homeXiNong/icon_sydlpt_sjksh.png
  17. 二进制
      src/assets/ZDimages/chemicalManage/chemicalsStatistics_1.png
  18. 二进制
      src/assets/ZDimages/chemicalManage/chemicalsStatistics_2.png
  19. 二进制
      src/assets/ZDimages/chemicalManage/chemicalsStatistics_3.png
  20. 8 1
      src/router/index.js
  21. 727 0
      src/views/basicsModules/homeXiNong.vue
  22. 69 23
      src/views/chemicalManage/chemicalsStatistics/index.vue
  23. 2 0
      src/views/emergencyManagement/performEvacuation/performEvacuationData.vue
  24. 1 0
      src/views/emergencyManagement/performEvacuation/performEvacuationHome.vue
  25. 17 8
      src/views/emergencyManagement/plan/associatedPage.vue
  26. 19 17
      src/views/integratedManagement/personnelManage/studentInfo/index.vue
  27. 21 23
      src/views/integratedManagement/personnelManage/teacherInfo/index.vue
  28. 12 1
      src/views/iotDevice/appManage/applyList/index.vue
  29. 9 1
      src/views/iotDevice/appManage/applyListVersions/index.vue
  30. 3 0
      src/views/iotDevice/appManage/applyUpgrades/index.vue
  31. 3 0
      src/views/iotDevice/appManage/applyUpgradesQuest/index.vue
  32. 61 23
      src/views/safetyCheck/components/initiateInspect/initiateInspect.vue
  33. 8 3
      src/views/safetyCheck/components/noticeDom.vue
  34. 1 1
      src/views/safetyCheck/dataStatistics/hiddenDangerStatistics.vue
  35. 12 3
      src/views/safetyCheck/safetyHazard/rectificationNotice/index.vue
  36. 10 1
      src/views/safetyCheck/safetyHazard/rectificationReport/index.vue

+ 1 - 3
.env.production

@@ -16,9 +16,7 @@ VUE_APP_RENEWAL_ENCODING = ''
 
 # ####################版本差异字段####################
 
-VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
-# VUE_APP_VERSION_DIFFERENCE_FIELD = 'suZhouDaXue'
-# VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
+VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
 
 # ####################外网接口配置####################
 

+ 12 - 1
README.md

@@ -127,7 +127,7 @@
     
 ## 六.版本相关
 
-### 1.版本差异字段
+### 1.版本差异字段 VUE_APP_VERSION_DIFFERENCE_FIELD
 >##### 配置文件在 .env.development 与 .env.production 文件内
 
     ├─src
@@ -135,6 +135,17 @@
     │  └─.env.production          (打包配置)
 
 
+### 当前差异内容
+
+>#### 一.非配置化内容 
+>##### ① 首页配置 西农使用定制化首页 其他学校部署使用后台配置首页
+>##### router/index.js 下homeXiNong为定制化西农首页home为后台配置首页
+
+>#### 二.配置化内容
+>##### 所有配置化内容使用VUE_APP_VERSION_DIFFERENCE_FIELD 字段控制
+>##### ① 西农配置 VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
+>###### 化学品首页 chemicalManage/chemicalsStatistics
+
 ### 2.版本分支关系
 >##### 修改时务必注意版本分支关系,从底层开始迭代
 

二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjcgl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjyks.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqzrgl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_dygxyy.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_hxpzngk.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_jcjggl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sbzhgl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sydwzx.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysaqzr.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysfjfl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_syszyyy.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_yjyjgl.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sy_zcglxt.png


二进制
src/assets/ZDimages/basicsModules/homeXiNong/icon_sydlpt_sjksh.png


二进制
src/assets/ZDimages/chemicalManage/chemicalsStatistics_1.png


二进制
src/assets/ZDimages/chemicalManage/chemicalsStatistics_2.png


二进制
src/assets/ZDimages/chemicalManage/chemicalsStatistics_3.png


+ 8 - 1
src/router/index.js

@@ -46,9 +46,16 @@ export const constantRoutes = [
     component: (resolve) => require(['@/views/basicsModules/login.vue'], resolve),
     hidden: true
   },
+  //公共版本
+  // {
+  //   path: '/home',
+  //   component: (resolve) => require(['@/views/basicsModules/home'], resolve),
+  //   hidden: true
+  // },
+  //西农版本
   {
     path: '/home',
-    component: (resolve) => require(['@/views/basicsModules/home'], resolve),
+    component: (resolve) => require(['@/views/basicsModules/homeXiNong.vue'], resolve),
     hidden: true
   },
   {

+ 727 - 0
src/views/basicsModules/homeXiNong.vue

@@ -0,0 +1,727 @@
+<template>
+  <div class="homeXiNong" :class="userType != 22&&initPage ? 'home-class' : ''">
+    <home-navbar/>
+    <div class="max-big-home-box" v-if="userType != 22&&initPage">
+      <div class="max-home-button-box">
+        <div class="max-home-box">
+          <div class="max-bottom-box">
+            <div class="top-button-box">
+              <div class="left-box">
+                <div class="position-button"
+                     v-for="(item,index) in leftButtonData" @click="goPage(item)">
+                  <div>
+                    <img :src="item.imgUrl">
+                  </div>
+                </div>
+              </div>
+              <div class="center-box">
+                <div class="position-button"
+                     style="cursor: auto"
+                     v-for="(item,index) in centerButtonList">
+                  <div>
+                    <img :src="item.imgUrl">
+                  </div>
+                </div>
+              </div>
+              <div class="right-box">
+                <div class="position-button"
+                     v-for="(item,index) in rightButtonData" @click="goPage(item)">
+                  <div>
+                    <img :src="item.imgUrl">
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="center-button-box display-none-one"></div>
+            <div class="bottom-button-box">
+              <div class="null-button"></div>
+              <div class="position-button"
+                   v-for="(item,index) in buttonButtonData" @click="goPage(item)">
+                <div>
+                  <img :src="item.imgUrl">
+                </div>
+              </div>
+              <div class="null-button"></div>
+            </div>
+          </div>
+          <img class="img-1" src="@/assets/ZDimages/basicsModules/img_sy_lf.png">
+          <img class="img-2" src="@/assets/ZDimages/basicsModules/img_yh_db.png">
+          <img class="img-3" src="@/assets/ZDimages/basicsModules/img_yh_zj.png">
+          <img class="img-4" src="@/assets/ZDimages/basicsModules/img_yh_dd.png">
+          <img class="img-5" src="@/assets/ZDimages/basicsModules/img_yh_zj.png">
+          <img class="img-6" src="@/assets/ZDimages/basicsModules/img_yh_db.png">
+        </div>
+      </div>
+    </div>
+    <backAnimation v-if="userType != '22'&&initPage"></backAnimation>
+  </div>
+</template>
+
+<script>
+  import store from '@/store'
+  import router from '@/router'
+  import backAnimation from './components/backAnimation'
+  import homeNavbar from './components/homeNavbar.vue'
+  import { xmlRequestLink } from '@/utils/menuLink'
+
+  export default {
+    name: 'home',
+    components: {
+      homeNavbar,
+      backAnimation
+    },
+    data() {
+      return {
+        userType: localStorage.getItem('userType'),
+        initPage: JSON.parse(localStorage.getItem('initPage')),
+        homeConfigData: JSON.parse(localStorage.getItem('homeConfig')),
+        routeData: JSON.parse(localStorage.getItem('routeData')),
+        leftButtonData: [
+          {
+            buttonType: true,
+            buttonName: '安全教育与考试',
+            menuName: '安全教育与考试',
+            isFrame: true,
+            path: 'aqjyyks',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjyks.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '实验室安全准入',
+            menuName: '实验室安全准入',
+            isFrame: false,
+            path: 'secureAccess',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysaqzr.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '化学品智能管控',
+            menuName: '化学品智能管控',
+            isFrame: false,
+            path: 'chemicalManage',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_hxpzngk.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '设备综合管理',
+            menuName: '设备综合管理',
+            isFrame: true,
+            path: 'shebeizichan',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sbzhgl.png'),
+          },
+        ],
+        rightButtonData: [
+          {
+            buttonType: true,
+            buttonName: '安全检查管理',
+            menuName: '安全检查管理',
+            isFrame: false,
+            path: 'safetyCheck',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqjcgl.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '实验室分级分类',
+            menuName: '实验室分级分类',
+            isFrame: false,
+            path: 'hierarchicalControl',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sysfjfl.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '实验动物中心',
+            menuName: '实验动物中心',
+            isFrame: true,
+            path: 'longweiguanli',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_sydwzx.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '实验资源预约',
+            menuName: '实验资源预约',
+            isFrame: true,
+            path: 'shiyanziyuanyuyue',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_syszyyy.png'),
+          },
+        ],
+        centerButtonList:[
+          {
+            buttonType: true,
+            buttonName: '大仪共享预约',
+            menuName: '大仪共享预约',
+            isFrame: true,
+            path: 'dayigongxiangyuyue',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sydlpt_sjksh.png'),
+          },
+        ],
+        buttonButtonData: [
+          {
+            buttonType: true,
+            buttonName: '大仪共享预约',
+            menuName: '大仪共享预约',
+            isFrame: true,
+            path: 'dayigongxiangyuyue',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_dygxyy.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '资产管理系统',
+            menuName: '资产管理系统',
+            isFrame: true,
+            path: 'zichanguanlixitong',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_zcglxt.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '安全责任管理',
+            menuName: '安全责任管理',
+            isFrame: true,
+            path: 'anquanzeren',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_aqzrgl.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '应急预警管理',
+            menuName: '应急预警管理',
+            isFrame: false,
+            path: 'emergencyManagement',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_yjyjgl.png'),
+          },
+          {
+            buttonType: true,
+            buttonName: '基础结构管理',
+            menuName: '基础结构管理',
+            isFrame: false,
+            path: 'integratedManagement',
+            imgUrl: require('@/assets/ZDimages/basicsModules/homeXiNong/icon_sy_jcjggl.png'),
+          },
+        ]
+      }
+    },
+    created() {
+
+    },
+    mounted() {
+      if (this.initPage) {
+        //开启首页时-学生自动跳转-老师留在首页
+        if (this.userType == '2') {
+          this.autoSkip()
+        }
+      } else {
+        //关闭首页时
+        if (this.userType == '2') {
+          if (this.homeConfigData.studentsSkip) {
+            //开启了指定页面跳转
+            this.appointSkip()
+          } else {
+            //自动跳转
+            this.autoSkip()
+          }
+        } else {
+          if (this.homeConfigData.teacherSkip) {
+            //开启了指定页面跳转
+            this.appointSkip()
+          } else {
+            //自动跳转
+            this.autoSkip()
+          }
+        }
+      }
+    },
+    methods: {
+      //跳转按钮
+      goPage(item) {
+        if (item.buttonType) {
+          let path = this.circularCallNameSkip(item.path, this.routeData, false)
+          if (path) {
+            if (item.isFrame) {
+              xmlRequestLink(path)
+            } else {
+              this.$router.push({ path: path })
+            }
+          } else {
+            this.$alert('没有"' + item.menuName + '"系统权限,如有疑问,请联系管理员', {
+              confirmButtonText: '确定',
+              callback: action => {
+              }
+            })
+          }
+        } else {
+          this.$alert(item.buttonName + '暂未开放', {
+            confirmButtonText: '确定',
+            callback: action => {
+            }
+          })
+        }
+      },
+      //自动跳转
+      autoSkip() {
+        let path = this.circularCallSortSkip(this.routeData)
+        if (path) {
+          this.$router.push({ path: path })
+        } else {
+          this.outLogin()
+        }
+      },
+      //指定跳转
+      appointSkip() {
+        if (this.userType == '2') {
+          //学生
+          let path = this.circularCallIdSkip(this.homeConfigData.studentsSkipMenuId, this.routeData)
+          if (path) {
+            this.$router.push({ path: path })
+          } else {
+            this.outLogin()
+          }
+        } else if (this.userType == '1') {
+          //老师
+          let path = this.circularCallIdSkip(this.homeConfigData.teacherSkipMenuId, this.routeData)
+          if (path) {
+            this.$router.push({ path: path })
+          } else {
+            this.outLogin()
+          }
+        }
+      },
+      //循环调用 按照排序跳转
+      circularCallSortSkip(list) {
+        let self = this
+        for (let i = 0; i < list.length; i++) {
+          if (list[i].children) {
+            let text = self.circularCallSortSkip(list[i].children)
+            if (text) {
+              return list[i].path + '/' + text
+            }
+          } else if (!list[i].alwaysShow && !list[i].hidden && !list[i].isFrame) {
+            return list[i].path
+          }
+        }
+      },
+      //循环调用 通过ID匹配跳转
+      circularCallIdSkip(skipMenuId, list) {
+        let self = this
+        for (let i = 0; i < list.length; i++) {
+          if (skipMenuId == list[i].menuId) {
+            return list[i].path
+          } else if (list[i].children) {
+            let text = self.circularCallIdSkip(skipMenuId, list[i].children)
+            if (text) {
+              return list[i].path + '/' + text
+            }
+          }
+        }
+      },
+      //循环调用 通过name匹配跳转
+      circularCallNameSkip(skipName, list, type) {
+        let self = this
+        for (let i = 0; i < list.length; i++) {
+          if (type) {
+            if (list[i].children) {
+              let text = self.circularCallNameSkip(skipName, list[i].children, true)
+              if (text) {
+                return list[i].path + '/' + text
+              }
+            } else if (!list[i].alwaysShow && !list[i].hidden) {
+              if (list[i].isFrame) {
+                return list[i]
+              } else {
+                return list[i].path
+              }
+            }
+          } else {
+            if (skipName == list[i].name) {
+              if (list[i].isFrame) {
+                return list[i]
+              } else if (list[i].children) {
+                let text = self.circularCallNameSkip(skipName, list[i].children, true)
+                if (text) {
+                  return list[i].path + '/' + text
+                }
+              }
+            }
+          }
+        }
+      },
+      //权限异常未匹配到相关权限页面 提示并退出
+      outLogin() {
+        this.$alert('没有相关权限,请联系管理员', {
+          confirmButtonText: '确定',
+          callback: action => {
+            store.dispatch('LogOutNoData').then(() => {
+              localStorage.removeItem('serviceType')
+              if (process.env.VUE_APP_LOGIN_TYPE === 'certification') {
+                window.location.href = process.env.VUE_APP_OUT_URL
+              } else {
+                router.replace({
+                  path: '/login'
+                })
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  @-webkit-keyframes centerButtonMover {
+    0% {
+      transform: scale(1);
+    }
+    30% {
+      transform: rotate(0deg) scale(0.9);
+    }
+    40% {
+      transform: rotate(-5deg) scale(1);
+    }
+    50% {
+      transform: rotate(5deg) scale(1);
+    }
+    60% {
+      transform: rotate(-5deg) scale(1.1);
+    }
+    70% {
+      transform: rotate(0deg) scale(1.2);
+    }
+    100% {
+      transform: rotate(0deg) scale(1);
+    }
+  }
+
+  @-webkit-keyframes centerMover {
+    0% {
+      -webkit-transform: translateY(0);
+    }
+    50% {
+      -webkit-transform: translateY(20px);
+    }
+    100% {
+      -webkit-transform: translateY(0);
+    }
+  }
+
+  @-webkit-keyframes ringMove {
+    0% {
+      -webkit-transform: translateY(0px);
+      opacity: 1;
+    }
+    50% {
+      -webkit-transform: translateY(20px);
+      opacity: 0;
+    }
+    100% {
+      -webkit-transform: translateY(0);
+      opacity: 0;
+    }
+  }
+
+  @-webkit-keyframes buttonMove {
+    50% {
+      -webkit-transform: scale(0.8);
+      transform: scale(0.8);
+      -webkit-filter: brightness(90%)
+    }
+    100% {
+      -webkit-transform: scale(1);
+      transform: scale(1);
+      -webkit-filter: brightness(100%)
+    }
+  }
+
+  .home-class {
+    background-color: #004d8c;
+    background-image: url("../../assets/ZDimages/basicsModules/img_tydlpt_bg.png") !important;
+    -webkit-background-size: 100%;
+    background-size: 100%;
+
+  }
+
+  .homeXiNong {
+    height: 100%;
+    width: 100%;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    overflow: hidden;
+    position: relative;
+    * {
+      margin: 0;
+    }
+    .max-big-home-box {
+      position: relative;
+      flex: 1;
+      overflow: hidden;
+      .max-home-button-box {
+        /*width: 1300px;*/
+        /*height: 760px;*/
+        /*margin-top: -380px;*/
+        /*margin-left: -650px;*/
+        width: 1400px;
+        margin-left: -700px;
+        height: 800px;
+        margin-top: -400px;
+        top: 50%;
+        left: 50%;
+        position: absolute;
+        .max-home-box {
+          /*width: 1300px;*/
+          /*height: 760px;*/
+          width: 1400px;
+          height: 800px;
+          position: relative;
+          display: flex;
+          flex-direction: column;
+          .img-1 {
+            position: absolute;
+            /*width:863px;*/
+            width: 690px;
+            /*height:504px;*/
+            height: 403px;
+            top: 191px;
+            left: 50%;
+            margin-left: - 345px;
+            -webkit-animation-name: centerMover;
+            -webkit-animation-duration: 4s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0s;
+          }
+          .img-2 {
+            position: absolute;
+            /*width:463px;*/
+            width: 370px;
+            /*height:106px;*/
+            height: 84px;
+            top: 391px;
+            left: 50%;
+            margin-left: - 185px;
+            -webkit-animation-name: ringMove;
+            -webkit-animation-duration: 2s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0s;
+          }
+          .img-3 {
+            position: absolute;
+            /*width:493px;*/
+            width: 394px;
+            /*height:107px;*/
+            height: 85px;
+            top: 319px;
+            left: 50%;
+            margin-left: - 197px;
+            -webkit-animation-name: ringMove;
+            -webkit-animation-duration: 2s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0.2s;
+          }
+          .img-4 {
+            position: absolute;
+            /*width:554px;*/
+            width: 443px;
+            /*height:118px;*/
+            height: 94px;
+            top: 231px;
+            left: 50%;
+            margin-left: - 221px;
+            -webkit-animation-name: ringMove;
+            -webkit-animation-duration: 2s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0.4s;
+          }
+          .img-5 {
+            position: absolute;
+            width: 394px;
+            /*width:493px;*/
+            /*height:107px;*/
+            height: 85px;
+            /*width:644px;*/
+            /*height:118px;*/
+            top: 141px;
+            left: 50%;
+            //margin-left:-322px;
+            margin-left: - 197px;
+            -webkit-animation-name: ringMove;
+            -webkit-animation-duration: 2s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0.6s;
+          }
+          .img-6 {
+            position: absolute;
+            width: 354px;
+            /*width:443px;*/
+            /*height:106px;*/
+            height: 84px;
+            /*width:734px;*/
+            /*height:118px;*/
+            top: 051px;
+            left: 50%;
+            //margin-left:-367px;
+            margin-left: - 177px;
+            -webkit-animation-name: ringMove;
+            -webkit-animation-duration: 2s;
+            -webkit-animation-iteration-count: infinite;
+            -webkit-animation-delay: 0.8s;
+          }
+          .max-bottom-box {
+            width: 1400px;
+            margin: 0 auto;
+            flex: 1;
+            display: flex;
+            flex-direction: column;
+            .top-button-box {
+              display: flex;
+              .left-box {
+                .position-button {
+                  width: 297px;
+                  height: 136px;
+                  cursor: pointer;
+                  position: relative;
+                  z-index: 5;
+                  img {
+                    width: 297px;
+                    height: 136px;
+                  }
+                  p {
+                    position: absolute;
+                    top: 44px;
+                    left: 142px;
+                    text-align: center;
+                    font-size: 18px;
+                    line-height: 18px;
+                    background: linear-gradient(to top, #06F6F7, #FFFFFF);
+                    -webkit-background-clip: text;
+                    color: transparent;
+                  }
+                }
+                .position-button:nth-child(1) {
+                  margin-top: 0;
+                }
+                .position-button:nth-child(2) {
+                  margin: 15px 0 0 40px;
+                }
+                .position-button:nth-child(3) {
+                  margin: 15px 0 0 80px;
+                }
+                .position-button:nth-child(4) {
+                  margin: 15px 0 0 120px;
+                }
+              }
+              .center-box {
+                flex: 1;
+                .position-button {
+                  width: 147px;
+                  height: 105px;
+                  cursor: pointer;
+                  position: relative;
+                  z-index: 5;
+                  margin: 0 auto 0;
+                  -webkit-animation-name: centerButtonMover;
+                  -webkit-animation-duration: 3s;
+                  -webkit-animation-iteration-count: infinite;
+                  -webkit-animation-delay: 0s;
+                  img {
+                    width: 147px;
+                    height: 105px;
+                  }
+                  p {
+                    position: absolute;
+                    top: 66px;
+                    left: 30px;
+                    text-align: center;
+                    font-size: 18px;
+                    line-height: 18px;
+                    background: linear-gradient(to top, #06F6F7, #FFFFFF);
+                    -webkit-background-clip: text;
+                    color: transparent;
+                  }
+                }
+              }
+              .right-box {
+                .position-button {
+                  width: 297px;
+                  height: 136px;
+                  cursor: pointer;
+                  z-index: 5;
+                  position: relative;
+                  img {
+                    width: 297px;
+                    height: 136px;
+                  }
+                  p {
+                    position: absolute;
+                    top: 44px;
+                    left: 40px;
+                    text-align: center;
+                    font-size: 18px;
+                    line-height: 18px;
+                    background: linear-gradient(to top, #06F6F7, #FFFFFF);
+                    -webkit-background-clip: text;
+                    color: transparent;
+                  }
+                }
+                .position-button:nth-child(1) {
+                  margin: 0 0 0 120px;
+                }
+                .position-button:nth-child(2) {
+                  margin: 15px 0 0 80px;
+                }
+                .position-button:nth-child(3) {
+                  margin: 15px 0 0 40px;
+                }
+                .position-button:nth-child(4) {
+                  margin-top: 15px;
+                }
+              }
+            }
+            .center-button-box {
+              flex: 1;
+            }
+            .bottom-button-box {
+              display: flex;
+              .null-button {
+                flex: 1;
+              }
+              .position-button {
+                width: 140px;
+                height: 200px;
+                cursor: pointer;
+                z-index: 5;
+                position: relative;
+                margin-right: 95px;
+                img {
+                  width: 140px;
+                  height: 230px;
+                }
+                p {
+                  position: absolute;
+                  top: 154px;
+                  /*left:34px;*/
+                  width: 140px;
+                  text-align: center;
+                  font-size: 18px;
+                  line-height: 18px;
+                  background: linear-gradient(to top, #06F6F7, #FFFFFF);
+                  -webkit-background-clip: text;
+                  color: transparent;
+                }
+              }
+              .position-button:nth-last-child(2) {
+                margin-right: 0;
+              }
+            }
+            .position-button:hover {
+              -webkit-animation-name: buttonMove;
+              -webkit-animation-duration: 1.5s;
+              -webkit-animation-iteration-count: infinite;
+              -webkit-animation-delay: 0s;
+            }
+          }
+        }
+      }
+    }
+    .bottom-null-box {
+      height: 60px;
+    }
+  }
+</style>
+

+ 69 - 23
src/views/chemicalManage/chemicalsStatistics/index.vue

@@ -1,28 +1,42 @@
 <!--化学品首页-->
 <template>
   <div class="app-container chemicalsStatistics">
-    <div class="top-max-big-box">
-      <div class="img-box">
-        <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpg.png">
-        <div>
-          <p>化学品柜</p>
-          <p class="colorA">{{inventoryData.cabinetNum}}</p>
-        </div>
+    <div class="top-max-max-big-box">
+      <div class="button-big-box" @click="goPage(1)" v-if="versionField() == 'xiBeiNongLinDaXue'">
+        <img src="@/assets/ZDimages/chemicalManage/chemicalsStatistics_1.png">
+        <p>实验室库存管理</p>
       </div>
-      <p class="null-p"></p>
-      <div class="img-box">
-        <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpkysl.png">
-        <div>
-          <p>待入库</p>
-          <p class="colorB">{{inventoryData.stockWaitNum}}</p>
-        </div>
+      <div class="button-big-box" @click="goPage(2)" v-if="versionField() == 'xiBeiNongLinDaXue'">
+        <img src="@/assets/ZDimages/chemicalManage/chemicalsStatistics_2.png">
+        <p>危化品申购申领</p>
       </div>
-      <p class="null-p"></p>
-      <div class="img-box">
-        <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpyjsl.png">
-        <div>
-          <p>待归还</p>
-          <p class="colorC">{{inventoryData.giveBackNum}}</p>
+      <div class="button-big-box" @click="goPage(3)" v-if="versionField() == 'xiBeiNongLinDaXue'">
+        <img src="@/assets/ZDimages/chemicalManage/chemicalsStatistics_3.png">
+        <p>危废回收报备</p>
+      </div>
+      <div class="top-max-big-box">
+        <div class="img-box">
+          <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpg.png">
+          <div>
+            <p>化学品柜</p>
+            <p class="colorA">{{inventoryData.cabinetNum}}</p>
+          </div>
+        </div>
+        <p class="null-p"></p>
+        <div class="img-box">
+          <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpkysl.png">
+          <div>
+            <p>待入库</p>
+            <p class="colorB">{{inventoryData.stockWaitNum}}</p>
+          </div>
+        </div>
+        <p class="null-p"></p>
+        <div class="img-box">
+          <img src="@/assets/ZDimages/chemicalManage/icon_sy_hxpyjsl.png">
+          <div>
+            <p>待归还</p>
+            <p class="colorC">{{inventoryData.giveBackNum}}</p>
+          </div>
         </div>
       </div>
     </div>
@@ -73,6 +87,13 @@
       this.chemicalIndexTypeGroup();
     },
     methods:{
+      goPage(type){
+        if (type == 1){
+          this.$router.push({ path: '/chemicalManage/inventoryManagement/inventoryStatistics'});
+        } else {
+          window.open('https://chemcenter.nwafu.edu.cn/','_blank');
+        }
+      },
       chemicalIndexTypeGroup(){
         chemicalIndexTypeGroup().then(response => {
           this.$set(this,'inventoryData',response.data);
@@ -83,7 +104,32 @@
 </script>
 <style scoped lang="scss">
   .chemicalsStatistics{
+    .top-max-max-big-box{
+      display: flex;
+      .button-big-box{
+        width:225px;
+        height:120px;
+        display: flex;
+        flex-direction: column;
+        margin:20px 0 10px 20px;
+        box-shadow: 0 4px 10px 0 rgba(0,0,0,0.1);
+        border-radius: 10px;
+        cursor: pointer;
+        img{
+          margin:13px auto 0;
+          height:60px;
+          width:60px;
+        }
+        p{
+          font-size:18px;
+          line-height:40px;
+          text-align: center;
+        }
+      }
+    }
     .top-max-big-box{
+      flex:1;
+      height:120px;
       margin:20px 20px 10px;
       box-shadow: 0 4px 10px 0 rgba(0,0,0,0.1);
       border-radius: 10px;
@@ -92,9 +138,9 @@
         flex:1;
         display: flex;
         img{
-          margin:26px 30px 0 170px;
-          width: 68px;
-          height:68px;
+          margin:30px 30px 0 45px;
+          height:60px;
+          width:60px;
         }
         div{
           p:nth-child(1){

+ 2 - 0
src/views/emergencyManagement/performEvacuation/performEvacuationData.vue

@@ -94,6 +94,7 @@
             <el-select v-model="buildId" placeholder="请选择"
                        :popper-append-to-body="false"
                        @change="buildingChange"
+                       filterable
                        style="width:200px;"
                        class="content-building-box">
               <el-option
@@ -114,6 +115,7 @@
             <el-select v-model="floorId" placeholder="请选择"
                        :popper-append-to-body="false"
                        @change="floorChange"
+                       filterable
                        style="width:150px;"
                        class="content-floorId-box">
               <el-option

+ 1 - 0
src/views/emergencyManagement/performEvacuation/performEvacuationHome.vue

@@ -17,6 +17,7 @@
             <el-select v-model="buildId" placeholder="请选择"
                        :popper-append-to-body="false"
                        @change="buildingChange"
+                       filterable
                        style="width:240px;"
                        class="building-select-box">
               <el-option

+ 17 - 8
src/views/emergencyManagement/plan/associatedPage.vue

@@ -94,7 +94,7 @@
           <template slot-scope="scope">
             <div class="table-button-box">
               <p class="table-button-null"></p>
-              <p class="table-button-p" v-if="scope.row.adminId == meUserId" @click="handleDelete(scope.row)">移除</p>
+              <p class="table-button-p" v-if="scope.row.adminId == meUserId || adminType" @click="handleDelete(scope.row)">移除</p>
               <p class="table-button-null"></p>
             </div>
           </template>
@@ -272,7 +272,7 @@
           typeId:'',
           levelId:'',
         },
-        dialogTotal: 5,
+        dialogTotal: 0,
         //关联实验室
         dialogAssociatedOpen: false,
         dialogTableData: [],
@@ -285,9 +285,12 @@
         allNum: 0,
         /***** 当前用户userId *****/
         meUserId:localStorage.getItem('userId'),
+        adminType:false,
       }
     },
     created() {
+      let userType = JSON.parse(localStorage.getItem('user')).userType
+      this.$set(this,'adminType',userType==0?true:false)
       // this.getListAll();
     },
     mounted() {
@@ -345,13 +348,19 @@
               })
               newList.push(obj);
             }else{
-              nullNum++
-              this.msgError(item.subName+'未配置危险源')
+              let obj = {
+                riskPlanId:this.associationData.id,
+                subId:item.subId,
+                hazardSensorRelationBos:[],
+              }
+              newList.push(obj);
+              // nullNum++
+              // this.msgError(item.subName+'未配置危险源')
             }
           })
-          if(nullNum != 0){
-            return
-          }
+          // if(nullNum != 0){
+          //   return
+          // }
           laboratoryRiskPlanSubjectRelationBatchRelationSub(newList).then(response => {
             self.msgSuccess(response.message)
             self.resetQuery()
@@ -517,7 +526,7 @@
             item.buttonList = [];
           })
           this.$set(this, 'dialogTableData', response.data.records)
-          this.$set(this, 'total', response.data.total)
+          this.$set(this, 'dialogTotal', response.data.total)
           this.$set(this, 'loading', false)
         })
       },

+ 19 - 17
src/views/integratedManagement/personnelManage/studentInfo/index.vue

@@ -65,24 +65,26 @@
           <el-table-column type="selection" width="50" :reserve-selection="true" align="center"/>
           <el-table-column label="序号"  width="50" align="center"  type="index"/>
           <el-table-column label="姓名" align="left" prop="userName"/>
-          <el-table-column label="学号" align="left" prop="account" width="180">
+          <el-table-column label="学号" align="left" prop="account" width="140" show-overflow-tooltip>
             <template slot-scope="scope">
-              <div style="display: flex">
-                <span style="flex:1;">{{scope.row.account}}</span>
-                <el-switch
-                  v-hasPermiRouter="['system:user:edit']"
-                  @click.native="stateChange(scope.row)"
-                  class="switch captcha-img"
-                  :active-value="true"
-                  :inactive-value="false"
-                  active-color="#0183FA"
-                  inactive-color="#999"
-                  v-model="scope.row.state"
-                  active-text="启用"
-                  inactive-text="停用"
-                  disabled
-                ></el-switch>
-              </div>
+              <span style="cursor: pointer" @click="clickCopy(scope.row.account)">{{scope.row.account}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="状态" align="left" prop="state" width="90">
+            <template slot-scope="scope">
+              <el-switch
+                v-hasPermiRouter="['system:user:edit']"
+                @click.native="stateChange(scope.row)"
+                class="switch captcha-img"
+                :active-value="true"
+                :inactive-value="false"
+                active-color="#0183FA"
+                inactive-color="#999"
+                v-model="scope.row.state"
+                active-text="启用"
+                inactive-text="停用"
+                disabled
+              ></el-switch>
             </template>
           </el-table-column>
           <el-table-column label="手机号码" align="left" prop="mobile" show-overflow-tooltip width="162"/>

+ 21 - 23
src/views/integratedManagement/personnelManage/teacherInfo/index.vue

@@ -97,29 +97,27 @@
               <el-table-column label="序号"  width="50" align="center"  type="index"/>
               <el-table-column label="姓名" align="left"  prop="userName" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column label="工号" align="left" prop="account" width="180">
+              <el-table-column label="工号" align="left" prop="account" width="140" show-overflow-tooltip>
                 <template slot-scope="scope">
-                  <div style="display: flex">
-                    <el-tooltip class="item" effect="dark" :disabled="scope.row.account.length>7?false:true" :content="scope.row.account" placement="top">
-                      <span style="height:23px;width:80px;margin-right:10px;overflow:hidden">
-                          {{scope.row.account.length>7?scope.row.account[0]+scope.row.account[1]+scope.row.account[2]+scope.row.account[3]+scope.row.account[4]+scope.row.account[5]+scope.row.account[6]+'...':scope.row.account}}
-                      </span>
-                    </el-tooltip>
-                    <el-switch
-                      v-hasPermiRouter="['system:user:edit']"
-                      v-if="scope.row.userState"
-                      @click.native="stateChange(scope.row)"
-                      class="switch captcha-img"
-                      :active-value="true"
-                      :inactive-value="false"
-                      active-color="#0183FA"
-                      inactive-color="#999"
-                      v-model="scope.row.state"
-                      active-text="启用"
-                      inactive-text="停用"
-                      disabled
-                    ></el-switch>
-                  </div>
+                  <span style="cursor: pointer" @click="clickCopy(scope.row.account)">{{scope.row.account}}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="状态" align="left" prop="state" width="90" show-overflow-tooltip>
+                <template slot-scope="scope">
+                  <el-switch
+                    v-hasPermiRouter="['system:user:edit']"
+                    v-if="scope.row.userState"
+                    @click.native="stateChange(scope.row)"
+                    class="switch captcha-img"
+                    :active-value="true"
+                    :inactive-value="false"
+                    active-color="#0183FA"
+                    inactive-color="#999"
+                    v-model="scope.row.state"
+                    active-text="启用"
+                    inactive-text="停用"
+                    disabled
+                  ></el-switch>
                 </template>
               </el-table-column>
               <el-table-column label="手机号码" align="left" prop="mobile" width="130" show-overflow-tooltip/>
@@ -149,7 +147,7 @@
                   </p>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" align="left" width="160" class-name="small-padding fixed-width" v-if="tableButtonType">
+              <el-table-column label="操作" align="left" width="140" class-name="small-padding fixed-width" v-if="tableButtonType">
                 <template slot-scope="scope">
                   <div class="table-button-box">
                     <p class="table-button-null"></p>

+ 12 - 1
src/views/iotDevice/appManage/applyList/index.vue

@@ -18,6 +18,9 @@
               <el-option label="化学品终端" value="aio_chemical"></el-option>
               <el-option label="电子信息牌" value="aio_infobord"></el-option>
               <el-option label="学习考试一体" value="aio_exam"></el-option>
+              <el-option label="化学品终端升级APP" value="aio_chemical_update"></el-option>
+              <el-option label="电子信息牌升级APP" value="aio_infobord_update"></el-option>
+              <el-option label="学习考试一体升级APP" value="aio_exam_update"></el-option>
             </el-select>
           </el-form-item>
           <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
@@ -33,7 +36,12 @@
           <el-table-column label="应用名" align="center" prop="appName" show-overflow-tooltip/>
           <el-table-column label="类型" align="center" prop="terminalType" show-overflow-tooltip width="200">
             <template slot-scope="scope">
-              {{scope.row.terminalType=='aio_chemical'?'化学品终端':(scope.row.terminalType=='aio_infobord'?'电子信息牌':(scope.row.terminalType=='aio_exam'?'学习考试一体':scope.row.terminalType))}}
+              {{scope.row.terminalType=='aio_chemical'?'化学品终端':(
+              scope.row.terminalType=='aio_infobord'?'电子信息牌':(
+              scope.row.terminalType=='aio_exam'?'学习考试一体':(
+              scope.row.terminalType=='aio_chemical_update'?'化学品终端升级APP':(
+              scope.row.terminalType=='aio_infobord_update'?'电子信息牌升级APP':(
+              scope.row.terminalType=='aio_exam_update'?'学习考试一体升级APP':scope.row.terminalType)))))}}
             </template>
           </el-table-column>
           <el-table-column label="描述" align="center" prop="description" show-overflow-tooltip width="600"/>
@@ -91,6 +99,9 @@
               <el-option label="化学品终端" value="aio_chemical"></el-option>
               <el-option label="电子信息牌" value="aio_infobord"></el-option>
               <el-option label="学习考试一体" value="aio_exam"></el-option>
+              <el-option label="化学品终端升级APP" value="aio_chemical_update"></el-option>
+              <el-option label="电子信息牌升级APP" value="aio_infobord_update"></el-option>
+              <el-option label="学习考试一体升级APP" value="aio_exam_update"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="描述" prop="description" label-width="90px">

+ 9 - 1
src/views/iotDevice/appManage/applyListVersions/index.vue

@@ -26,6 +26,9 @@
               <el-option label="化学品终端" value="aio_chemical"></el-option>
               <el-option label="电子信息牌" value="aio_infobord"></el-option>
               <el-option label="学习考试一体" value="aio_exam"></el-option>
+              <el-option label="化学品终端升级APP" value="aio_chemical_update"></el-option>
+              <el-option label="电子信息牌升级APP" value="aio_infobord_update"></el-option>
+              <el-option label="学习考试一体升级APP" value="aio_exam_update"></el-option>
             </el-select>
           </el-form-item>
           <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
@@ -44,7 +47,12 @@
           <el-table-column label="版本名称" prop="versionName" width="140" show-overflow-tooltip/>
           <el-table-column label="类型" align="center" prop="terminalType" show-overflow-tooltip width="200">
             <template slot-scope="scope">
-              {{scope.row.terminalType=='aio_chemical'?'化学品终端':(scope.row.terminalType=='aio_infobord'?'电子信息牌':(scope.row.terminalType=='aio_exam'?'学习考试一体':scope.row.terminalType))}}
+              {{scope.row.terminalType=='aio_chemical'?'化学品终端':(
+              scope.row.terminalType=='aio_infobord'?'电子信息牌':(
+              scope.row.terminalType=='aio_exam'?'学习考试一体':(
+              scope.row.terminalType=='aio_chemical_update'?'化学品终端升级APP':(
+              scope.row.terminalType=='aio_infobord_update'?'电子信息牌升级APP':(
+              scope.row.terminalType=='aio_exam_update'?'学习考试一体升级APP':scope.row.terminalType)))))}}
             </template>
           </el-table-column>
           <el-table-column label="大小" prop="fileSize" width="100" show-overflow-tooltip>

+ 3 - 0
src/views/iotDevice/appManage/applyUpgrades/index.vue

@@ -107,6 +107,9 @@
               <el-option label="化学品终端" value="aio_chemical"></el-option>
               <el-option label="电子信息牌" value="aio_infobord"></el-option>
               <el-option label="学习考试一体" value="aio_exam"></el-option>
+              <el-option label="化学品终端升级APP" value="aio_chemical_update"></el-option>
+              <el-option label="电子信息牌升级APP" value="aio_infobord_update"></el-option>
+              <el-option label="学习考试一体升级APP" value="aio_exam_update"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="分批升级数量" prop="batchSize" label-width="120px">

+ 3 - 0
src/views/iotDevice/appManage/applyUpgradesQuest/index.vue

@@ -44,6 +44,9 @@
               <el-option label="化学品终端" value="aio_chemical"></el-option>
               <el-option label="电子信息牌" value="aio_infobord"></el-option>
               <el-option label="学习考试一体" value="aio_exam"></el-option>
+              <el-option label="化学品终端升级APP" value="aio_chemical_update"></el-option>
+              <el-option label="电子信息牌升级APP" value="aio_infobord_update"></el-option>
+              <el-option label="学习考试一体升级APP" value="aio_exam_update"></el-option>
             </el-select>
           </el-form-item>
           <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>

+ 61 - 23
src/views/safetyCheck/components/initiateInspect/initiateInspect.vue

@@ -7,7 +7,7 @@
       <!--<p class="page-top-title-edit-p" @click="submitForm(1)" v-if="!lookInfoType&&projectData.checkStatus != 1">保存草稿</p>-->
       <p class="page-top-title-edit-p" @click="submitForm(2)" v-if="!lookInfoType&&projectData.checkStatus != 1">继续检查</p>
       <p class="page-top-title-add-p" @click="submitForm(3)" v-if="!lookInfoType&&projectData.checkStatus != 1">提交查看</p>
-      <p class="page-top-title-add-p" @click="submitForm(3)" v-if="!lookInfoType&&projectData.checkStatus == 1 && projectData.checkSetProgress < 100">编辑</p>
+      <p class="page-top-title-add-p" @click="submitForm(3)" v-if="!lookInfoType&&projectData.checkStatus == 1 && projectData.checkSetProgress < 100">保存</p>
       <p class="page-top-title-out-p" @click="backPage">返回</p>
       <p class="page-top-title-add-p" @click="submitForm(4)" v-if="!lookInfoType&&(initiateData.orderType == 3||initiateData.orderType == 5)">提交</p>
     </div>
@@ -118,14 +118,15 @@
             </div>
           </div>
           <div class="content-right-flex-border-box" v-if="projectData.checkStatus == 1">
+            <!--<div class="right-text-box">-->
+              <!--<p class="right-text-name-p">检查人</p>-->
+              <!--<div class="right-text-title-box">-->
+                <!--<p>{{projectData.checkUserName}}-{{projectData.checkAccount}}</p>-->
+              <!--</div>-->
+            <!--</div>-->
             <div class="right-text-box">
-              <p class="right-text-name-p">检查人</p>
-              <div class="right-text-title-box">
-                <p>{{projectData.checkUserName}}-{{projectData.checkAccount}}</p>
-              </div>
-            </div>
-            <div class="right-text-box">
-              <p class="right-text-name-p" style="width:138px;">检查时间</p>
+              <!--<p class="right-text-name-p" style="width:138px;">检查时间</p>-->
+              <p class="right-text-name-p">检查时间</p>
               <div class="right-text-title-box">
                 <p>{{parseTime(projectData.checkTime,"{y}-{m}-{d} {h}:{i}")}}</p>
               </div>
@@ -364,6 +365,8 @@
         historyRecordsComponentPropsType:false,
         //语音数据
         voiceList:[],
+        //记录进入时检查项ID
+        delSetOptionId:null,
       }
     },
     created() {
@@ -403,8 +406,10 @@
               this.securityCheckPhotoGetCheckNumBySub()
               if (this.projectData.checkStatus == 1) {
                 //已提交
+                this.$set(this.addForm, 'hazardCheckPro', this.projectData.hazardCheckPro)
+                this.$set(this, 'delSetOptionId', this.projectData.setOptionId)
                 this.securityCheckDangerGetDangerId();
-                this.$set(this,'freeChoiceType',false);
+                this.$set(this,'freeChoiceType',true);
                 if(this.projectData.checkSetProgress < 100){
                   this.$set(this.addForm, 'uploadDtoList', response.data.photoList?response.data.photoList:[])
                   this.$set(this.addForm, 'checkFlag', response.data.checkFlag?response.data.checkFlag:0)
@@ -424,16 +429,7 @@
               this.$set(this,'freeChoiceType',true);
             }
             if(type == 'initialize'){
-              // 上级页面检查项状态 指定时false,未指定true
-              // if (this.initiateData.freeChoiceType) {
-              //   this.$set(this, 'freeChoiceType', true)
-              //   //开始检查/未指定检查项-获取未执行过的检查项列表
-              //   this.securityCheckSetOptionUnCheckList();
-              // }else{
-              //   //开始检查/开始整改/开始复查-获取所有检查项列表
-              //   this.securityCheckOptionSelAllList();
-              // }
-              if (this.initiateData.showType||!this.freeChoiceType) {
+              if (this.initiateData.showType) {
                 this.securityCheckOptionSelAllList();
               } else {
                 this.securityCheckSetOptionUnCheckList();
@@ -522,13 +518,13 @@
       hazardCheckProChange(val){
         let self = this;
         if (val){
-          console.log('val',val)
           for (let i=0;i<self.cascaderDataList.length;i++){
             if(val == self.cascaderDataList[i].hazardCheckPro){
               self.$set(self.projectData,'setOptionId',self.cascaderDataList[i].setOptionId);
               self.$set(self.projectData,'hazardCheckPoint',self.cascaderDataList[i].hazardCheckPoint);
               self.$set(self.projectData,'hazardCheckPro',self.cascaderDataList[i].hazardCheckPro);
-              if(self.projectData.checkStatus != 1){
+              // if(self.projectData.checkStatus != 1){
+              if(!this.addForm.hazardDescribe){
                 if (self.cascaderDataList[i].hazardCheckPoint.indexOf('#') != -1){
                   let textList = self.cascaderDataList[i].hazardCheckPoint.split('#')
                   let text = '';
@@ -560,7 +556,13 @@
         if (type == 1 || type == 2 || type == 3) {
           self.$refs['addForm'].validate(valid => {
             if (valid) {
-              this.$confirm(type==1?'确认保存草稿?':(type==2?'确认继续检查?':(type==3?'确认提交查看?':'')), "警告", {
+              let text = '';
+              if(this.projectData.checkStatus == 1){
+                text = '内容发生修改,确认保存?'
+              }else{
+                text = type==1?'确认保存草稿?':(type==2?'确认继续检查?':(type==3?'确认提交查看?':''))
+              }
+              this.$confirm(text, "警告", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
                 type: "warning"
@@ -613,10 +615,23 @@
           checkFlag: this.addForm.checkFlag,
           checkStatus: type == 1 ? '2' : 1,
           hazardDescribe: this.addForm.hazardDescribe,
-          setOptionId: this.freeChoiceType?this.projectData.setOptionId:this.initiateData.setOptionId,
           photoList: this.addForm.uploadDtoList,
           voiceList: this.addForm.speechRemarksList,
         }
+        if(this.freeChoiceType){
+          if(this.delSetOptionId){
+            if(this.delSetOptionId != this.projectData.setOptionId){
+              obj.delSetOptionId = this.delSetOptionId
+              obj.setOptionId = this.projectData.setOptionId
+            }else{
+              obj.setOptionId = this.projectData.setOptionId
+            }
+          }else{
+            obj.setOptionId = this.projectData.setOptionId
+          }
+        }else{
+          obj.setOptionId = this.initiateData.setOptionId
+        }
         securityCheckSetOptionCheckCommit(obj).then(response => {
           this.msgSuccess(response.message)
           if (type == 1) {
@@ -782,6 +797,29 @@
               manageId: this.initiateData.manageId,
             }).then(response => {
               if(response.data[0]){
+                if(this.projectData.hazardCheckPro){
+                  let obj = {
+                    checkCategory: this.projectData.checkCategory,//检查类别(1校院巡查 2自查)
+                    checkStatus: this.projectData.checkStatus,//检查状态:0未开始,1已完成,2草稿
+                    deptId:this.initiateData.deptId,// 部门id
+                    hazardCheckCode: this.projectData.hazardCheckCode,// 三级检查项目code序号
+                    hazardCheckCode1: this.projectData.hazardCheckCode1,//		 一级项目检查code
+                    hazardCheckCode2: this.projectData.hazardCheckCode2,//		二级项目检查code
+                    hazardCheckName: this.projectData.hazardCheckName,//		三级检查名称
+                    hazardCheckName1: this.projectData.hazardCheckName1,//			一级检查名称
+                    hazardCheckName2: this.projectData.hazardCheckName2,//			二级检查名称
+                    hazardCheckPoint: this.projectData.hazardCheckPoint,//  检查要点
+                    hazardCheckPro: this.projectData.hazardCheckPro,//   三级检查项目id
+                    hazardCheckPro1: this.projectData.hazardCheckPro1,//		一级项目检查id
+                    hazardCheckPro2: this.projectData.hazardCheckPro2,//	二级项目检查id
+                    manageId: this.initiateData.manageId,//		检查管理id
+                    planId: this.projectData.planId,//	计划id
+                    planSetId: this.projectData.planSetId,//	批次id
+                    setOptionId: this.projectData.setOptionId,//  检查项id
+                    subId: this.projectData.subId,//	实验室ID
+                  }
+                  response.data.push(obj);
+                }
                 this.$set(this,'cascaderDataList',response.data);
                 for(let i=0;i<maxList.length;i++){
                   for(let o=0;o<maxList[i].children.length;o++){

文件差异内容过多而无法显示
+ 8 - 3
src/views/safetyCheck/components/noticeDom.vue


+ 1 - 1
src/views/safetyCheck/dataStatistics/hiddenDangerStatistics.vue

@@ -304,7 +304,7 @@ export default {
         title: {
           top: "5%",
           left: "center",
-          text:  "各单位隐患数统计",
+          text:  "各单位隐患数统计TOP25",
           textStyle: {
             align: "center",
             color: "#333333",

+ 12 - 3
src/views/safetyCheck/safetyHazard/rectificationNotice/index.vue

@@ -130,7 +130,7 @@
           </el-table-column>
           <el-table-column label="整改期限" prop="rectifyDeadline" width="160" show-overflow-tooltip>
             <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.rectifyDeadline,"{y}-{m}-{d} {h}:{i}") }}</span>
+              <span>{{ parseTime(scope.row.rectifyDeadline,"{y}-{m}-{d}") }}</span>
             </template>
           </el-table-column>
           <el-table-column label="整改状态" prop="state" width="100" show-overflow-tooltip>
@@ -351,15 +351,24 @@
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
+          //生成时间
+          let date = new Date();
+          let year = date.getFullYear();
+          let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,需要加1,并确保两位数
+          let day = date.getDate().toString().padStart(2, '0'); // 确保两位数
+          let hours = date.getHours().toString().padStart(2, '0'); // 确保两位数
+          let minutes = date.getMinutes().toString().padStart(2, '0'); // 确保两位数
+          let seconds = date.getSeconds().toString().padStart(2, '0'); // 确保两位数
+          let time = year+month+day+hours+minutes+seconds
           let text = self.ids+'';
-          self.downloadGet('/security/rectifyNotice/genRectifyNote/zip?idListStr='+text+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'), '批量通知下载.zip')
+          self.downloadGet('/security/rectifyNotice/genRectifyNote/zip?idListStr='+text+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'),'整改通知书_'+time+'.zip')
           self.$refs['multipleTable'].clearSelection();
         }).then(() => {
         }).catch(() => {});
       },
       // 单个下载按钮
       downloadButton(row){
-        this.downloadGet('/security/rectifyNotice/getRectifyAdviceNote?noticeId='+row.noticeId+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'), '整改通知('+row.noticeNum+').docx')
+        this.downloadGet('/security/rectifyNotice/getRectifyAdviceNote?noticeId='+row.noticeId+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'), '整改通知('+row.noticeNum+').docx')
       },//学院下拉列表
       getDeptDropList(){
         getDeptDropList({level: 2, deptType: 1 }).then(response => {

+ 10 - 1
src/views/safetyCheck/safetyHazard/rectificationReport/index.vue

@@ -364,8 +364,17 @@
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
+          //生成时间
+          let date = new Date();
+          let year = date.getFullYear();
+          let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,需要加1,并确保两位数
+          let day = date.getDate().toString().padStart(2, '0'); // 确保两位数
+          let hours = date.getHours().toString().padStart(2, '0'); // 确保两位数
+          let minutes = date.getMinutes().toString().padStart(2, '0'); // 确保两位数
+          let seconds = date.getSeconds().toString().padStart(2, '0'); // 确保两位数
+          let time = year+month+day+hours+minutes+seconds
           let text = self.ids+'';
-          self.downloadGet('/security/rectifyReport/genReport/zip?idListStr='+text+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'), '批量报告下载.zip')
+          self.downloadGet('/security/rectifyReport/genReport/zip?idListStr='+text+'&fileUrl='+localStorage.getItem('fileBrowseEnvironment'), '整改报告_'+time+'.zip')
           self.$refs['multipleTable'].clearSelection();
         }).then(() => {
         }).catch(() => {});