zhangwei
7 天以前 3324a54fa4d0840f8a5dc8adb21753180ecd3f3c
src/views/home/utils/hook.tsx
@@ -1,5 +1,8 @@
import { onMounted, reactive } from "vue";
import { reactive, ref, onMounted, h, toRaw, watch } from "vue";
import { useRoute, useRouter } from "vue-router";
import dayjs from "dayjs";
import { message } from "@/utils/message";
import type { PaginationProps } from "@pureadmin/table";
import {
  pageGonggao,
  pageGengzgeng,
@@ -7,7 +10,8 @@
  neirongfabuDetail,
  shouyeOrder,
  shouyeChangeOrder,
  feizhengfuDetail
  feizhengfuDetail,
  pageZhongbiaoGonggao
} from "@/api/item/shouye";
const convertFujianToObjects = (fujianStr, fujianNameStr) => {
  // 分割字符串为数组并过滤空值
@@ -44,20 +48,15 @@
    shouyeZhongbiaoOrderList: [],
    shouyeOrderList: [],
    active: 0,
    gonggaoDetail: {}
    activeList: 0,
    gonggaoDetail: {},
    gonggaoList: [
      { name: "招采公告" },
      { name: "更正公告" },
      { name: "结果公告" }
      // { name: "其他公告" }
    ]
  });
  async function getPageGonggao() {
    const res = await pageGonggao();
    stateHook.pageGonggaoList = res.result;
  }
  async function getPageGengzgeng() {
    const res = await pageGengzgeng();
    stateHook.pageGonggaoList = res.result;
  }
  async function getShouyeZhongbiaoOrder() {
    const res = await shouyeZhongbiaoOrder();
    stateHook.shouyeZhongbiaoOrderList = res.result;
  }
  async function getNeirongfabuDetail(data) {
    const res = await neirongfabuDetail(data);
    stateHook.pageGonggaoList = res.result;
@@ -88,6 +87,9 @@
        break;
    }
  }
  async function getOrderList(active) {
    stateHook.activeList = active;
  }
  async function getShouyeChangeOrder() {
    const res = await shouyeChangeOrder();
    stateHook.shouyeOrderList = res.result;
@@ -95,21 +97,130 @@
  function goDetail(id) {
    router.push({ name: "gonggaoDetail", query: { id } });
  }
  onMounted(() => {
    console.log("---");
    // getNeirongfabuDetail();
    // getPageGonggao();
    // getPageGengzgeng();
    // getShouyeZhongbiaoOrder();
  const form = reactive({
    keyword: "",
    createDateRange: ""
  });
  const curRow = ref();
  const dataList = ref([]);
  const loading = ref(true);
  const pagination = reactive<PaginationProps>({
    total: 0,
    pageSize: 10,
    currentPage: 1,
    background: true
  });
  const columns: TableColumnList = [
    {
      label: "区域",
      prop: "xingzhengquyuName",
      minWidth: 80
    },
    {
      label: "采购方式",
      prop: "caigoufangshiName",
      width: 100
    },
    {
      label: "名称",
      prop: "projectName",
      minWidth: 100
    },
    {
      label: "发布时间",
      prop: "fabuDate",
      width: 160,
      formatter: ({ fabuDate }) => dayjs(fabuDate).format("YYYY-MM-DD HH:mm:ss")
    }
  ];
  function handleDelete(row) {
    message(`您删除了角色名称为${row.name}的这条数据`, { type: "success" });
    onSearch();
  }
  function handleSizeChange(val: number) {
    console.log(`${val} items per page`);
  }
  function handleCurrentChange(val: number) {
    console.log(`current page: ${val}`);
  }
  function handleSelectionChange(val) {
    console.log("handleSelectionChange", val);
  }
  async function onSearch() {
    loading.value = true;
    let res;
    switch (stateHook.activeList) {
      case 0:
        res = await pageGonggao(form);
        break;
      case 1:
        res = await pageGengzgeng(form);
        break;
      case 2:
        res = await pageZhongbiaoGonggao(form);
        break;
    }
    const { result } = res;
    // dataList.value = data.list;
    dataList.value = result.items;
    loading.value = false;
    pagination.total = result.total;
    pagination.pageSize = result.pageSize;
    pagination.currentPage = result.page;
    // setTimeout(() => {
    //   loading.value = false;
    // }, 500);
  }
  const resetForm = formEl => {
    if (!formEl) return;
    formEl.resetFields();
    onSearch();
  };
  /** 高亮当前权限选中行 */
  function rowStyle({ row: { id } }) {
    return {
      cursor: "pointer",
      background: id === curRow.value?.id ? "var(--el-fill-color-light)" : ""
    };
  }
  onMounted(async () => {
    onSearch();
    // const { data } = await getRoleMenu();
    // treeIds.value = getKeyList(data, "id");
    // treeData.value = handleTree(data);
  });
  return {
    stateHook,
    getPageGonggao,
    getShouyeOrder,
    getNeirongfabuDetail,
    goDetail,
    route,
    router,
    getFeizhengfuDetail
    getFeizhengfuDetail,
    getOrderList,
    form,
    curRow,
    loading,
    columns,
    rowStyle,
    dataList,
    pagination,
    onSearch,
    resetForm,
    handleDelete,
    handleSizeChange,
    handleCurrentChange,
    handleSelectionChange
  };
}