<template>
  <span :id="id" class="button-control" :style="{
      opacity:
        field.textType ||
        field.displayType == Constant.PermissionType_READONLY ||
        field.displayType == Constant.PermissionType_DISABLED
          ? '0.65'
          : '',
    }">
    <template v-if="
        field.displayType == Constant.PermissionType_HIDDEN ||
        field.textType == 'hidden'
      ">
      <span>{{ field.hiddenValue }}</span>
    </template>
    <!--鍙-->
    <template v-else-if="
        field.textType == 'readonly' ||
        field.displayType == Constant.PermissionType_READONLY ||
        field.displayType == Constant.PermissionType_DISABLED
      ">
      <template v-if="field.readOnlyShowValOnly">
        <a :style="{
            'pointer-events': 'none',
            'background-color': field.activity.colorType
              ? field.activity.colorType
              : '',
          }" disabled :title="field.title" :class="[
            'vbtn btn btn-success obpm-success',
            'btnStyle-' + field.activity.type,
            'btnState-' + field.activity.colorType,
          ]">
          <i :class="[field.btn ? field.btn.btnIcon : '']"></i>
          {{ field.title ? field.title : field.value }}
        </a>
      </template>
      <template v-else> </template>
    </template>

    <!-- 鍙紪杈� -->
    <template v-else-if="field.displayType == Constant.PermissionType_MODIFY">
      <a :style="{
          'background-color': field.activity.colorType
            ? field.activity.colorType
            : '',
        }" :title="field.title" @click="checkValue" :class="[
          'vbtn btn btn-success obpm-success',
          'btnStyle-' + field.activity.type,
          'btnState-' + field.activity.colorType,
        ]">
        <i :class="[field.btn ? field.btn.btnIcon : '']"></i>
        {{ field.title ? field.title : field.value }}
        <!-- {{field}} -->
      </a>
    </template>
  </span>
</template>

<script>
import Constant from "@/Constant.js";
import controlHidden from "@/assets/js/controlHidden.js";
export default {
  name: "o-button",
  props: ["id"],
  computed: {
    field: function () {
      let formData = this.$parent.findField(this.id);
      let data = {};
      switch (formData.activity.type) {
        case 1: //杞藉叆瑙嗗浘
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 2: //鍒涘缓
          data = {
            btnIcon: "createBtnicon",
          };
          formData.btn = data;
          return formData;
        case 3: //鍒犻櫎
          data = {
            btnIcon: "deleteBtnicon",
          };
          formData.btn = data;
          return formData;
        case 4: //淇濆瓨骞跺惎鍔ㄦ祦绋�
          break;
        case 5: //娴佺▼澶勭悊
          data = {
            btnIcon: "submitflowicon",
          };
          formData.btn = data;
          return formData;
        case 8: //鍏抽棴绐楀彛
          data = {
            btnIcon: "closeWindowBtnicon",
          };
          formData.btn = data;
          return formData;
        case 10: //杩斿洖
          data = {
            btnIcon: "backBtnicon",
            fc: "#000",
          };
          formData.btn = data;
          return formData;
        case 11: //淇濆瓨骞惰繑鍥�
          data = {
            btnIcon: "saveBackBtnicon",
          };
          formData.btn = data;
          return formData;
        case 13: //鏃�
          data = {
            btnIcon: "noneBtnicon",
            fc: "#000",
          };
          formData.btn = data;
          return formData;
        case 14: //缃戦〉鎵撳嵃(琛ㄥ崟)
          data = {
            btnIcon: "htmlPrintBtnicon",
          };
          formData.btn = data;
          return formData;
        case 15: //缃戦〉鎵撳嵃鍚巻鍙�
          data = {
            btnIcon: "htmlPrintWithHisBtnicon",
          };
          formData.btn = data;
          return formData;
        case 16: //瀵煎嚭excel
          data = {
            btnIcon: "exportToExcelBtnicon",
          };
          formData.btn = data;
          return formData;
        case 19: //淇濆瓨鑽夌ǹ涓嶆牎妫€
          data = {
            btnIcon: "saveWithoutValidateBtnicon",
          };
          formData.btn = data;
          return formData;
        case 18: //娓呯┖鎵€鏈夋暟鎹�
          data = {
            btnIcon: "clearAllBtnicon",
          };
          formData.btn = data;
          return formData;
        case 20: //鎵归噺鎻愪氦
          data = {
            btnIcon: "batchApproveBtnicon",
          };
          formData.btn = data;
          return formData;
        case 21: //淇濆瓨骞跺鍒�
          data = {
            btnIcon: "saveCopyBtnicon",
          };
          formData.btn = data;
          return formData;
        case 25: //PDF瀵煎嚭
          data = {
            btnIcon: "exportToPdfBtnicon",
          };
          formData.btn = data;
          return formData;
        case 26: //鏂囦欢涓嬭浇
          data = {
            btnIcon: "fileDownloadBtnicon",
          };
          formData.btn = data;
          return formData;
        case 27: //瀵煎叆excel
          data = {
            btnIcon: "excelImportBtnicon",
          };
          formData.btn = data;
          return formData;
        case 28: //鐢靛瓙绛剧珷
          data = {
            btnIcon: "signatureBtnicon",
          };
          formData.btn = data;
          return formData;
        case 29: //鎵归噺绛剧珷
          data = {
            btnIcon: "batchSignatureBtnicon",
          };
          formData.btn = data;
          return formData;
        case 30: //鎵归噺绛剧珷
          data = {
            btnIcon: "batchSignatureBtnicon",
          };
          formData.btn = data;
          return formData;
        case 33: //娴佺▼鍚姩
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 34: //淇濆瓨
          data = {
            btnIcon: "saveBtnicon",
          };
          formData.btn = data;
          return formData;
        case 36: //缃戦〉鎵撳嵃(瑙嗗浘)
          data = {
            btnIcon: "printViewBtnicon",
          };
          formData.btn = data;
          return formData;
        case 37: //閭欢鐭俊鍒嗕韩
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 42: //淇濆瓨骞舵柊寤�
          data = {
            btnIcon: "saveNewBtnicon",
          };
          formData.btn = data;
          return formData;
        case 43: //璺宠浆
          data = {
            btnIcon: "jumpToBtnicon",
          };
          formData.btn = data;
          return formData;
        case 45: //褰掓。
          data = {
            btnIcon: "",
            fc: "#000",
          };
          formData.btn = data;
          return formData;
        case 46: //绛剧珷
          data = {
            btnIcon: "",
            fc: "#000",
          };
          formData.btn = data;
          return formData;
        case 47: //鍥為€€娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 48: //鍌姙娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 49: //鎸傝捣娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 50: //鎭㈠娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 51: //鍥炴挙娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 52: //缁堟娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 53: //缂栬緫娴佺▼瀹℃壒浜�
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 54: //璋冩暣娴佺▼
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 55: //鐐硅瘎
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 56: //琛ョ
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 57: //鍔犵涓诲姙
          data = {
            btnIcon: "queryBtnicon",
          };
          formData.btn = data;
          return formData;
        case 58: //鍔犵鍗忓姙
        default:
          return formData;
      }
      // return this.$parent.findField(this.id);
    },
  },
  mounted() {
    this.$nextTick(() => {
      let field = this.field;
      if (field.isHideType) {
        let id = this.id,
          formShowType = field.formShowType;
        controlHidden({ id, field, formShowType });
      }
    });
  },
  data: function () {
    return {
      Constant,
    };
  },
  methods: {
    checkValue() {
      // debugger
      let field = this.field
      let divId = field.divId
      let refreshOnChanged = field.refreshOnChanged
      let id = this.id
      let activityType = field.activityType
      let activity = field.activity
      activity.actionType = field.actiontype ? parseInt(field.actiontype) : activity.actionType
      //  if(activity.type==13||activity.type==1||activity.type==2||activity.type==10||activity.type==11||activity.type==20||activity.type==34){//鑷畾涔夋寜閽彁浜ゅ苟杩斿洖13--bcx---娴嬭瘯娌℃晥鏋滆寰楀垹闄�
      if(activity.type==13){//鑷畾涔夋寜閽彁浜ゅ苟杩斿洖13--bcx---娴嬭瘯娌℃晥鏋滆寰楀垹闄�
        if (this.$parent.$parent.v3ActionSubmit) {//鐖朵翰鐨勭埗浜�
           this.$parent.$parent.v3ActionSubmit(
            divId,
            refreshOnChanged,
            id,
            activityType,
            activity.withOld,
            activity
          );
        }
        return
      }
      if (this.$parent.runBeforeAction) {
        //tab涓�
        this.$parent.runBeforeAction(
          divId,
          refreshOnChanged,
          id,
          activityType,
          activity.withOld,
          activity
        );
      } else {
        this.$parent.$parent.runBeforeAction(
          divId,
          refreshOnChanged,
          id,
          activityType,
          field.activity.withOld,
          field.activity
        );
      }
    },
  },
};
</script>