Browse Source

增加批量同步用户照片到设备功能。

zhengqiang 4 years ago
parent
commit
0dabe6cdb6

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

@@ -70,6 +70,10 @@ function bindDevice(formData) {
   return request.post(constant.serverUrl + "/base/companyInfo/bindDevice", formData);
 }
 
+function syncDevice(formData) {
+  return request.post(constant.serverUrl + "/base/companyInfo/syncDevice", formData);
+}
+
 function unbindDevice(formData) {
   return request.post(constant.serverUrl + "/base/companyInfo/unbindDevice", formData);
 }
@@ -86,5 +90,5 @@ function isOpenMobilePayment(formData) {
 
 export default {
   list, create, edit, add, update, remove, batchRemove, pageList, queryBindDeviceList,
-  bindDevice, unbindDevice,loadChildren,treeList,isOpenMobilePayment
+  bindDevice, unbindDevice,loadChildren,treeList,isOpenMobilePayment,syncDevice
 }

+ 46 - 5
src/views/base/companyDeviceRelation-list.vue

@@ -1,13 +1,13 @@
 <template>
   <el-dialog
     :visible.sync="showDialog"
-    title="查看设备"
+    :title="title"
     append-to-body
     :modal="true"
     style="text-align:left;"
     @close="closeDialog"
     :close-on-click-modal="false"
-    width="60%"
+    width="1000px"
   >
     <div>
       <!--
@@ -68,6 +68,10 @@
             </span>
             <span v-else>
               <el-button size="mini" type="danger" @click="handleUnBound(row)">解除绑定</el-button>
+              &nbsp;
+              <el-button size="mini" type="primary" @click="handleSyncDevice(row,'all')">同步(所有人)</el-button>
+              &nbsp;
+              <el-button size="mini" type="primary" @click="handleSyncDevice(row,'bind')">同步(已绑定)</el-button>
             </span>
           </template>
         </el-table-column>
@@ -94,12 +98,11 @@ import Constant from "@/constant";
 import PersonDeviceRelationDetail from "./personDeviceRelation-detail";
 import personDeviceRelationApi from "@/api/base/personDeviceRelation";
 import companyInfoApi from "@/api/base/companyInfo";
-
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
-  props: ["companyId"],
+  props: ["title","companyId"],
   data() {
     var self = this;
 
@@ -226,7 +229,7 @@ export default {
         }
       });
     },
-    handleBound(record) {
+    handleBound(record,mode) {
       //绑定设备
       var self = this;
 
@@ -239,8 +242,11 @@ export default {
         if (result) {
           self.loading = true;
           var formData = new FormData();
+          
           formData.append("companyId", self.companyId);
           formData.append("deviceIds", record.id);
+          formData.append("mode", mode);
+
           return companyInfoApi.bindDevice(formData).then(function(response) {
             self.loading = false;
 
@@ -275,6 +281,7 @@ export default {
         var formData = new FormData();
         formData.append("companyId", self.companyId);
         formData.append("deviceIds", record.id);
+
         return companyInfoApi.unbindDevice(formData).then(function(response) {
           self.loading = false;
           var jsonData = response.data;
@@ -293,6 +300,40 @@ export default {
         });
       });
     },
+    handleSyncDevice(record,mode){
+      //同步照片
+      var self = this;
+
+      this.$confirm("是否将单位下人员照片同步到设备?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+        distinguishCancelAndClose: true
+      }).then(() => {
+        self.loading = true;
+        var formData = new FormData();
+        formData.append("companyId", self.companyId);
+        formData.append("deviceId", record.id);
+        formData.append("mode", mode);
+        
+        return companyInfoApi.syncDevice(formData).then(function(response) {
+          self.loading = false;
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.$message({
+              message: "已下发同步任务" + jsonData.data  + "个,请查看同步队列!",
+              type: "success"
+            });
+          } else {
+            self.$message({
+              message: jsonData.message + "",
+              type: "warning"
+            });
+          }
+        });
+      });
+    },
     onDetailModalClose(refreshed) {
       //保存成功后回调
       this.showModal = false;

+ 4 - 3
src/views/base/companyInfo-list.vue

@@ -271,6 +271,7 @@
       @close="onDetailModalClose"
     ></companyInfo-detail>
     <companyDeviceRelation-list
+      :title="deviceRelationTitle"
       v-if="showDeviceModal"
       :companyId="companyId"
       @close="onDetailModalClose"
@@ -392,7 +393,8 @@ export default {
       },
       xlsLoading: false,
       sceneData: [],
-      typeData:[]
+      typeData:[],
+      deviceRelationTitle: ""
     };
   },
   created() {
@@ -599,6 +601,7 @@ export default {
     bindDevice(record) {
       //绑定设备
       this.companyId = record.id;
+      this.deviceRelationTitle = record.name + "关联设备列表";
       this.showDeviceModal = true;
     },
     openQRCode(record) {
@@ -724,9 +727,7 @@ export default {
         } 个文件`
       );
     },
-
     handlChange(record){
-
       var self = this;
       var formData = new FormData();
       self.loading = true;