浏览代码

设备验证规则

xiao547607 5 年之前
父节点
当前提交
ead03a7dca
共有 3 个文件被更改,包括 245 次插入9 次删除
  1. 2 2
      .env.development
  2. 10 1
      src/api/base/deviceInfo.js
  3. 233 6
      src/views/base/deviceInfo-list.vue

+ 2 - 2
.env.development

@@ -1,5 +1,5 @@
-VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
-#VUE_APP_BACKEND_URL=http://127.0.0.1:8086/smart-community-server
+#VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
+VUE_APP_BACKEND_URL=http://127.0.0.1:8086/smart-community-server
 #VUE_APP_BACKEND_URL=http://192.168.33.26:8080/smart-community-server
 #VUE_APP_BACKEND_URL=http://zldb.xiaoxinda.com:8088/smart-community-server
 #VUE_APP_BACKEND_URL=http://kr6zr7.natappfree.cc/smart-community-server/

+ 10 - 1
src/api/base/deviceInfo.js

@@ -49,6 +49,15 @@ function list() {
   return request.post(constant.serverUrl + "/base/deviceInfo/list");
 }
 
+function getDeviceRule(formData) {
+  return request.post(constant.serverUrl + "/base/deviceInfo/getDeviceRule", formData);
+}
+
+function saveDeviceRule(formData) {
+  return request.post(constant.serverUrl + "/base/deviceInfo/saveDeviceRule", formData);
+}
+
 export default {
-  create, edit, add, update, remove, batchRemove, pageList, getByIpAddressAndPort,list
+  create, edit, add, update, remove, batchRemove, pageList, getByIpAddressAndPort, list,
+  getDeviceRule, saveDeviceRule
 }

+ 233 - 6
src/views/base/deviceInfo-list.vue

@@ -94,13 +94,22 @@
       <!-- <el-table-column prop="unlockPassword" label="开锁密码" width="150"></el-table-column>
       <el-table-column prop="codeAddress" label="二维码地址" width="180"></el-table-column>-->
       <el-table-column prop="typeN" label="类型" width="80"></el-table-column>
-      <el-table-column label="操作" width="150">
+      <el-table-column label="操作" width="250">
         <template slot-scope="{row}">
-          <el-button size="mini" type="warning" @click="handleEdit(row)">编辑</el-button>
-          <!-- <el-button size="mini" type="primary" @click="handleRestart(row)">重启</el-button>
+          <el-row>
+            <el-col :span="6">
+              <el-link type="primary" @click="handleEdit(row)">编辑</el-link>
+            </el-col>
+            <el-col :span="6">
+              <!-- <el-button size="mini" type="primary" @click="handleRestart(row)">重启</el-button>
           <el-button size="mini" type="primary" @click="handleClear(row)">清除人脸数据</el-button>
-          <el-button size="mini" type="primary" @click="handleQRcode(row)">二维码地址</el-button>-->
-          <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
+              <el-button size="mini" type="primary" @click="handleQRcode(row)">二维码地址</el-button>-->
+              <el-link type="danger" @click="handleDelete(row)">删除</el-link>
+            </el-col>
+            <el-col :span="6">
+              <el-link type="primary" @click="handleEditRule(row)">验证规则</el-link>
+            </el-col>
+          </el-row>
         </template>
       </el-table-column>
     </el-table>
@@ -120,6 +129,131 @@
       :companyResult="companyResult"
       @close="onDetailModalClose"
     ></deviceInfo-detail>
+    <!-------------设备验证规则start------------------>
+    <el-dialog
+      title="设备验证规则"
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      append-to-body
+      width="30%"
+    >
+      <el-form
+        :model="ruleModel"
+        ref="ruleForm"
+        :rules="ruleValidate"
+        inline
+        :label-width="'100px'"
+        style="text-align:left;"
+      >
+        <el-row>
+          <el-col>
+            <el-form-item label="安全帽">
+              <el-radio-group v-model="ruleModel.needCap">
+                <el-radio :label="1">是</el-radio>
+                <el-radio :label="0">否</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="口罩">
+              <el-radio-group v-model="ruleModel.needMask">
+                <el-radio :label="1">是</el-radio>
+                <el-radio :label="0">否</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="测温">
+              <el-radio-group v-model="ruleModel.measureTemperature">
+                <el-radio :label="1">是</el-radio>
+                <el-radio :label="0">否</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row v-if="ruleModel.measureTemperature == 1">
+          <el-row>
+            <el-col>
+              <el-form-item label="位置">
+                <el-radio-group v-model="ruleModel.type">
+                  <el-radio :label="0">额头</el-radio>
+                  <el-radio :label="1">手腕</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col>
+              <el-form-item label="最低温度" prop="minimum">
+                <el-input-number
+                  v-model="ruleModel.minimum"
+                  placeholder="请输入最低温度"
+                  :precision="2"
+                  :step="0.1"
+                  :max="45"
+                  :min="30"
+                  style="width:200px"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col>
+              <el-form-item label="最高温度" prop="maximum">
+                <el-input-number
+                  v-model="ruleModel.maximum"
+                  placeholder="请输入最高温度"
+                  :precision="2"
+                  :step="0.1"
+                  :max="45"
+                  :min="30"
+                  style="width:200px"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col>
+              <el-form-item label="温度误差" prop="preAlarmOffset">
+                <el-input-number
+                  v-model="ruleModel.preAlarmOffset"
+                  placeholder="请输入温度误差"
+                  :precision="2"
+                  :step="0.1"
+                  :max="1"
+                  :min="0.1"
+                  style="width:200px"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col>
+              <el-form-item label="报警温度" prop="alarmThreshold">
+                <el-input-number
+                  v-model="ruleModel.alarmThreshold"
+                  placeholder="请输入报警温度"
+                  :precision="2"
+                  :step="0.1"
+                  :max="45"
+                  :min="30"
+                  style="width:200px"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="saveDeviceRule">确 定</el-button>
+      </span>
+    </el-dialog>
+    <!-------------设备验证规则end------------------>
   </div>
 </template>
 <script>
@@ -137,6 +271,13 @@ export default {
     var self = this;
 
     return {
+      ruleValidate: {
+        minimum: [{ required: true, message: "不能为空", trigger: "blur" }],
+        maximum: [{ required: true, message: "不能为空", trigger: "blur" }],
+        alarmThreshold: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ]
+      },
       queryModel: {
         deviceNo: "",
         aliasName: "",
@@ -157,7 +298,21 @@ export default {
       businessKey: "",
       typeData: [],
       companyResult: "",
-      tableHeight: ""
+      tableHeight: "",
+      dialogVisible: false,
+      ruleDeviceId: "",
+      // ruleList: [],
+      // temperatureRule: "",
+      ruleModel: {
+        needCap: "",
+        needMask: "",
+        measureTemperature: "",
+        type: "",
+        minimum: "",
+        maximum: "",
+        preAlarmOffset: "",
+        alarmThreshold: ""
+      }
     };
   },
   created() {
@@ -303,6 +458,78 @@ export default {
     },
     handleQRcode(record) {
       //二维码地址
+    },
+    handleEditRule(record) {
+      var self = this;
+      self.loading = true;
+      var formData = new FormData();
+      formData.append("deviceId", record.id);
+      self.ruleDeviceId = record.id;
+      deviceInfoApi.getDeviceRule(formData).then(function(response) {
+        var jsonData = response.data;
+        if (jsonData.result) {
+          self.loading = false;
+          self.dialogVisible = true;
+          console.log(jsonData.data);
+          //开关列表
+          var ruleList = jsonData.data.RuleList;
+          ruleList.forEach((item, index) => {
+            if (item.Mode == "1") {
+              self.ruleModel.needCap = item.Enabled;
+            } else if (item.Mode == "2") {
+              self.ruleModel.needMask = item.Enabled;
+            } else if (item.Mode == "3") {
+              self.ruleModel.measureTemperature = item.Enabled;
+            }
+          });
+          //获取温度设置列表
+          var temperatureRule = jsonData.data.TemperatureRule;
+          self.ruleModel.type = temperatureRule.Type;
+          self.ruleModel.minimum = temperatureRule.Minimum;
+          self.ruleModel.maximum = temperatureRule.Maximum;
+          self.ruleModel.preAlarmOffset = temperatureRule.PreAlarmOffset;
+          self.ruleModel.alarmThreshold = temperatureRule.AlarmThreshold;
+        } else {
+          self.loading = false;
+          self.$alert(jsonData.message, "提示", {
+            confirmButtonText: "确定"
+          });
+        }
+      });
+    },
+    saveDeviceRule() {
+      var self = this;
+      this.$refs["ruleForm"].validate(valid => {
+        if (valid) {
+          var formData = new FormData();
+          formData.append("deviceInfoId", self.ruleDeviceId);
+          formData.append("needCap", self.ruleModel.needCap);
+          formData.append("needMask", self.ruleModel.needMask);
+          formData.append(
+            "measureTemperature",
+            self.ruleModel.measureTemperature
+          );
+          formData.append("type", self.ruleModel.type);
+          formData.append("minTemper", self.ruleModel.minimum);
+          formData.append("maxTemper", self.ruleModel.maximum);
+          formData.append("alarmThreshold", self.ruleModel.alarmThreshold);
+          deviceInfoApi.saveDeviceRule(formData).then(function(response) {
+            var jsonData = response.data;
+            if (jsonData.result) {
+              self.$message({
+                type: "success",
+                message: "成功"
+              });
+              self.dialogVisible = false;
+            } else {
+              self.$message({
+                type: "success",
+                message: jsonData.message
+              });
+            }
+          });
+        }
+      });
     }
   },
   mounted: function() {