Browse Source

fix:全选和全不选功能

chenzhen2 1 năm trước cách đây
mục cha
commit
99f49d4209

+ 10 - 0
src/apis/envmonitor.ts

@@ -301,5 +301,15 @@ export const querySapceFloorHeating = (params: any) => {
   // return https().request<any>(`${testApi}ctrl/querySapceFloorHeating?${params}`, Method.GET, undefined, ContentType.json)
 }
 
+// 192.168.0.47:52015/padSpace/insertWorkSpaceBatch
+// 批量选中空间
+export const insertWorkSpaceBatch = (data: any) => {
+  return post(`${setupService}padSpace/insertWorkSpaceBatch`, data);
+}
+
+// 批量删除空间
+export const deleteWorkSpaceBatch = (data: any) => {
+  return post(`${setupService}padSpace/deleteWorkSpaceBatch`, data);
+}
 
 

+ 69 - 6
src/views/choiceSpace/choiceSpace.vue

@@ -55,7 +55,7 @@
       </template>
     </div>
     <div class="next-btn-box" v-if="spaceData && spaceData.length">
-      <!-- <div class="check-all">
+      <div class="check-all">
         <van-checkbox
           class="check-all-item"
           v-model="checkallStatus"
@@ -63,7 +63,7 @@
           shape="square"
         ></van-checkbox>
         <span>全选</span>
-      </div> -->
+      </div>
       <button :class="setAllStausFlag ? 'disabled-btn' : ''" @click="goNext">
         下一步
       </button>
@@ -103,7 +103,7 @@ import {
   toRefs,
 } from "vue";
 import { useRoute, useRouter, onBeforeRouteUpdate } from "vue-router";
-import { Search, TreeSelect, Popup, Checkbox, Toast } from "vant";
+import { Search, TreeSelect, Popup, Checkbox, Dialog, Toast } from "vant";
 import {
   getUserInfo,
   parseImgUrl,
@@ -115,11 +115,13 @@ import { UserMutationTypes } from "@/store/modules/user/mutation-types";
 import {
   checkWorkSpace,
   deleteWorkSpace,
+  deleteWorkSpaceBatch,
   getBuildingList,
   getDefaultLocation,
   getFloorList,
   getPadSpaceList,
   insertWorkSpace,
+  insertWorkSpaceBatch,
   queryWorkSpace,
   saveWorkSpace,
 } from "@/apis/envmonitor";
@@ -209,23 +211,83 @@ export default defineComponent({
       //  全选
       setAllStausFlag: false,
       checkallStatus: false,
+      // 批量选中空间
+      addWorkSpaceBatch(data: any) {
+        insertWorkSpaceBatch(data)
+          .then((res: any) => {
+            proxyData.setAllStausFlag = false;
+            proxyGlobal.proxy.$loadinngEnd();
+          })
+          .catch(() => {
+            proxyData.setAllStausFlag = false;
+            proxyGlobal.proxy.$loadinngEnd();
+          });
+      },
+      // 批量删除选中的空间
+      delWorkSpaceBatch(data: any) {
+        deleteWorkSpaceBatch(data)
+          .then((res: any) => {
+            proxyData.setAllStausFlag = false;
+            proxyGlobal.proxy.$loadinngEnd();
+          })
+          .catch(() => {
+            proxyData.setAllStausFlag = false;
+            proxyGlobal.proxy.$loadinngEnd();
+          });
+      },
+      // 设置全选的初始化值
+      setCheckallStatus() {
+        let flag: any = true;
+        proxyData.spaceData.map((item: any) => {
+          if (!item.checked) {
+            flag = false;
+          }
+        });
+        if (flag) {
+          proxyData.checkallStatus = true;
+        } else {
+          proxyData.checkallStatus = false;
+        }
+      },
       checkAll() {
         let data: any = [];
         proxyData.spaceData.map((item: any) => {
           let obj: any = {
             spaceId: item.spaceId,
-            isMajorSpace: 0,
+            isMajorSpace: item.isMajorSpace || 0,
             macAddress: proxyData.userInfo.mac,
           };
+          if (proxyData.checkallStatus) {
+            item.checked = true;
+          }
           data.push(obj);
         });
-        proxyGlobal.proxy.$loadingStart(0);
+
         proxyData.setAllStausFlag = true;
         if (proxyData.checkallStatus) {
           // 全选
-          console.log(proxyData.spaceData);
+          // console.log(data);
+          proxyGlobal.proxy.$loadingStart(0);
+          proxyData.addWorkSpaceBatch(data);
         } else {
           // 反选择
+          Dialog.confirm({
+            title: "确认",
+            confirmButtonColor: "#000000",
+            cancelButtonColor: "#4D5262",
+            message: `确定取消所有工作空间吗?`,
+          })
+            .then(() => {
+              proxyData.spaceData.map((item: any) => {
+                item.checked = false;
+              });
+              proxyGlobal.proxy.$loadingStart(0);
+              proxyData.delWorkSpaceBatch(data);
+            })
+            .catch(() => {
+              proxyData.setCheckallStatus();
+              proxyData.setAllStausFlag = false;
+            });
         }
       },
       showSpaceTypePounp() {
@@ -518,6 +580,7 @@ export default defineComponent({
           } else {
             proxyData.showSpace = false;
           }
+          proxyData.setCheckallStatus();
           // 设置页面默认的位置
           nextTick(() => {
             proxyData.setPageScroolTop();

+ 3 - 2
src/views/envmonitor/components/Light/index.vue

@@ -187,7 +187,8 @@ export default defineComponent({
       // 点击展示调色和调温弹窗
       showLightColorCtrol(item: any, e: any = null) {
         console.log(item);
-        if (item.switch) {
+
+        if (item.switch && (item.bright || item.colorTemperature)) {
           contx.emit("showLightColorCtrol", item);
         }
       },
@@ -316,7 +317,7 @@ export default defineComponent({
             let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime([
               item,
             ]);
-            debugger
+            debugger;
             if (proxyData.forceOverTimeFlag && item.switch && isExeSpaceTime) {
               // 强制加班开灯
               contx.emit("triggerWork", 3, item);