hcong
2024-11-20 d7932d42a9c4a08376d542dbff8301e7d985b787
src/views/fysp/check/ProCheck.vue
@@ -27,52 +27,42 @@
        v-loading="mainLoading"
      >
        <CompProblemCard
          v-if="compProblemCardVisible"
          :key="i"
          v-for="(p, i) in curProList"
          :index="i + 1"
          :problem="p"
          :subtask="curSubtask.data"
          :topTask="topTask"
          @updated="onProSubmited"
          @submit="updateSubtask"
        ></CompProblemCard>
      </el-scrollbar>
      <el-empty v-else description="暂无记录" v-loading="mainLoading" />
    </template>
  </BaseContentLayout>
  <el-dialog
    v-model="proAddOrUpdDialogVisible"
    :before-close="proAddOrUpdDialogClose"
    width="80%"
  <CompProblemAddOrUpd
    title="新增问题"
  >
    <CompProblemAddOrUpd
      v-if="proAddOrUpdDialogVisible"
      :subtask="curSubtask.data"
      :topTask="topTask"
      ref="compProblemAddOrUpdRef"
      @submited="newProSubmit"
    />
  </el-dialog>
    v-if="proAddOrUpdDialogVisible"
    v-model:visible="proAddOrUpdDialogVisible"
    :subtask="curSubtask.data"
    :topTask="topTask"
    ref="compProblemAddOrUpdRef"
    @cancel="onAddProCanceled"
    @submit="updateSubtask"
  />
  <ArbitraryPhoto
    v-if="anyPhotoDialog"
    v-model:dialog-visible="anyPhotoDialog"
    title="场景图片"
    :readonly="true"
    :subtask="curSubtask.data"
    ref="arbitraryPhotoRef"
  ></ArbitraryPhoto>
  <el-drawer
    direction="ltr"
    v-model="deviceShowDialog"
    :before-close="beforeDeviceShowDialogclose"
  <CompDeviceShowTest
    title="设施设备"
    size="45%"
    v-model:visible="deviceShowDialog"
    v-if="deviceShowDialog"
    ref="deviceShowRef"
  >
    <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef">
    </CompDeviceShowTest>
  </el-drawer>
  </CompDeviceShowTest>
</template>
<script>
@@ -93,7 +83,6 @@
  },
  data() {
    return {
      compProblemCardVisible: true,
      // 设备图
      deviceShowDialog: false,
      // 任意图
@@ -134,7 +123,7 @@
          click: () => {
            this.openDeviceShowDialog();
          }
        },
        }
        // {
        //   name: '批量审核',
        //   color: 'primary',
@@ -232,21 +221,6 @@
        this.$refs.deviceShowRef.init(this.curSubtask.data.scene);
      });
    },
    // 关闭设备图弹窗
    beforeDeviceShowDialogclose(done) {
      // this.deviceShowDialog = false;
      done();
    },
    // 关闭任意图片弹窗
    beforeAnyPhotoDialogclose() {
      this.anyPhotoDialog = false;
    },
    handleCloseCheckAnyPhono() {
      this.beforeAnyPhotoDialogclose();
    },
    proAddOrUpdDialogClose() {
      this.proAddOrUpdDialogVisible = false;
    },
    //查询子任务统计信息
    search(formSearch) {
      this.topTask = formSearch.topTask;
@@ -306,41 +280,44 @@
          this.mainLoading = false;
        });
    },
    onAddProCanceled() {
      this.proAddOrUpdDialogVisible = false;
    },
    // 问题卡片组件主动发起刷新父组件数据
    updateSubtask() {
    updateSubtask(refresh = false) {
      this.curSubtask.data.proCheckedNum++;
      this.curSubtask.type = this.getSubtaskType(this.curSubtask.data);
      this.refreshCurrSubtask();
    },
    onProSubmited(isOk) {
      this.proAddOrUpdDialogClose();
      if (!isOk) {
        return;
      if (this.proAddOrUpdDialogVisible) {
        this.proAddOrUpdDialogVisible = false;
      }
      this.updateSubtask();
    },
    newProSubmit(isOk) {
      this.proAddOrUpdDialogVisible = false;
      if (!isOk) {
        return;
      }
      this.refreshCurrSubtask();
      this.refreshCurrSubtask(refresh);
    },
    // 刷新当前选中子任务
    refreshCurrSubtask() {
      this.compProblemCardVisible = false;
    refreshCurrSubtask(refresh) {
      this.sideLoading = false;
      this.mainLoading = true;
      setTimeout(() => {
        taskApi
          .getProBySubtask(this.curSubtask.data.stGuid)
          .then((res) => {
            this.curProList = res;
            if (refresh) {
              this.curProList = res;
              return;
            }
            const currProLen = this.curProList.length;
            // 不改变数组对像引用的前提下重新赋值
            for (let index = 0; index < res.length; index++) {
              const element = res[index];
              if (currProLen < index + 1) {
                this.curProList.push(element);
              } else {
                this.curProList[index] = element;
              }
            }
            // this.curSubtask = s;
          })
          .finally(() => {
            this.mainLoading = false;
            this.compProblemCardVisible = true;
          });
      }, 150);
    }