From 8fdf8b520c53ad2999d7fb111316fea17040fc9c Mon Sep 17 00:00:00 2001
From: forevertyler <1318719240@qq.com>
Date: Mon, 17 Mar 2025 11:17:55 +0800
Subject: [PATCH] =?UTF-8?q?fix:=E4=BA=BA=E5=91=98=E6=8A=A5=E8=AD=A6?=
 =?UTF-8?q?=E5=8E=86=E5=8F=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/Screen/items/dlxt.vue               |   5 +
 src/views/personPos/perHis/index.vue          | 408 ++++++++----------
 .../personPosAlarmHis/arerAlarm/index.vue     | 286 ++++++++++++
 .../personPosAlarmHis/communication/index.vue | 286 ++++++++++++
 .../personPosAlarmHis/overperson/index.vue    | 286 ++++++++++++
 .../personPosAlarmHis/overtime/index.vue      | 286 ++++++++++++
 .../personPosAlarmHis/underperAlarm/index.vue | 286 ++++++++++++
 .../personPosAlarmHis/workAlarm/index.vue     | 286 ++++++++++++
 8 files changed, 1899 insertions(+), 230 deletions(-)
 create mode 100644 src/views/Screen/items/dlxt.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/arerAlarm/index.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/communication/index.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/overperson/index.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/overtime/index.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/underperAlarm/index.vue
 create mode 100644 src/views/personPos/personPosAlarmHis/workAlarm/index.vue

diff --git a/src/views/Screen/items/dlxt.vue b/src/views/Screen/items/dlxt.vue
new file mode 100644
index 0000000..fdc9709
--- /dev/null
+++ b/src/views/Screen/items/dlxt.vue
@@ -0,0 +1,5 @@
+<template>
+  <div>
+    鐢靛姏绯荤粺
+  </div>
+</template>
\ No newline at end of file
diff --git a/src/views/personPos/perHis/index.vue b/src/views/personPos/perHis/index.vue
index 560365d..41ffaf0 100644
--- a/src/views/personPos/perHis/index.vue
+++ b/src/views/personPos/perHis/index.vue
@@ -1,51 +1,120 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
-      
+    
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="" prop="perName">
+        <el-input
+          v-model="queryParams.perName"
+          placeholder="璇疯緭鍏ュ鍚�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="cardNumber">
+        <el-select v-model="queryParams.cardNumber" placeholder="璇烽€夋嫨鍗″彿" clearable>
+          <el-option
+            v-for="dict in cardNoList"
+            :key="dict.value"
+            :label="dict.name"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+     
+      <el-form-item label="" prop="departId">
+        <el-select v-model="queryParams.departId" placeholder="璇烽€夋嫨閮ㄩ棬" clearable>
+          <el-option
+            v-for="dict in DepartmentList"
+            :key="dict.value"
+            :label="dict.name"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <!-- <el-form-item label="" prop="positionId">
+        <el-select v-model="queryParams.positionId" placeholder="璇烽€夋嫨鑱屽姟" clearable>
+          <el-option
+            v-for="dict in InfoPositionList"
+            :key="dict.value"
+            :label="dict.name"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="" prop="jobTypeId">
+        <el-select v-model="queryParams.jobTypeId" placeholder="璇烽€夋嫨宸ョ" clearable>
+          <el-option
+            v-for="dict in WorkTypeList"
+            :key="dict.value"
+            :label="dict.name"
+            :value="dict.value"
+          />
+        </el-select>
+        
+      </el-form-item> -->
       <el-form-item label="鏃ユ湡鏌ヨ">
         <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
       </el-form-item>
    
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
-    <el-tabs v-model="queryParams.alarmType" type="card" @tab-click="handleClick">
-      <el-tab-pane v-for="item in navName" :label="`${item.dictLabel}`" :name="item.dictValue" :key="item.dictCode">
-        <el-table v-loading="loading" :data="ALARMDATAList" height="500" >
-          <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
-          <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
-          <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
-          <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
-          <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
-          <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
-          <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
-          <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
-          <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
-          <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
-          <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
-          <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
-        </el-table>
-      </el-tab-pane>
-    </el-tabs>
+    <el-table v-loading="loading" :data="perHisList" >
+      <el-table-column label="濮撳悕" align="center" prop="perName" />
+      <el-table-column label="鍗″彿" align="center" prop="cardNumber" />
+      <el-table-column label="閮ㄩ棬" align="center" prop="departName" />
+      <el-table-column label="鍒嗙珯鍚嶇О" align="center" prop="stationName" />
+      <el-table-column label="鍒嗙珯浣嶇疆" align="center" prop="location" />
+      <el-table-column label="鎵€灞炲尯鍩�" align="center" prop="areaName" />
+      <el-table-column label="鏃堕棿" align="center" prop="alarmTime" >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.alarmTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="鍒嗙珯璺濈锛坢锛�" align="center" prop=""/>
+     
+      
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+
     
   </div>
 </template>
+
 <script>
 import { perAlarmHistory } from "@/api/tyler/perHis";
-import { listData } from "@/api/system/dict/data";
-// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
-// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
-// import { listDept } from "@/api/system/dept";
+import { baseInfoDepartment, baseInfoArea, baseInfoStation, baseInfoWorkType, baseInfoPosition, baseInfoCardNumber } from "@/api/tyler/common";
 
 export default {
-  name: "myname",
-  dicts: ['per_alarm_type'],
-  components: {},
-  props: [],
+  name: "perHis",
   data() {
     return {
+      // 鏍硅矾寰�
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      
+      // 鑰冨嫟绠$悊鏁版嵁琛ㄦ牸鏁版嵁
+      perHisList: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
@@ -54,240 +123,119 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        alarmType:'1',
+        perName:null,
         cardNumber: null,
         departId: null,
         positionId: null,
         jobTypeId: null,
       },
-      //鏌ョ湅浜哄憳
-      openPerson:false,
-      loading:false,
-      activeName: '1',
-      navName:[],
-      ONLINEDATAList:[],
-      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
-      ALARMDATAList: [],
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-        id: [
-          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
-        ],
-      },
-      personData:[],
-      labelName:{
-        perName:'濮撳悕',
-        cardNumber:'鍗″彿',
-        departName:'閮ㄩ棬',
-        location:'鎵€鍦ㄤ綅缃�',
-        entryTime:'鍏ヤ簳鏃堕棿',
-        alarmTime:'鎶ヨ鏃堕棿',
-      },
       // 鏃ユ湡鑼冨洿
       dateRange: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // common
+      //鍗″彿鍒楄〃
+      cardNoList: [],
+      //閮ㄩ棬鍒楄〃
+      DepartmentList: [],
+      //鍒嗙珯鍒楄〃
+      StationList: [],
+      //鍖哄煙鍒楄〃
+      AreaList: [],
+      //鑱屽姟鍒楄〃
+      InfoPositionList: [],
+      //宸ョ鍒楄〃
+      WorkTypeList: [],
+     
     };
   },
-  watch: {},
   created() {
-    this.$nextTick(function () {
-      this.getTagname()
-    });
-  },
-  mounted() {
-    this.$nextTick(function () {
-
-      this.getList(this.queryParams.alarmType)
-      // this.listRList('1')
-    });
+    this.getCommon();
+    this.getList();
+  
   },
   methods: {
-    getList(alarmType){
-      perAlarmHistory(this.addDateRange({alarmType}, this.dateRange)).then(res => {
-        this.ALARMDATAList = res.rows
+    // common
+    
+    getCommon(){
+      //鍗″彿
+      baseInfoCardNumber().then(res=>{
+        this.cardNoList = res.data;
       })
-    },
-    getTagname(){
-      listData({dictType:'per_alarm_type'}).then(res => {
-        this.navName = res.rows;
+      //閮ㄩ棬
+      baseInfoDepartment().then(res=>{
+        this.DepartmentList = res.data;
       })
-    },
-    handleClick(tab, event) {
-      console.log(tab,'handleClick')
-      // this.ONLINEDATAList = [];
-      this.activeName = tab.paneName;
-      this.getList(tab.paneName)
-      if(tab.paneName == 1){
-        this.labelName = {
-          perName:'濮撳悕',
-          cardNumber:'鍗″彿',
-          departName:'閮ㄩ棬',
-          location:'鎵€鍦ㄤ綅缃�',
-          entryTime:'鍏ヤ簳鏃堕棿',
-          reason:null,
-          alarmTime:'鎶ヨ鏃堕棿',
-          actionID:null,
-          overCapacityCount:null,
-          areaName:null,
-          stationId:null,
-          stationName:null,
-        }
-      }else if(tab.paneName == 2){
-        this.labelName = {
-          perName:'濮撳悕',
-          cardNumber:'鍗″彿',
-          departName:'閮ㄩ棬',
-          location:null,
-          entryTime:null,
-          reason:null,
-          alarmTime:'鎶ヨ鏃堕棿',
-          actionID:'鍔ㄤ綔',
-          overCapacityCount:'瓒呭憳浜烘暟',
-          areaName:'鍖哄煙鍚嶇О',
-          stationId:null,
-          stationName:null,
-
-        }
-      }else if(tab.paneName == 3){
-        this.labelName = {
-          perName:null,
-          cardNumber:null,
-          departName:null,
-          location:'瀹夎浣嶇疆',
-          entryTime:null,
-          reason:'鍘熷洜',
-          alarmTime:'鎶ヨ鏃堕棿',
-          overCapacityCount:null,
-          actionID:null,
-          areaName:null,
-          stationId:'鍒嗙珯缂栧彿',
-          stationName:'鍒嗙珯鍚嶇О',
-
-        }
-      }else if(tab.paneName == 4){
-        this.labelName = {
-          perName:'濮撳悕',
-          cardNumber:'鍗″彿',
-          departName:'閮ㄩ棬',
-          location:'鍒嗙珯浣嶇疆',
-          entryTime:null,
-          reason:null,
-          alarmTime:'鎶ヨ鏃堕棿',
-          overCapacityCount:null,
-          actionID:null,
-          stationId:'鍒嗙珯缂栧彿',
-          stationName:null,
-          areaName:'闄愬埗鍖哄悕绉�',
-
-        }
-      }else if(tab.paneName == 5){
-        this.labelName = {
-          perName:'濮撳悕',
-          cardNumber:'鍗″彿',
-          departName:'閮ㄩ棬',
-          location:null,
-          entryTime:null,
-          reason:null,
-          alarmTime:'鎶ヨ鏃堕棿',
-          overCapacityCount:null,
-          actionID:null,
-          stationId:null,
-          stationName:null,
-          areaName:'鏈埌杈惧尯鍩熷悕绉�',
-
-        }
-      }else if(tab.paneName == 6){
-        this.labelName = {
-          perName:'濮撳悕',
-          cardNumber:'鍗″彿',
-          departName:'閮ㄩ棬',
-          location:'鎶ヨ浣嶇疆',
-          entryTime:null,
-          reason:null,
-          alarmTime:'鎶ヨ鏃堕棿',
-          overCapacityCount:null,
-          actionID:null,
-          stationId:null,
-          stationName:null,
-          areaName:null,
-
-        }
-      }
-    },
-    /**鏌ョ湅浜哄憳*/
-    handleViewPerson(row){
-      getALARMDATA(row.regionId).then(res => {
-        this.openPerson = true;
-        this.personData = res.data
+      //鍒嗙珯
+      baseInfoStation().then(res=>{
+        this.StationList = res.data;
+      })
+      //鍖哄煙
+      baseInfoArea().then(res=>{
+        this.AreaList = res.data;
+      })
+      //鑱屽姟
+      baseInfoPosition().then(res=>{
+        this.InfoPositionList = res.data;
       })
       
+      //宸ョ
+      baseInfoWorkType().then(res=>{
+        this.WorkTypeList = res.data;
+      })
+    },
+    /** 鏌ヨ浜哄憳瀹氫綅瀹炴椂鏁版嵁鍒楄〃 */
+    getList() {
+      this.loading = true;
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+        this.perHisList = response.rows;
+        this.leaderList = response.remark;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
     // 鍙栨秷鎸夐挳
     cancel() {
       this.open = false;
       this.reset();
     },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
         id: null,
-        alarmClearTime: null,
-        relieveDuration: null,
+        perName: null,
+        departId: null,
+        addressId: null,
+        areaId: null,
       };
       this.resetForm("form");
     },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      this.form.id = row.id
-      this.open = true;
-      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
     },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null && Number(this.activeName)<5) {
-            personAlarmDataEdit(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.listRList(that.activeName);
-            });
-          }else if (this.form.id != null && Number(this.activeName)>4) {
-            updateALARMDATA(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.listRList(that.activeName);
-            });
-          } else {
-            this.open = false;
-            // addONLINEDATA(this.form).then(response => {
-            //   this.$modal.msgSuccess("鏂板鎴愬姛");
-            //   this.open = false;
-            //   this.getList();
-            // });
-          }
-        }
-      });
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
     },
+ 
+
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('business/per/export', {
+        ...this.queryParams
+      }, `per_${new Date().getTime()}.xlsx`)
+    }
   },
-};
-</script>
 
-<style scoped lang="scss">
 
-::v-deep .el-table .el-table__header-wrapper th{
-  background-color: #e8f2fb;
-}
-::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active{
-  background-color: #e8f2fb;
-  border-bottom: 2px solid #0b6bd2;
+};
+</script>
+<style lang="scss" scoped>
+.now-leader{
+  display: flex;
+  justify-content: space-between;
 }
 </style>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/arerAlarm/index.vue b/src/views/personPos/personPosAlarmHis/arerAlarm/index.vue
new file mode 100644
index 0000000..839c63c
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/arerAlarm/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'4',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/communication/index.vue b/src/views/personPos/personPosAlarmHis/communication/index.vue
new file mode 100644
index 0000000..d3013af
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/communication/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'3',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/overperson/index.vue b/src/views/personPos/personPosAlarmHis/overperson/index.vue
new file mode 100644
index 0000000..d26f1de
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/overperson/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'2',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/overtime/index.vue b/src/views/personPos/personPosAlarmHis/overtime/index.vue
new file mode 100644
index 0000000..143cd26
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/overtime/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'1',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/underperAlarm/index.vue b/src/views/personPos/personPosAlarmHis/underperAlarm/index.vue
new file mode 100644
index 0000000..95cb506
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/underperAlarm/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'6',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
diff --git a/src/views/personPos/personPosAlarmHis/workAlarm/index.vue b/src/views/personPos/personPosAlarmHis/workAlarm/index.vue
new file mode 100644
index 0000000..320cc8f
--- /dev/null
+++ b/src/views/personPos/personPosAlarmHis/workAlarm/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+      
+      <el-form-item label="鏃ユ湡鏌ヨ">
+        <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="寮€濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+      </el-form-item>
+   
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        
+      </el-form-item>
+    </el-form> 
+    <el-table v-loading="loading" :data="ALARMDATAList" >
+      <el-table-column v-if="labelName.perName" :label="labelName.perName" align="center" prop="perName" />
+      <el-table-column v-if="labelName.cardNumber" :label="labelName.cardNumber" align="center" prop="cardNumber" />
+      <el-table-column v-if="labelName.departName" :label="labelName.departName" align="center" prop="departName" />
+      <el-table-column v-if="labelName.stationId" :label="labelName.stationId" align="center" prop="stationId" />
+      <el-table-column v-if="labelName.stationName" :label="labelName.stationName" align="center" prop="stationName" />
+      <el-table-column v-if="labelName.actionID" :label="labelName.actionID" align="center" prop="actionID" />
+      <el-table-column v-if="labelName.location" :label="labelName.location" align="center" prop="location" />
+      <el-table-column v-if="labelName.areaName" :label="labelName.areaName" align="center" prop="areaName" />
+      <el-table-column v-if="labelName.entryTime" :label="labelName.entryTime" align="center" prop="entryTime" />
+      <el-table-column v-if="labelName.reason" :label="labelName.reason" align="center" prop="reason" />
+      <el-table-column v-if="labelName.alarmTime" :label="labelName.alarmTime" align="center" prop="alarmTime" />
+      <el-table-column v-if="labelName.overCapacityCount" :label="labelName.overCapacityCount" align="center" prop="overCapacityCount" />
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { perAlarmHistory } from "@/api/tyler/perHis";
+import { listData } from "@/api/system/dict/data";
+// import { personAlarmDataEdit } from "@/api/underPosition/personAlarm";
+// import {  getALARMDATA,updateALARMDATA } from "@/api/underPosition/areaAlarm";
+// import { listDept } from "@/api/system/dept";
+
+export default {
+  name: "myname",
+  dicts: ['per_alarm_type'],
+  components: {},
+  props: [],
+  data() {
+    return {
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        alarmType:'5',
+        cardNumber: null,
+        departId: null,
+        positionId: null,
+        jobTypeId: null,
+      },
+      //鏌ョ湅浜哄憳
+      openPerson:false,
+      loading:false,
+      activeName: '1',
+      navName:[],
+      ONLINEDATAList:[],
+      // 鐭垮北鍖哄煙鐩戞祴鎶ヨ鏁版嵁琛ㄦ牸鏁版嵁
+      ALARMDATAList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "鍞竴鏍囪瘑绗︿笉鑳戒负绌�", trigger: "blur" }
+        ],
+      },
+      personData:[],
+      labelName:{
+        perName:'濮撳悕',
+        cardNumber:'鍗″彿',
+        departName:'閮ㄩ棬',
+        location:'鎵€鍦ㄤ綅缃�',
+        entryTime:'鍏ヤ簳鏃堕棿',
+        alarmTime:'鎶ヨ鏃堕棿',
+      },
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      total:0,
+    };
+  },
+  watch: {},
+  created() {
+    this.$nextTick(function () {
+      this.getTagname()
+    });
+  },
+  mounted() {
+    this.$nextTick(function () {
+
+      this.getList()
+      // this.listRList('1')
+    });
+  },
+  methods: {
+    getList(){
+      perAlarmHistory(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
+        this.ALARMDATAList = res.rows
+        this.total = res.total||0;
+      })
+    },
+    getTagname(){
+      listData({dictType:'per_alarm_type'}).then(res => {
+        this.navName = res.rows;
+      })
+    },
+    handleClick(tab, event) {
+      console.log(tab,'handleClick')
+      // this.ONLINEDATAList = [];
+      this.activeName = tab.paneName;
+      this.getList(tab.paneName)
+      if(tab.paneName == 1){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎵€鍦ㄤ綅缃�',
+          entryTime:'鍏ヤ簳鏃堕棿',
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:null,
+          overCapacityCount:null,
+          areaName:null,
+          stationId:null,
+          stationName:null,
+        }
+      }else if(tab.paneName == 2){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          actionID:'鍔ㄤ綔',
+          overCapacityCount:'瓒呭憳浜烘暟',
+          areaName:'鍖哄煙鍚嶇О',
+          stationId:null,
+          stationName:null,
+
+        }
+      }else if(tab.paneName == 3){
+        this.labelName = {
+          perName:null,
+          cardNumber:null,
+          departName:null,
+          location:'瀹夎浣嶇疆',
+          entryTime:null,
+          reason:'鍘熷洜',
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          areaName:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:'鍒嗙珯鍚嶇О',
+
+        }
+      }else if(tab.paneName == 4){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鍒嗙珯浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:'鍒嗙珯缂栧彿',
+          stationName:null,
+          areaName:'闄愬埗鍖哄悕绉�',
+
+        }
+      }else if(tab.paneName == 5){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:null,
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:'鏈埌杈惧尯鍩熷悕绉�',
+
+        }
+      }else if(tab.paneName == 6){
+        this.labelName = {
+          perName:'濮撳悕',
+          cardNumber:'鍗″彿',
+          departName:'閮ㄩ棬',
+          location:'鎶ヨ浣嶇疆',
+          entryTime:null,
+          reason:null,
+          alarmTime:'鎶ヨ鏃堕棿',
+          overCapacityCount:null,
+          actionID:null,
+          stationId:null,
+          stationName:null,
+          areaName:null,
+
+        }
+      }
+    },
+    /**鏌ョ湅浜哄憳*/
+    handleViewPerson(row){
+      getALARMDATA(row.regionId).then(res => {
+        this.openPerson = true;
+        this.personData = res.data
+      })
+      
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        alarmClearTime: null,
+        relieveDuration: null,
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      this.form.id = row.id
+      this.open = true;
+      this.title = "澶勭悊鎶ヨ鏁版嵁";
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null && Number(this.activeName)<5) {
+            personAlarmDataEdit(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          }else if (this.form.id != null && Number(this.activeName)>4) {
+            updateALARMDATA(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.listRList(that.activeName);
+            });
+          } else {
+            this.open = false;
+            // addONLINEDATA(this.form).then(response => {
+            //   this.$modal.msgSuccess("鏂板鎴愬姛");
+            //   this.open = false;
+            //   this.getList();
+            // });
+          }
+        }
+      });
+    },
+  },
+};
+</script>
\ No newline at end of file
-- 
2.22.0