Ver código fonte

设备列表完成,增加预警页面

haodingding 1 ano atrás
pai
commit
45b1948277

+ 1 - 1
package.json

@@ -41,7 +41,7 @@
     "axios": "0.24.0",
     "clipboard": "2.0.8",
     "core-js": "3.25.3",
-    "echarts": "5.4.0",
+    "echarts": "^5.4.3",
     "element-ui": "2.15.13",
     "file-saver": "2.0.5",
     "fuse.js": "6.4.3",

+ 56 - 0
src/api/system/device.js

@@ -42,3 +42,59 @@ export function delDevice(id) {
     method: 'delete'
   })
 }
+export function getHeartRate(data) {
+  return request({
+    url: '/system/device/heartRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getBloodRate(data) {
+  return request({
+    url: '/system/device/bloodRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getOxygenRate(data) {
+  return request({
+    url: '/system/device/oxygenRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getTempRate(data) {
+  return request({
+    url: '/system/device/tempRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getStepRate(data) {
+  return request({
+    url: '/system/device/stepRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getRollRate(data) {
+  return request({
+    url: '/system/device/rollRate',
+    method: 'get',
+    params: data
+  })
+}
+export function getDeviceLog(data) {
+  return request({
+    url: '/system/device/messageLogRate',
+    method: 'get',
+    params: data
+  })
+}
+export function setDeviceInterval(data) {
+  return request({
+    url: '/system/device/deviceValue',
+    method: 'post',
+    data: data
+  })
+}

+ 44 - 0
src/api/system/info.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询手环信息 实时数据列表
+export function listInfo(query) {
+  return request({
+    url: '/system/info/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询手环信息 实时数据详细
+export function getInfo(id) {
+  return request({
+    url: '/system/info/' + id,
+    method: 'get'
+  })
+}
+
+// 新增手环信息 实时数据
+export function addInfo(data) {
+  return request({
+    url: '/system/info',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改手环信息 实时数据
+export function updateInfo(data) {
+  return request({
+    url: '/system/info',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除手环信息 实时数据
+export function delInfo(id) {
+  return request({
+    url: '/system/info/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/system/list.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询手环报警列信息列表
+export function listList(query) {
+  return request({
+    url: '/system/list/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询手环报警列信息详细
+export function getList(id) {
+  return request({
+    url: '/system/list/' + id,
+    method: 'get'
+  })
+}
+
+// 新增手环报警列信息
+export function addList(data) {
+  return request({
+    url: '/system/list',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改手环报警列信息
+export function updateList(data) {
+  return request({
+    url: '/system/list',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除手环报警列信息
+export function delList(id) {
+  return request({
+    url: '/system/list/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/system/solve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询SOS预警处理列表
+export function listSolve(query) {
+  return request({
+    url: '/system/solve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询SOS预警处理详细
+export function getSolve(id) {
+  return request({
+    url: '/system/solve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增SOS预警处理
+export function addSolve(data) {
+  return request({
+    url: '/system/solve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改SOS预警处理
+export function updateSolve(data) {
+  return request({
+    url: '/system/solve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除SOS预警处理
+export function delSolve(id) {
+  return request({
+    url: '/system/solve/' + id,
+    method: 'delete'
+  })
+}

+ 2 - 0
src/main.js

@@ -37,6 +37,8 @@ import DictTag from '@/components/DictTag'
 import VueMeta from 'vue-meta'
 // 字典数据组件
 import DictData from '@/components/DictData'
+// import axios from 'axios'
+// Vue.prototype.$axios = axios 
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts
 Vue.prototype.getConfigKey = getConfigKey

Diferenças do arquivo suprimidas por serem muito extensas
+ 1121 - 177
src/views/system/device/index.vue


+ 828 - 0
src/views/system/info/index.vue

@@ -0,0 +1,828 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="设备id" prop="facilityId">
+        <el-input
+          v-model="queryParams.facilityId"
+          placeholder="请输入设备id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设置id编码" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设置id编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="版本" prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="请输入版本"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="经度" prop="gpsLong">
+        <el-input
+          v-model="queryParams.gpsLong"
+          placeholder="请输入经度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="纬度" prop="gpsLat">
+        <el-input
+          v-model="queryParams.gpsLat"
+          placeholder="请输入纬度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="使用经度" prop="useGpsLong">
+        <el-input
+          v-model="queryParams.useGpsLong"
+          placeholder="请输入使用经度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="使用纬度" prop="useGpsLat">
+        <el-input
+          v-model="queryParams.useGpsLat"
+          placeholder="请输入使用纬度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="使用mac" prop="useMac">
+        <el-input
+          v-model="queryParams.useMac"
+          placeholder="请输入使用mac"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="速度 公里/小时" prop="speed">
+        <el-input
+          v-model="queryParams.speed"
+          placeholder="请输入速度 公里/小时"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="方向 度" prop="direction">
+        <el-input
+          v-model="queryParams.direction"
+          placeholder="请输入方向 度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="海拔" prop="poster">
+        <el-input
+          v-model="queryParams.poster"
+          placeholder="请输入海拔"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="电量" prop="electricQuantity">
+        <el-input
+          v-model="queryParams.electricQuantity"
+          placeholder="请输入电量"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="计步数" prop="stepNumber">
+        <el-input
+          v-model="queryParams.stepNumber"
+          placeholder="请输入计步数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="翻滚数" prop="rollNumber">
+        <el-input
+          v-model="queryParams.rollNumber"
+          placeholder="请输入翻滚数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="在线状态 1在线 0离线" prop="onlineStatis">
+        <el-input
+          v-model="queryParams.onlineStatis"
+          placeholder="请输入在线状态 1在线 0离线"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="体温" prop="temp">
+        <el-input
+          v-model="queryParams.temp"
+          placeholder="请输入体温"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="血压 高压 0无效" prop="bloodHeightPressure">
+        <el-input
+          v-model="queryParams.bloodHeightPressure"
+          placeholder="请输入血压 高压 0无效"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="血压 低压 0无效" prop="bloodLowPressure">
+        <el-input
+          v-model="queryParams.bloodLowPressure"
+          placeholder="请输入血压 低压 0无效"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="心率 0无效" prop="heartRate">
+        <el-input
+          v-model="queryParams.heartRate"
+          placeholder="请输入心率 0无效"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="血养饱和度" prop="oxygen">
+        <el-input
+          v-model="queryParams.oxygen"
+          placeholder="请输入血养饱和度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="离线时间" prop="offlinetime">
+        <el-date-picker clearable
+          v-model="queryParams.offlinetime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择离线时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="上线时间" prop="onlinetime">
+        <el-date-picker clearable
+          v-model="queryParams.onlinetime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择上线时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="gps更新时间" prop="gpsUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.gpsUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择gps更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="血压更新时间" prop="bloodUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.bloodUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择血压更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="心率更新时间" prop="heartUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.heartUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择心率更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="体温更新时间" prop="tempUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.tempUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择体温更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="血氧更新时间" prop="oxygenUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.oxygenUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择血氧更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="电量更新时间" prop="electricQuantityUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.electricQuantityUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择电量更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="步数更新时间" prop="stepNumberUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.stepNumberUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择步数更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="翻滚数更新时间" prop="rollNumberUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.rollNumberUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择翻滚数更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="终端状态更新时间" prop="terminalStatusUpdateTime">
+        <el-date-picker clearable
+          v-model="queryParams.terminalStatusUpdateTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择终端状态更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createtime">
+        <el-date-picker clearable
+          v-model="queryParams.createtime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="修改时间" prop="updatetime">
+        <el-date-picker clearable
+          v-model="queryParams.updatetime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择修改时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="详细地址" prop="addressDesc">
+        <el-input
+          v-model="queryParams.addressDesc"
+          placeholder="请输入详细地址"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手环是否定位 1 是 0 否" prop="isGps">
+        <el-input
+          v-model="queryParams.isGps"
+          placeholder="请输入手环是否定位 1 是 0 否"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </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-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:info:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:info:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:info:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:info:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="id" />
+      <el-table-column label="设备id" align="center" prop="facilityId" />
+      <el-table-column label="设置id编码" align="center" prop="deviceIdCode" />
+      <el-table-column label="版本" align="center" prop="version" />
+      <el-table-column label="经度" align="center" prop="gpsLong" />
+      <el-table-column label="纬度" align="center" prop="gpsLat" />
+      <el-table-column label="使用经度" align="center" prop="useGpsLong" />
+      <el-table-column label="使用纬度" align="center" prop="useGpsLat" />
+      <el-table-column label="使用mac" align="center" prop="useMac" />
+      <el-table-column label="速度 公里/小时" align="center" prop="speed" />
+      <el-table-column label="方向 度" align="center" prop="direction" />
+      <el-table-column label="海拔" align="center" prop="poster" />
+      <el-table-column label="电量" align="center" prop="electricQuantity" />
+      <el-table-column label="计步数" align="center" prop="stepNumber" />
+      <el-table-column label="翻滚数" align="center" prop="rollNumber" />
+      <el-table-column label="终端状态" align="center" prop="terminalStatus" />
+      <el-table-column label="在线状态 1在线 0离线" align="center" prop="onlineStatis" />
+      <el-table-column label="体温" align="center" prop="temp" />
+      <el-table-column label="血压 高压 0无效" align="center" prop="bloodHeightPressure" />
+      <el-table-column label="血压 低压 0无效" align="center" prop="bloodLowPressure" />
+      <el-table-column label="心率 0无效" align="center" prop="heartRate" />
+      <el-table-column label="血养饱和度" align="center" prop="oxygen" />
+      <el-table-column label="离线时间" align="center" prop="offlinetime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.offlinetime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="上线时间" align="center" prop="onlinetime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.onlinetime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="gps更新时间" align="center" prop="gpsUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gpsUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="血压更新时间" align="center" prop="bloodUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.bloodUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="心率更新时间" align="center" prop="heartUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.heartUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="体温更新时间" align="center" prop="tempUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.tempUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="血氧更新时间" align="center" prop="oxygenUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.oxygenUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="电量更新时间" align="center" prop="electricQuantityUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.electricQuantityUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="步数更新时间" align="center" prop="stepNumberUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.stepNumberUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="翻滚数更新时间" align="center" prop="rollNumberUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.rollNumberUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="终端状态更新时间" align="center" prop="terminalStatusUpdateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.terminalStatusUpdateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createtime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createtime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="修改时间" align="center" prop="updatetime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatetime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="0非接口获取坐标 1移动接入 2wifi接入 -2 查询失败" align="center" prop="accesstype" />
+      <el-table-column label="详细地址" align="center" prop="addressDesc" />
+      <el-table-column label="手环是否定位 1 是 0 否" align="center" prop="isGps" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:info:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:info:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改手环信息 实时数据对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="设备id" prop="facilityId">
+          <el-input v-model="form.facilityId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="设置id编码" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设置id编码" />
+        </el-form-item>
+        <el-form-item label="版本" prop="version">
+          <el-input v-model="form.version" placeholder="请输入版本" />
+        </el-form-item>
+        <el-form-item label="经度" prop="gpsLong">
+          <el-input v-model="form.gpsLong" placeholder="请输入经度" />
+        </el-form-item>
+        <el-form-item label="纬度" prop="gpsLat">
+          <el-input v-model="form.gpsLat" placeholder="请输入纬度" />
+        </el-form-item>
+        <el-form-item label="使用经度" prop="useGpsLong">
+          <el-input v-model="form.useGpsLong" placeholder="请输入使用经度" />
+        </el-form-item>
+        <el-form-item label="使用纬度" prop="useGpsLat">
+          <el-input v-model="form.useGpsLat" placeholder="请输入使用纬度" />
+        </el-form-item>
+        <el-form-item label="使用mac" prop="useMac">
+          <el-input v-model="form.useMac" placeholder="请输入使用mac" />
+        </el-form-item>
+        <el-form-item label="速度 公里/小时" prop="speed">
+          <el-input v-model="form.speed" placeholder="请输入速度 公里/小时" />
+        </el-form-item>
+        <el-form-item label="方向 度" prop="direction">
+          <el-input v-model="form.direction" placeholder="请输入方向 度" />
+        </el-form-item>
+        <el-form-item label="海拔" prop="poster">
+          <el-input v-model="form.poster" placeholder="请输入海拔" />
+        </el-form-item>
+        <el-form-item label="电量" prop="electricQuantity">
+          <el-input v-model="form.electricQuantity" placeholder="请输入电量" />
+        </el-form-item>
+        <el-form-item label="计步数" prop="stepNumber">
+          <el-input v-model="form.stepNumber" placeholder="请输入计步数" />
+        </el-form-item>
+        <el-form-item label="翻滚数" prop="rollNumber">
+          <el-input v-model="form.rollNumber" placeholder="请输入翻滚数" />
+        </el-form-item>
+        <el-form-item label="在线状态 1在线 0离线" prop="onlineStatis">
+          <el-input v-model="form.onlineStatis" placeholder="请输入在线状态 1在线 0离线" />
+        </el-form-item>
+        <el-form-item label="体温" prop="temp">
+          <el-input v-model="form.temp" placeholder="请输入体温" />
+        </el-form-item>
+        <el-form-item label="血压 高压 0无效" prop="bloodHeightPressure">
+          <el-input v-model="form.bloodHeightPressure" placeholder="请输入血压 高压 0无效" />
+        </el-form-item>
+        <el-form-item label="血压 低压 0无效" prop="bloodLowPressure">
+          <el-input v-model="form.bloodLowPressure" placeholder="请输入血压 低压 0无效" />
+        </el-form-item>
+        <el-form-item label="心率 0无效" prop="heartRate">
+          <el-input v-model="form.heartRate" placeholder="请输入心率 0无效" />
+        </el-form-item>
+        <el-form-item label="血养饱和度" prop="oxygen">
+          <el-input v-model="form.oxygen" placeholder="请输入血养饱和度" />
+        </el-form-item>
+        <el-form-item label="离线时间" prop="offlinetime">
+          <el-date-picker clearable
+            v-model="form.offlinetime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择离线时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="上线时间" prop="onlinetime">
+          <el-date-picker clearable
+            v-model="form.onlinetime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择上线时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="gps更新时间" prop="gpsUpdateTime">
+          <el-date-picker clearable
+            v-model="form.gpsUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择gps更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="血压更新时间" prop="bloodUpdateTime">
+          <el-date-picker clearable
+            v-model="form.bloodUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择血压更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="心率更新时间" prop="heartUpdateTime">
+          <el-date-picker clearable
+            v-model="form.heartUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择心率更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="体温更新时间" prop="tempUpdateTime">
+          <el-date-picker clearable
+            v-model="form.tempUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择体温更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="血氧更新时间" prop="oxygenUpdateTime">
+          <el-date-picker clearable
+            v-model="form.oxygenUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择血氧更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="电量更新时间" prop="electricQuantityUpdateTime">
+          <el-date-picker clearable
+            v-model="form.electricQuantityUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择电量更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="步数更新时间" prop="stepNumberUpdateTime">
+          <el-date-picker clearable
+            v-model="form.stepNumberUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择步数更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="翻滚数更新时间" prop="rollNumberUpdateTime">
+          <el-date-picker clearable
+            v-model="form.rollNumberUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择翻滚数更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="终端状态更新时间" prop="terminalStatusUpdateTime">
+          <el-date-picker clearable
+            v-model="form.terminalStatusUpdateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择终端状态更新时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="详细地址" prop="addressDesc">
+          <el-input v-model="form.addressDesc" placeholder="请输入详细地址" />
+        </el-form-item>
+        <el-form-item label="手环是否定位 1 是 0 否" prop="isGps">
+          <el-input v-model="form.isGps" placeholder="请输入手环是否定位 1 是 0 否" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listInfo, getInfo, delInfo, addInfo, updateInfo } from "@/api/system/info";
+
+export default {
+  name: "Info",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 手环信息 实时数据表格数据
+      infoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        facilityId: null,
+        deviceIdCode: null,
+        version: null,
+        gpsLong: null,
+        gpsLat: null,
+        useGpsLong: null,
+        useGpsLat: null,
+        useMac: null,
+        speed: null,
+        direction: null,
+        poster: null,
+        electricQuantity: null,
+        stepNumber: null,
+        rollNumber: null,
+        terminalStatus: null,
+        onlineStatis: null,
+        temp: null,
+        bloodHeightPressure: null,
+        bloodLowPressure: null,
+        heartRate: null,
+        oxygen: null,
+        offlinetime: null,
+        onlinetime: null,
+        gpsUpdateTime: null,
+        bloodUpdateTime: null,
+        heartUpdateTime: null,
+        tempUpdateTime: null,
+        oxygenUpdateTime: null,
+        electricQuantityUpdateTime: null,
+        stepNumberUpdateTime: null,
+        rollNumberUpdateTime: null,
+        terminalStatusUpdateTime: null,
+        createtime: null,
+        updatetime: null,
+        accesstype: null,
+        addressDesc: null,
+        isGps: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询手环信息 实时数据列表 */
+    getList() {
+      this.loading = true;
+      listInfo(this.queryParams).then(response => {
+        this.infoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        facilityId: null,
+        deviceIdCode: null,
+        version: null,
+        gpsLong: null,
+        gpsLat: null,
+        useGpsLong: null,
+        useGpsLat: null,
+        useMac: null,
+        speed: null,
+        direction: null,
+        poster: null,
+        electricQuantity: null,
+        stepNumber: null,
+        rollNumber: null,
+        terminalStatus: null,
+        onlineStatis: null,
+        temp: null,
+        bloodHeightPressure: null,
+        bloodLowPressure: null,
+        heartRate: null,
+        oxygen: null,
+        offlinetime: null,
+        onlinetime: null,
+        gpsUpdateTime: null,
+        bloodUpdateTime: null,
+        heartUpdateTime: null,
+        tempUpdateTime: null,
+        oxygenUpdateTime: null,
+        electricQuantityUpdateTime: null,
+        stepNumberUpdateTime: null,
+        rollNumberUpdateTime: null,
+        terminalStatusUpdateTime: null,
+        createtime: null,
+        updatetime: null,
+        accesstype: null,
+        addressDesc: null,
+        isGps: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加手环信息 实时数据";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getInfo(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改手环信息 实时数据";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateInfo(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addInfo(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除手环信息 实时数据编号为"' + ids + '"的数据项?').then(function() {
+        return delInfo(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/info/export', {
+        ...this.queryParams
+      }, `info_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 463 - 0
src/views/system/list/index.vue

@@ -0,0 +1,463 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="设备id" prop="facilityId">
+        <el-input
+          v-model="queryParams.facilityId"
+          placeholder="请输入设备id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手环信息id" prop="shinfoId">
+        <el-input
+          v-model="queryParams.shinfoId"
+          placeholder="请输入手环信息id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设置id编码" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设置id编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="经度" prop="gpsLong">
+        <el-input
+          v-model="queryParams.gpsLong"
+          placeholder="请输入经度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="纬度" prop="gpsLat">
+        <el-input
+          v-model="queryParams.gpsLat"
+          placeholder="请输入纬度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="速度 公里/小时" prop="speed">
+        <el-input
+          v-model="queryParams.speed"
+          placeholder="请输入速度 公里/小时"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="方向 度" prop="direction">
+        <el-input
+          v-model="queryParams.direction"
+          placeholder="请输入方向 度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="海拔" prop="poster">
+        <el-input
+          v-model="queryParams.poster"
+          placeholder="请输入海拔"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="电量" prop="electricQuantity">
+        <el-input
+          v-model="queryParams.electricQuantity"
+          placeholder="请输入电量"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="计步数" prop="stepNumber">
+        <el-input
+          v-model="queryParams.stepNumber"
+          placeholder="请输入计步数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="翻滚数" prop="rollNumber">
+        <el-input
+          v-model="queryParams.rollNumber"
+          placeholder="请输入翻滚数"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="报警信息 平台记录使用" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入报警信息 平台记录使用"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否发送 1是 0否" prop="isSend">
+        <el-input
+          v-model="queryParams.isSend"
+          placeholder="请输入是否发送 1是 0否"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="发送时间" prop="sendTime">
+        <el-date-picker clearable
+          v-model="queryParams.sendTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          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-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:list:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:list:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:list:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:list:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="listList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="id" />
+      <el-table-column label="设备id" align="center" prop="facilityId" />
+      <el-table-column label="手环信息id" align="center" prop="shinfoId" />
+      <el-table-column label="设置id编码" align="center" prop="deviceIdCode" />
+      <el-table-column label="经度" align="center" prop="gpsLong" />
+      <el-table-column label="纬度" align="center" prop="gpsLat" />
+      <el-table-column label="速度 公里/小时" align="center" prop="speed" />
+      <el-table-column label="方向 度" align="center" prop="direction" />
+      <el-table-column label="海拔" align="center" prop="poster" />
+      <el-table-column label="电量" align="center" prop="electricQuantity" />
+      <el-table-column label="计步数" align="center" prop="stepNumber" />
+      <el-table-column label="翻滚数" align="center" prop="rollNumber" />
+      <el-table-column label="状态类型 0 无效 1:低电状态;2:出围栏状态;3:进围栏状态;4:手环戴上取下状态;5:手表运行静止状态" align="center" prop="statusType" />
+      <el-table-column label="报警类型 0 无效 16:SOS报警;17:低电报警;20:手环拆除报警;21:跌倒报警;22:心率异常报警" align="center" prop="alarmType" />
+      <el-table-column label="终端状态" align="center" prop="terminalStatus" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="来源类型 1终端主动发 0平台记录" align="center" prop="alarmFromType" />
+      <el-table-column label="报警信息 平台记录使用" align="center" prop="msg" />
+      <el-table-column label="是否发送 1是 0否" align="center" prop="isSend" />
+      <el-table-column label="发送时间" align="center" prop="sendTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:list:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:list:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改手环报警列信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="设备id" prop="facilityId">
+          <el-input v-model="form.facilityId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="手环信息id" prop="shinfoId">
+          <el-input v-model="form.shinfoId" placeholder="请输入手环信息id" />
+        </el-form-item>
+        <el-form-item label="设置id编码" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设置id编码" />
+        </el-form-item>
+        <el-form-item label="经度" prop="gpsLong">
+          <el-input v-model="form.gpsLong" placeholder="请输入经度" />
+        </el-form-item>
+        <el-form-item label="纬度" prop="gpsLat">
+          <el-input v-model="form.gpsLat" placeholder="请输入纬度" />
+        </el-form-item>
+        <el-form-item label="速度 公里/小时" prop="speed">
+          <el-input v-model="form.speed" placeholder="请输入速度 公里/小时" />
+        </el-form-item>
+        <el-form-item label="方向 度" prop="direction">
+          <el-input v-model="form.direction" placeholder="请输入方向 度" />
+        </el-form-item>
+        <el-form-item label="海拔" prop="poster">
+          <el-input v-model="form.poster" placeholder="请输入海拔" />
+        </el-form-item>
+        <el-form-item label="电量" prop="electricQuantity">
+          <el-input v-model="form.electricQuantity" placeholder="请输入电量" />
+        </el-form-item>
+        <el-form-item label="计步数" prop="stepNumber">
+          <el-input v-model="form.stepNumber" placeholder="请输入计步数" />
+        </el-form-item>
+        <el-form-item label="翻滚数" prop="rollNumber">
+          <el-input v-model="form.rollNumber" placeholder="请输入翻滚数" />
+        </el-form-item>
+        <el-form-item label="报警信息 平台记录使用" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入报警信息 平台记录使用" />
+        </el-form-item>
+        <el-form-item label="是否发送 1是 0否" prop="isSend">
+          <el-input v-model="form.isSend" placeholder="请输入是否发送 1是 0否" />
+        </el-form-item>
+        <el-form-item label="发送时间" prop="sendTime">
+          <el-date-picker clearable
+            v-model="form.sendTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择发送时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listList, getList, delList, addList, updateList } from "@/api/system/list";
+
+export default {
+  name: "List",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 手环报警列信息表格数据
+      listList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        facilityId: null,
+        shinfoId: null,
+        deviceIdCode: null,
+        gpsLong: null,
+        gpsLat: null,
+        speed: null,
+        direction: null,
+        poster: null,
+        electricQuantity: null,
+        stepNumber: null,
+        rollNumber: null,
+        statusType: null,
+        alarmType: null,
+        terminalStatus: null,
+        createTime: null,
+        alarmFromType: null,
+        msg: null,
+        isSend: null,
+        sendTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询手环报警列信息列表 */
+    getList() {
+      this.loading = true;
+      listList(this.queryParams).then(response => {
+        this.listList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        facilityId: null,
+        shinfoId: null,
+        deviceIdCode: null,
+        gpsLong: null,
+        gpsLat: null,
+        speed: null,
+        direction: null,
+        poster: null,
+        electricQuantity: null,
+        stepNumber: null,
+        rollNumber: null,
+        statusType: null,
+        alarmType: null,
+        terminalStatus: null,
+        createTime: null,
+        alarmFromType: null,
+        msg: null,
+        isSend: null,
+        sendTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加手环报警列信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getList(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改手环报警列信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateList(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addList(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除手环报警列信息编号为"' + ids + '"的数据项?').then(function() {
+        return delList(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/list/export', {
+        ...this.queryParams
+      }, `list_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 2 - 1
src/views/system/profile/index.vue

@@ -1338,4 +1338,5 @@ export default {
 .inp /deep/ .el-input__inner {
   color: #000 !important;
   /* cursor: pointer; */
-}</style>
+}
+</style>

+ 319 - 0
src/views/system/solve/index.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          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-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:solve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:solve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:solve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:solve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="solveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:solve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:solve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改SOS预警处理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSolve, getSolve, delSolve, addSolve, updateSolve } from "@/api/system/solve";
+
+export default {
+  name: "Solve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // SOS预警处理表格数据
+      solveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询SOS预警处理列表 */
+    getList() {
+      this.loading = true;
+      listSolve(this.queryParams).then(response => {
+        this.solveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加SOS预警处理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改SOS预警处理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除SOS预警处理编号为"' + ids + '"的数据项?').then(function() {
+        return delSolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/solve/export', {
+        ...this.queryParams
+      }, `solve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 13 - 1
vue.config.js

@@ -40,10 +40,22 @@ module.exports = {
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''
         }
-      }
+      },
+      // '/api': {
+      //   target: 'https://app.tjzhxx.cn:4200',//设置你调用的接口域名和端口号
+      //   changeOrigin: true, //跨域这个必须是true因为是跨域
+      //   pathRewrite: {
+      //     '^/api': '/' //这里理解成用‘/api’代替target里面的地址,
+      //     //后面组件中我们调接口时直接用api代替
+      //     //比如我要调用
+      //     //'http://xxxx.xxx.xx.xxx:xxxx/xxx/aaa?a=1',
+      //     //直接写‘/api/xxx/aaa?a=1’即可
+      //   }
+      // },
     },
     disableHostCheck: true
   },
+
   css: {
     loaderOptions: {
       sass: {

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff