<script lang="ts" setup>
import { onMounted, reactive, ref, toRefs } from "vue";
import { format } from "date-fns";
import { NButton, NDataTable, useDialog, useMessage } from "naive-ui";
import { aiApprovaltools, aiApprovaltoolsClearmark } from "@/api/work/work";
import { getToolsCount } from "@/api/home/main";

const emit = defineEmits<{
  (e: "reject", params: any);
  (e: "notPass", params: any);
}>();

const dialog = useDialog();

const state: any = reactive({
  detail: {},
  taskId: "",
});
const { detail } = toRefs(state);
const cardStyle = {
  width: "450px",
  "--n-padding-bottom": "10px",
  "--n-padding-left": "0px",
};

const show = ref(false);

function showModal(id) {
  console.log(id);
  state.taskId = id;
  getDetail(id);
}

async function getDetail(id) {
  const res = await aiApprovaltools({ taskid: id });
  if (res.code === "OK") {
    state.detail = res.data;
    show.value = true;
  }

  console.log(res,'getDetail');
}

async function clearMark() {
  const res = await aiApprovaltoolsClearmark({ taskid: state.taskId });
  if (res.code === "OK") closeModal();
}

function closeModal() {
  show.value = false;
}

async function reject() {
  // emit('reject', { a: 'todo' })
  // closeModal()
  dialog.info({
    title: "确认提示",
    content: "确认设置成假吗?",
    positiveText: "确定",
    negativeText: "取消",
    onPositiveClick: async () => {
      // TODO：需要支持重置
      // const result = await resetApproval()
      clearMark();
    },
    onNegativeClick: () => {},
  });
}

async function viewRepeat(e: MouseEvent) {
  emit("notPass", {
    id: state.taskId,
    detail: state.detail,
  });
  e.preventDefault();
  closeModal();
}

async function getShowStatus() {
  const res = await getToolsCount();
  if (res.code == 'OK') {
    show.value = true;
  }
}
onMounted(() => {
  getShowStatus();
});

defineExpose({
  showModal,
});
</script>

<template>
  <n-modal :show="show" transform-origin="center" class="modal_wrap">
    <div class="wrapper">
      <div class="closed">
        <SvgIcon style="cursor: pointer" name="cut-down" width="32" @click="closeModal" />
      </div>
      <div class="wrapper-hearder">
        <div class="wrapper-title">智能AI审批工具</div>
        <div class="wrapper-mark">
          {{ detail.tenantusername }}
        </div>
      </div>
      <div class="wrapper-content">
        <n-scrollbar style="height: 200px">
          <div v-for="i in 1" :key="i" class="item">
            <div class="imgwrapper" />
            <div class="content">
              <div class="task_id">任务ID：{{ detail.taskid }}</div>
              <div class="tag_box">
                <div class="tag_item">基线任务</div>
                <div class="tag_item error">相似图片({{ detail.similarcount }})</div>
              </div>
              <div class="time_box">
                {{ format(detail?.createtime || 0, "yyyy-MM-dd HH:mm:ss") }}
              </div>
            </div>
          </div>
        </n-scrollbar>
        <div class="mark_text">
          智能识别：{{ detail.similarComplete }}张图片来源于网络，建议将图片标记为假，或
          快速审批不通过！
        </div>
        <div class="footer">
          <SvgIcon
            style="cursor: pointer"
            name="r3"
            width="162"
            height="54"
            @click="reject"
          />
          <SvgIcon
            style="cursor: pointer"
            name="r2"
            width="162"
            height="54"
            @click="viewRepeat"
          />
        </div>
      </div>
    </div>
  </n-modal>
</template>

<style lang="less" scoped>
.modal_wrap {
  background-image: url(../../../assets/images/approval_modal_bg.png);
  background-repeat: no-repeat;
  background-size: 100%;
  width: 700px;
  height: 500px;
  box-shadow: none !important;
}
.wrapper {
  position: absolute;
  left: calc(50% - 350px);
  .closed {
    position: relative;
    top: 0px;
    left: 90%;
  }
  .wrapper-hearder {
    margin-top: 40px;
    .wrapper-title {
      text-align: center;
      font-size: 16px;
      font-family: PingFang SC, PingFang SC-Semibold;
      font-weight: Semibold;
      text-align: center;
      color: #333333;
      line-height: 32px;
    }
    .wrapper-mark {
      text-align: center;
      font-size: 13px;
      font-family: HarmonyOS Sans SC, HarmonyOS Sans SC-Regular;
      font-weight: Regular;
      text-align: center;
      color: #666666;
      line-height: 18px;
    }
  }
  .wrapper-content {
    flex: 1;
    border-radius: 8px;
    margin: 35px 60px 35px 120px;
    .item {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      margin: 20px 0;
    }

    .imgwrapper {
      width: 200px;
      height: 120px;
      margin-right: 20px;
      border-radius: 8px;
      background-image: url("../../../assets/images/test.png");
      background-repeat: no-repeat;
      background-size: cover;
    }
    .content {
      .task_id {
        font-size: 14px;
        font-family: PingFang SC, PingFang SC-Regular;
        font-weight: Regular;
        text-align: left;
        color: #333333;
        line-height: 20px;
      }
      .tag_box {
        display: flex;
        flex-flow: row nowrap;
        margin: 8px 0;
        .tag_item {
          background: rgba(80, 122, 253, 0.1);
          border-radius: 2px;
          font-size: 12px;
          font-family: PingFang SC, PingFang SC-Regular;
          font-weight: Regular;
          text-align: left;
          color: #507afd;
          line-height: 16px;
          margin-right: 10px;
        }
        .error {
          background: rgba(255, 78, 79, 0.1);
          color: #ff4e4f;
        }
      }
      .time_box {
        font-size: 14px;
        font-family: PingFang SC, PingFang SC-Regular;
        font-weight: Regular;
        text-align: left;
        color: #333333;
        line-height: 20px;
      }
    }
    .mark_text {
      font-size: 13px;
      font-family: PingFang SC, PingFang SC-Regular;
      font-weight: Regular;
      text-align: left;
      color: #666666;
      line-height: 16px;
    }
    .footer {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      justify-content: center;
      margin: 20px 30px 0 0;
    }
  }
}
</style>
