DeviceProfileStep3.vue 2.72 KB
<template>
  <div>
    <div>
      <div v-if="alarmsData.length === 0" style="text-align: center">
        <p style="font-size: large">未配置报警规则</p>
      </div>
      <div>
        <template v-for="(item, index) in alarmsData" :key="index">
          <span style="display: none">{{ item }}</span>
          <span style="display: none">{{ index }}</span>
          <div class="cursor-pointer" style="position: relative; top: 3.5vh; right: -40.8vw">
            <img
              style="cursor: pointer"
              @click="removeAlarmRule(index, item)"
              alt="移除"
              src="../../../../assets/images/delete.png"
            />
          </div>
          <div
            style="
              margin-left: 0.21vw;
              border-radius: 4px;
              width: 44vw;
              height: 46vh;
              border: 1px solid grey;
              overflow-y: scroll;
            "
          >
            <CommonCpns ref="commonCpnsRef" />
          </div>
        </template>
      </div>
    </div>
    <!-- 按钮 -->
    <div style="margin-left: 14.5vw; margin-top: 2vh">
      <a-button class="mr-5" @click="prevStepFunc">上一步</a-button>
      <a-button @click="nextStepFunc">下一步</a-button>
      <a-button style="margin-left: 20px" type="primary" @click="clickAddAlaramRuleFunc"
        >添加报警规则</a-button
      >
    </div>
    <!-- 按钮 -->
  </div>
</template>

<script lang="ts">
  import { defineComponent, ref, getCurrentInstance, reactive } from 'vue';
  import CommonCpns from './common/index.vue';

  export default defineComponent({
    components: {
      CommonCpns,
    },
    emits: ['next', 'prev'],
    setup(_, { emit }) {
      const { proxy } = getCurrentInstance() as any;
      const commonCpnsRef = ref(null);
      const alarmsData: any = ref([]);
      let profileData: any = reactive({});
      const prevStepFunc = () => {
        emit('prev');
      };
      const nextStepFunc = async () => {
        profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
        alarmsData.value.push(profileData);
        alarmsData.value.shift();
        emit('next', {
          alarms: alarmsData.value,
        });
      };
      const clickAddAlaramRuleFunc = async () => {
        profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
        alarmsData.value.push(profileData);
      };
      const removeAlarmRule = (i, e) => {
        let delI = i;
        alarmsData.value.splice(alarmsData.value.indexOf(e), 1);
      };

      return {
        clickAddAlaramRuleFunc,
        prevStepFunc,
        nextStepFunc,
        alarmsData,
        removeAlarmRule,
        commonCpnsRef,
      };
    },
  });
</script>

<style lang="less" scoped></style>