/**
 * lsjgggl ---要闻概况-粮食局公告管理
 * tzgggl---要闻概况-通知公告管理
 * xzgfwj---政务公开-行政规范性文件管理
 * xzxk---政务公开-公开内容管理-行政许可
 * xzcf----政务公开-公开内容管理-行政处
 * gknb---政务公开-公开年报管理
 * lzyj-----政务公开-公开内容管理-履职依据
 * czyjs----政务公开-公开内容管理-财政预决算
 * ghjh-----政务公开-公开内容管理-规划计划
 * zcwj----政务公开-政策文件
 * zcjdgl---政务公开-政策解读管理
 * zdgkwj----政务公开-公开内容管理-主动公开文件
 * gkzn---政务公开-公开指南管理
 * gkzd---政务公开-公开制度管理
 * gznb---政务公开-工作年报管理
 * ttxmbt---首页头条-标题
 * dsxxjy --- 首页党史学习教育
 * sylbt --- 首页轮播图
 */
// mixins.js
import { ref } from "vue";
import api from "@/api/article.js";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";

export const articleDetails = () => {
  // 解析路由信息
  let apiFun = null;
  const pageData = ref({
    fileList: [],
  });
  const showInfoBox = ref(false);
  const queryData = useRouter().currentRoute.value.query;

  if (queryData.type == "gkzn") {
    apiFun = api.institution; // 公开指南
  } else if (queryData.type == "gkzd") {
    showInfoBox.value = true;
    apiFun = api.institution; // 公开制度
  } else if (queryData.type == "gknb") {
    apiFun = api.annualReport; // 公开年报
  } else if (queryData.type == "zcwj") {
    showInfoBox.value = true;
    apiFun = api.policyFile; // 政策文件
  } else if (queryData.type == "zcjdgl") {
    apiFun = api.policyInter; // 政策解读
  } else if (queryData.type == "xzgfwj") {
    showInfoBox.value = true;
    apiFun = api.normativeDoc; // 行政规范性文件
  } else if (queryData.type == "gznb") {
    apiFun = api.workAnnualReport; // 工作年报
  } else if (queryData.type == "zdgkwj") {
    showInfoBox.value = true;
    apiFun = api.publicDoc; // 主动公开文件
  } else if (queryData.type == "lzyj") {
    apiFun = api.dutyBasis; // 履职依据
  } else if (queryData.type == "xzcf") {
    apiFun = api.penalize; // 行政处罚
  } else if (queryData.type == "xzxk") {
    apiFun = api.permission; // 行政许可
  } else if (queryData.type == "ghjh") {
    apiFun = api.panning; // 规划计划
  } else if (queryData.type == "czyjs") {
    apiFun = api.finance; // 财政预决算
  } else if (queryData.type == "lsjgggl") {
    apiFun = api.singrainbureaunotice; // 要闻概况-粮食局公告管理
  } else if (queryData.type == "ttxmbt") {
    apiFun = api.homeData; //首页-头条轮播标题数据
  } else if (queryData.type == "dsxxjy") {
    apiFun = api.homeDetail; //首页-轮播图党史学习教育
  } else if (queryData.type == "sylbt") {
    apiFun = api.hmimagenewsDetail; //首页-轮播图
  } else {
    apiFun = api.sinnoticeannouncement; // 要闻概况-通知公告管理
  }

  apiFun({ id: queryData.id }).then((res) => {
    if (res.code == 200) {
      pageData.value = res.data;
      pageData.value.fileList = [];
      if (
        queryData.type == "gknb" ||
        queryData.type == "zcjdgl" ||
        queryData.type == "gznb" ||
        queryData.type == "ghjh" ||
        queryData.type == "czyjs" ||
        queryData.type == "tzgggl"
      ) {
        pageData.value.documentName = res.data.title;
        pageData.value.publishDate = res.data.publishTime;
        getFileList(res.data.attachments);
      } else if (queryData.type == "xzcf") {
        pageData.value.documentName = res.data.punishedEntity;
        pageData.value.publishDate = res.data.createTime;
        pageData.value.announcementContent = res.data.caseSummary;
        getFileList(res.data.attachments);
      } else if (queryData.type == "xzxk") {
        pageData.value.documentName =
          res.data.enterpriseName + ":" + res.data.licenseNumber;
        pageData.value.publishDate = res.data.createTime;
        pageData.value.announcementContent = res.data.announcementContent;
        getFileList(res.data.attachments);
      } else if (queryData.type == "ttxmbt") {
        pageData.value.documentName = res.data.headlineTitle;
        pageData.value.publishDate = res.data.publishTime;
        pageData.value.announcementContent = res.data.carouselContent;
      } else if (queryData.type == "dsxxjy") {
        pageData.value.documentName = res.data.title;
        pageData.value.publishDate = res.data.publishTime;
        pageData.value.announcementContent = res.data.announcementContent;
        getFileList(res.data.attachments);
      } else if (queryData.type == "sylbt") {
        pageData.value.documentName = res.data.newsTitle;
        pageData.value.publishDate = res.data.publishTime;
        pageData.value.announcementContent = res.data.newsContent;
      } else if (queryData.type == "lsjgggl") {
        pageData.value.documentName = res.data.title;
        pageData.value.publishDate = res.data.publishDate;
        pageData.value.announcementContent = res.data.noticeContent;
      }
    }
  });
  // 获取附件
  function getFileList(data) {
    if (data) {
      let fileUrlArr = data.split(",");
      fileUrlArr.map((item) => {
        let file = item.split("/");
        pageData.value.fileList.push({
          url: item,
          name: file[file.length - 1],
        });
      });
    }
  }
  // 下载文件
  const downloadRes = async (url, name) => {
    let response = await fetch(url);
    let blob = await response.blob();
    let objectUrl = window.URL.createObjectURL(blob);
    let a = document.createElement("a");
    a.href = objectUrl;
    a.download = name;
    document.body.appendChild(a);
    a.click();
    setTimeout(function () {
      ElMessage.success("文件下载成功");
      document.body.removeChild(a);
    }, 1000);
  };
  return {
    pageData,
    queryData,
    showInfoBox,
    downloadRes,
  };
};
