ソースを参照

批量绑定设备

xiao547607 5 年 前
コミット
7a3755f132

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

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

+ 7 - 1
src/api/base/personDeviceRelation.js

@@ -46,9 +46,15 @@ function isUnbindDeviceList(formData) {
 }
 
 function batchBindDevice(formData) {
+  //多设备绑定人
   return request.post(constant.serverUrl + "/personDeviceRelation/batchBindDevice", formData);
 }
 
+function batchBindPerson(formData){
+  //多人员绑定设备
+  return request.post(constant.serverUrl + "/personDeviceRelation/batchBindPerson", formData);
+}
+
 function unbindDevice(formData) {
   return request.post(constant.serverUrl + "/personDeviceRelation/unbindDevice", formData);
 }
@@ -56,5 +62,5 @@ function unbindDevice(formData) {
 
 
 export default {
-  create, edit, add, update, remove, batchRemove, pageList, isUnbindDeviceList, batchBindDevice, unbindDevice
+  create, edit, add, update, remove, batchRemove, pageList, isUnbindDeviceList, batchBindDevice, unbindDevice,batchBindPerson
 }

+ 88 - 2
src/views/base/personInfo-list.vue

@@ -90,8 +90,16 @@
         plain
         icon="el-icon-circle-plus"
         :disabled="multipleSelection.length==0"
-        @click="dataSync"
+        @click="batchImportVisible = true"
       >数据同步</el-button>
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        :disabled="multipleSelection.length==0"
+        @click="batchBoundDevice = true"
+      >绑定设备</el-button>
     </el-row>
     <el-table
       :data="tableData"
@@ -282,6 +290,32 @@
       </div>
     </el-dialog>
     <!--批量导入E-->
+
+    <!-- 批量绑定设备 -->
+    <el-dialog
+      title="绑定设备"
+      :visible.sync="batchBoundDevice"
+      :modal-append-to-body="false"
+      style="text-align: left;"
+    >
+      <el-form label-width="150px">
+        <el-form-item label="设备">
+          <el-select v-model="boundDeviceId" filterable placeholder="请选择">
+            <el-option
+              v-for="devices in deviceResult"
+              :key="devices.id"
+              :label="devices.aliasName"
+              :value="devices.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="closeBatchBoundDevice">关 闭</el-button>
+        <el-button type="primary" @click="handleBatchBoundDevice">确 定</el-button>
+      </div>
+    </el-dialog>
+    <!-- 批量绑定设备end -->
   </div>
 </template>
 <script>
@@ -293,6 +327,8 @@ import PersonDeviceRelationBoundList from "./personDeviceRelation-BoundList";
 import personInfoApi from "@/api/base/personInfo";
 import companyInfoApi from "@/api/base/companyInfo";
 import companyPositionApi from "@/api/base/companyPosition";
+import deviceInfoApi from "@/api/base/deviceInfo";
+import personDeviceRelationApi from "@/api/base/personDeviceRelation";
 
 import { getToken } from "@/utils/auth"; // get token from cookie
 import NProgress from "nprogress"; // progress bar
@@ -343,7 +379,10 @@ export default {
       showDeviceModal: false,
       showBoundModal: false,
       personId: "",
-      uploadSync: []
+      uploadSync: [],
+      batchBoundDevice: false,
+      deviceResult: "",
+      boundDeviceId: ""
     };
   },
   created() {
@@ -660,6 +699,46 @@ export default {
           }
         });
       });
+    },
+    handleBatchBoundDevice() {
+      //批量同步人脸
+      var self = this;
+      self.loading = true;
+
+      let boundDeviceId = self.boundDeviceId;
+
+      var idList = this.multipleSelection.map(record => {
+        return record.id;
+      });
+      var formData = new FormData();
+
+      formData.append("persons", idList);
+      formData.append("deviceId", boundDeviceId);
+      personDeviceRelationApi
+        .batchBindPerson(formData)
+        .then(function(response) {
+          var jsonData = response.data;
+          self.loading = false;
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+            self.batchBoundDevice = false;
+            self.boundDeviceId = "";
+            self.$message({
+              type: "success",
+              message: "绑定成功!"
+            });
+          } else {
+            self.$message({
+              type: "warning",
+              message: jsonData.message
+            });
+          }
+        });
+    },
+    closeBatchBoundDevice() {
+      var self = this;
+      self.batchBoundDevice = false;
+      self.boundDeviceId = "";
     }
   },
   async mounted() {
@@ -672,6 +751,13 @@ export default {
         self.companyResult = jsonData.data;
       }
     });
+
+    deviceInfoApi.list().then(function(response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        self.deviceResult = jsonData.data;
+      }
+    });
   },
   components: {
     "personInfo-detail": PersonInfoDetail,