| | |
| | | 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, |
| | |
| | | neirongfabuDetail, |
| | | shouyeOrder, |
| | | shouyeChangeOrder, |
| | | feizhengfuDetail |
| | | feizhengfuDetail, |
| | | pageZhongbiaoGonggao |
| | | } from "@/api/item/shouye"; |
| | | const convertFujianToObjects = (fujianStr, fujianNameStr) => { |
| | | // 分割字符串为数组并过滤空值 |
| | |
| | | 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; |
| | |
| | | break; |
| | | } |
| | | } |
| | | async function getOrderList(active) { |
| | | stateHook.activeList = active; |
| | | } |
| | | async function getShouyeChangeOrder() { |
| | | const res = await shouyeChangeOrder(); |
| | | stateHook.shouyeOrderList = res.result; |
| | |
| | | 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 |
| | | }; |
| | | } |