浏览代码

题目一

pengyu 4 月之前
父节点
当前提交
1a5a542833

+ 39 - 3
src/components/common-comp-alarm-list/src/components/AlarmList.vue

@@ -125,6 +125,7 @@
                     alarmDetailFromMe && item.orderId === checkAlarmId
                 }"
                 @alarmInfoFn="alarmInfoFn"
+                @handleItemSelectChange="handleItemSelectChange"
                 @getRightAlarmList="getRightAlarmList(isScrollPagination)"
               />
             </div>
@@ -151,6 +152,7 @@
                     alarmDetailFromMe && item.orderId === checkAlarmId
                 }"
                 @alarmInfoFn="alarmInfoFn"
+                @handleItemSelectChange="handleItemSelectChange"
                 @getRightAlarmList="getRightAlarmList(isScrollPagination)"
               />
             </div>
@@ -213,6 +215,9 @@
           v-c-tip="'更多'"
           @click="goEventManage"
         ></div>
+        <div class="page-number">
+          已选择{{selectedItems.size}}条
+        </div>
       </div>
     </div>
   </div>
@@ -446,7 +451,7 @@ export default {
 
 
         ], //  表格显示数据
-        total: 0, // 数据总数
+        total: 11, // 数据总数
         isMap: false // 点地图告警查询的
       },
       showPagination: false, // 是否右侧告警显示页码
@@ -530,6 +535,7 @@ export default {
     },
     // 处理全选/取消全选
     handleSelectAllChange() {
+
       const isChecked = !this.isAllSelected; // 切换当前状态
 
       if (isChecked) {
@@ -547,13 +553,26 @@ export default {
           this.$set(item, 'selected', false);
         });
       }
-
       // 更新全选状态
       this.isAllSelected = isChecked;
 
       // 触发选择变化事件
       this.$emit('selection-change', Array.from(this.selectedItems));
     },
+    // 处理单个项目的选中状态变化
+    handleItemSelectChange(payload) {
+      const { item, selected } = payload;
+      if (selected) {
+        this.selectedItems.add(item.orderId);
+        this.$set(item, 'selected', true);
+      } else {
+        this.selectedItems.delete(item.orderId);
+        this.$set(item, 'selected', false);
+      }
+
+      // 触发选择变化事件
+      this.$emit('selection-change', Array.from(this.selectedItems));
+    },
     popupStatusChange(payload) {
       if (!payload?.opened) {
         this.checkAlarmId = ''
@@ -807,7 +826,7 @@ export default {
       this.keywordValueForHighLight = params.keyword
       try {
         const resp = await getOrderList(params)
-        _this.rightTableParam.total = 1
+        _this.rightTableParam.total = 11
           _this.rightTableParam.tableDatas.push(
               {
                 orderId: 'ALM20230719001',
@@ -985,6 +1004,23 @@ export default {
                   { lableName: '通信相关' },
                   { lableName: '业务影响' }
                 ]
+              },{
+                orderId: 'ALM20230719004',
+                warningSourceName: '动力监控系统',
+                alarmBody: 'UPS故障告警,UPS设备离线',
+                address: '绍兴市越城区解放路235号机房',
+                alarmTime: '2023-07-19 10:45:33',
+                showTime: '超时3小时',
+                isCollection: '1',
+                orderStatus: '5',
+                enableAcceptanceMode: '0',
+                fileImgUrlIcon: '',
+                imgUrl: '',
+                alarmLableRelDTOList: [
+                  { lableName: '重要' },
+                  { lableName: '电力相关' },
+                  { lableName: '设备故障' }
+                ]
               }
           )
         _this.showPagination = true

+ 3 - 2
src/components/common-comp-alarm-list/src/components/AlarmListItem.vue

@@ -3,7 +3,7 @@
   <div>
     <div class="eventListItem" @contextmenu="disableRightClick">
       <!-- 添加多选框 -->
-      <div v-show="showSelectAll" :style="{ marginRight: pxToRem(8), display: 'flex', alignItems: 'center' }">
+      <div v-show="showSelectAll" :style="{ marginRight: pxToRem(3), display: 'flex', alignItems: 'center' }">
         <input
             type="checkbox"
             :checked="item.selected"
@@ -223,7 +223,8 @@ export default {
     // 添加处理选择变化的方法
     handleSelectChange(event) {
       const selected = event.target.checked;
-      this.$emit('select-change', {
+      // 将选中状态变化传递给父组件
+      this.$emit('handleItemSelectChange', {
         item: this.item,
         selected: selected
       });