DeviceProfileStep3.vue 3.76 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 !getIsEchoEditStatus ? alarmsData : echoEditData"
          :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: -41.6vw">
            <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: 47vh;
              border: 1px solid grey;
              overflow-y: scroll;
            "
          >
            <CommonCpns
              ref="commonCpnsRef"
              :step3FatherEmitCpnData="!getIsEchoEditStatus ? 1 : item"
              :step3FatherEmitCpnStatus="
                !getIsEchoEditStatus ? !getIsEchoEditStatus : getIsEchoEditStatus
              "
            />
          </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 echoEditData: any = ref([]);
      const getIsEchoEditStatus = ref(false);
      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) => {
        console.log(e);
        let delI = i;
        alarmsData.value.splice(delI, 1);
      };
      /**
       * 清空数据
       */
      const clearStep3DataFunc = () => {
        try {
          alarmsData.value.length = 0;
          profileData = {};
          proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc();
        } catch {}
      };
      /**
       * 回显数据
       */
      const echoStep3DataFunc = (e, s) => {
        try {
          getIsEchoEditStatus.value = s;
          if (getIsEchoEditStatus.value === true) {
            echoEditData.value = e;
          }
        } catch {}
      };

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

<style lang="less" scoped>
  ::-webkit-scrollbar {
    display: none;
  }
</style>