he wei
2024-11-06 32250f9a1db456b706e52ffb2664d738a2650678
src/views/test/testBatch.vue
@@ -5,8 +5,12 @@
import paramContent from "./paramContent.vue";
import jhParamContent from "./jhParamContent.vue";
import { useRoute, useRouter } from "vue-router";
import battCountContent from "./battCountContent.vue";
import { cancelContPl, controllerActmParam } from "./api.js";
import { cancelContPl, controllerActmParam, stopA200ParamPl, pauseA200ParamPl } from "./api.js";
import useElement from "@/hooks/useElement.js";
const { $alert, $loading, $message, $confirm } = useElement();
import useDevsRt from "@/hooks/useDevsRt";
const { list: devList } = useDevsRt();
@@ -17,6 +21,7 @@
const keyWord = ref("");
const testVisible = ref(false);
const testGroupIdx = ref();
const jhyBattCountVisible = ref(false);
const list = reactive({
  // 总的选中
@@ -167,6 +172,43 @@
  testVisible.value = true;
}
function stopTest(groupIdx) {
  let devIds = devs.value.map((v) => v.devId);
  let loading = $loading();
  stopA200ParamPl(devIds)
    .then((res) => {
      let { code, data, data2 } = res.data;
      loading.close();
      let failList = [];
      let successList = [];
      Object.keys(data2).forEach((v) => {
        if (200 == data2[v].code) {
          successList.push(v);
        } else {
          failList.push(v);
        }
      });
      if (code && data && successList.length) {
        $message.success("操作成功");
        if (failList.length) {
          let failNames = devs.value
            .filter((v) => failList.some((vv) => vv == v.devId))
            .map((v) => v.devIdcode);
          $alert(`操作失败的设备列表:${failNames.join(", ")}。`);
        }
        close();
      } else {
        $message.error("操作失败");
      }
    })
    .catch((err) => {
      loading.close();
      $message.error("操作失败");
      console.log(err);
    });
}
function controlTest(groupIdx, ctrlType) {
  //  * 2暂停 * 3继续 * 4 停止
  let loading = $loading();
@@ -188,13 +230,53 @@
    });
}
onMounted(() => {
  filterList();
});
function setBattCount() {
  jhyBattCountVisible.value = true;
}
function pauseYtj(type) {
  let devIds = devs.value.map((v) => v.devId);
  let loading = $loading();
  pauseA200ParamPl(devIds, type)
    .then((res) => {
      let { code, data, data2 } = res.data;
      loading.close();
      let failList = [];
      let successList = [];
      Object.keys(data2).forEach((v) => {
        if (200 == data2[v].code) {
          successList.push(v);
        } else {
          failList.push(v);
        }
      });
      if (code && data && successList.length) {
        $message.success("操作成功");
        if (failList.length) {
          let failNames = devs.value
            .filter((v) => failList.some((vv) => vv == v.devId))
            .map((v) => v.devIdcode);
          $alert(`操作失败的设备列表:${failNames.join(", ")}。`);
        }
        close();
      } else {
        $message.error("操作失败");
      }
    })
    .catch((err) => {
      loading.close();
      $message.error("操作失败");
      console.log(err);
    });
}
onMounted(() => {});
onActivated(() => {
  if ($route.query.devType) {
    devType.value = $route.query.devType;
    devType.value = $route.query.devType * 1;
  }
  filterList();
});
</script>
@@ -221,7 +303,7 @@
          size="default"
          is-button
        >
          <el-radio-button :value="1">充放电一体机</el-radio-button>
          <el-radio-button :value="1">充放电测试仪</el-radio-button>
          <el-radio-button :value="2">均衡测试仪</el-radio-button>
        </el-radio-group>
      </div>
@@ -275,8 +357,27 @@
            @click="test"
            >启动测试</el-button
          >
          <el-button size="small" class="btn-start" @click="pauseYtj(1)"
            >暂停测试</el-button
          >
          <el-button size="small" class="btn-start" @click="pauseYtj(2)"
            >继续测试</el-button
          >
          <el-button
            size="small"
            :disabled="!selectData[devType].length"
            class="btn-start"
            @click="stopTest"
            >停止测试</el-button
          >
        </template>
        <template v-else>
          <el-button
            size="small"
            class="btn-start btn-grp1"
            @click="setBattCount"
            >设置组数</el-button
          >
          <el-button
            size="small"
            v-if="canStopBatch[2]"
@@ -361,12 +462,12 @@
      <div class="card-content">
        <div class="label">设备类型</div>
        <div class="value">
          {{ { 1: "充放电一体机", 2: "均衡测试仪" }[devType] }}
          {{ { 1: "充放电测试仪", 2: "均衡测试仪" }[devType] }}
        </div>
        <div class="label">已选择设备总数量</div>
        <div class="value">{{ selectData[devType].length }}</div>
        <div class="label">批量测试状态</div>
        <div class="value">未开始</div>
        <!-- <div class="label">批量测试状态</div>
        <div class="value">未开始</div> -->
      </div>
    </yc-card>
    <yc-card class="p-content">
@@ -376,6 +477,7 @@
            v-for="dev in selectData[devType]"
            :key="dev.devId"
            @click="goDetails(dev)"
            :info="dev"
            :devIdcode="dev.devIdcode"
            :onLine="!!dev.devOnline"
            :devType="dev.devType"
@@ -411,6 +513,22 @@
        ></jh-param-content>
      </template>
    </el-dialog>
    <!-- 设置均衡仪组数 -->
    <el-dialog
      title="设置均衡仪电池组数"
      v-model="jhyBattCountVisible"
      :close-on-click-modal="false"
      class="dialog-center"
      width="600px"
      center
    >
      <batt-count-content
        v-model="jhyBattCountVisible"
        v-if="jhyBattCountVisible"
        :isBatch="true"
        :devs="devs"
      ></batt-count-content>
    </el-dialog>
  </div>
</template>
@@ -425,7 +543,7 @@
  .p-left {
    grid-row-start: span 2;
    background: #1a585d;
    background: radial-gradient(#1a585d10, #1a585d80);
    display: flex;
    flex-direction: column;
    .filter {
@@ -545,7 +663,7 @@
    .card-content {
      height: 100%;
      // padding: 0 400px 0 20px;
      padding: 0 320px 0 20px;
      padding: 0 414px 0 20px;
      display: grid;
      // grid-template-columns: repeat(3, 10em 1fr);
      grid-template-columns: 5em 1fr 9em 1fr 8em 2fr;
@@ -590,6 +708,9 @@
  .control-group {
    margin-top: 8px;
    margin-right: 8px;
    &.grp1 {
      margin-left: 8px;
    }
    cursor: pointer;
    & > :deep(span) {
      color: #000;