From 8fa26b3a44036804312fcea54a3475b51c0b5a48 Mon Sep 17 00:00:00 2001 From: zhj Date: Tue, 11 Feb 2025 22:39:23 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E8=AE=A2=E9=98=85&=E6=8B=9B=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/modules/biz.ts | 11 +- src/views/biz/bid/index.vue | 2 +- src/views/biz/issuanceBid/index.vue | 212 +++++++- src/views/biz/membershipPoint/index.vue | 2 +- src/views/biz/propSummary/index.vue | 339 +++++++++++++ .../index.vue => propSummary/index2.vue} | 4 +- src/views/biz/subscribe/index.vue | 453 ++++++++++++++++++ 7 files changed, 1013 insertions(+), 10 deletions(-) create mode 100644 src/views/biz/propSummary/index.vue rename src/views/biz/{propCount/index.vue => propSummary/index2.vue} (62%) create mode 100644 src/views/biz/subscribe/index.vue diff --git a/src/router/modules/biz.ts b/src/router/modules/biz.ts index 665d7c3..956da8f 100644 --- a/src/router/modules/biz.ts +++ b/src/router/modules/biz.ts @@ -51,7 +51,7 @@ export default { { path: "/biz/propCount", name: "propCount", - component: () => import("@/views/biz/propCount/index.vue"), + component: () => import("@/views/biz/propSummary/index.vue"), meta: { icon: "ri:bank-card-line", title: "道具统计" @@ -92,6 +92,15 @@ export default { icon: "ri:settings-3-line", title: "系统设置" } + }, + { + path: "/biz/subscribe", + name: "subscribe", + component: () => import("@/views/biz/subscribe/index.vue"), + meta: { + icon: "material-symbols:activity-zone-outline", + title: "订阅管理" + } } ] } satisfies RouteConfigsTable; diff --git a/src/views/biz/bid/index.vue b/src/views/biz/bid/index.vue index 0e52742..00080ad 100644 --- a/src/views/biz/bid/index.vue +++ b/src/views/biz/bid/index.vue @@ -166,7 +166,7 @@ const columns: TableColumnList = [ } }, { - label: "创建时间", + label: "投标时间", prop: "createTime", width: "160", formatter: row => { diff --git a/src/views/biz/issuanceBid/index.vue b/src/views/biz/issuanceBid/index.vue index 5bd2f31..3bd4f37 100644 --- a/src/views/biz/issuanceBid/index.vue +++ b/src/views/biz/issuanceBid/index.vue @@ -54,6 +54,17 @@ const getFrontendUserList = async () => { } }; +// 明细抽屉相关 +const detailDrawer = ref(false); +const detailLoading = ref(false); +const detailData = ref([]); +const detailTotal = ref(0); +const detailQueryParams = ref({ + pageNum: 1, + pageSize: 20, + bidId: "" +}); + // 公司列表数据 const companyOptions = ref([]); // 获取公司列表 @@ -167,6 +178,15 @@ const categoryOptions = [ { value: 2, label: "飞机" } ]; +// 紧急度 +const urgencyOptions = [ + { value: 1, label: "加急", day: 1 }, + { value: 2, label: "紧急", day: 3 }, + { value: 3, label: "一般", day: 7 }, + { value: 4, label: "近期", day: 30 }, + { value: 5, label: "远期", day: 90 } +]; + const columns: TableColumnList = [ { label: "用户名称", @@ -285,10 +305,19 @@ const columns: TableColumnList = [ } }, { - label: "有效天数", - prop: "validDays", - width: "90" + label: "紧急度", + prop: "urgency", + width: "90", + formatter: row => { + const urgency = urgencyOptions.find(item => item.value === row.urgency); + return urgency ? urgency.label + "(" + urgency.day + "天)" : ""; + } }, + // { + // label: "有效天数", + // prop: "validDays", + // width: "90" + // }, { label: "截止日期", prop: "expiryDate", @@ -337,6 +366,136 @@ const handleEdit = (row: any) => { console.log("编辑行:", row); }; +const handleDetail = row => { + detailQueryParams.value.bidId = row.id; + detailQueryParams.value.pageNum = 1; + detailDrawer.value = true; + getBidListDetail(); +}; + +// 明细表格列定义 +const detailColumns = [ + { + label: "投标主体", + prop: "isCompany", + width: "180", + align: "center", + formatter: row => { + return row.isCompany === 1 + ? "[公司]" + + companyOptions.value.find(item => item.value === row.companyId) + ?.label + : "[个人]" + + frontendUserOptions.value.find(item => item.value === row.userId) + ?.label; + } + }, + { + label: "中标", + prop: "isWinner", + width: "90", + align: "center", + formatter: row => { + return row.isWinner === 1 ? "是" : "否"; + } + }, + { + label: "投标时间", + prop: "createTime", + width: "160", + formatter: row => { + return row.createTime + ? dayjs(row.createTime).format("YYYY-MM-DD HH:mm:ss") + : ""; + } + }, + { + label: "使用道具", + prop: "usePurchase", + width: "90", + align: "center", + formatter: row => { + return row.usePurchase === 1 ? "使用" : "未使用"; + } + }, + { + label: "排他卡", + prop: "useExcludeCardFlag", + width: "90", + align: "center", + formatter: row => { + return row.useExcludeCardFlag === 1 ? "使用" : "未使用"; + } + }, + { + label: "插队卡", + prop: "useJumpCardFlag", + width: "90", + align: "center", + formatter: row => { + return row.useJumpCardFlag === 1 ? "使用" : "未使用"; + } + }, + { + label: "直通卡", + prop: "useThroughCardFlag", + width: "90", + align: "center", + formatter: row => { + return row.useThroughCardFlag === 1 ? "使用" : "未使用"; + } + } +]; + +// 获取投标明细 +const getBidListDetail = async () => { + try { + detailLoading.value = true; + const params = { ...detailQueryParams.value }; + const res = await request(bizApi("bidPage"), { + method: "POST", + body: JSON.stringify(params) + }); + + if (res.status === 200) { + detailData.value = res.data.rows; + detailTotal.value = res.data.records; + } else { + ElMessage.error(res.msg || "获取投标记录失败"); + } + } catch (error) { + console.error("获取投标记录失败:", error); + ElMessage.error(error.message || "获取投标记录失败"); + } finally { + detailLoading.value = false; + } +}; + +// 明细分页改变 +const handleDetailSizeChange = (val: number) => { + detailQueryParams.value.pageSize = val; + getBidListDetail(); +}; + +const handleDetailCurrentChange = (val: number) => { + detailQueryParams.value.pageNum = val; + getBidListDetail(); +}; + +// 添加抽屉关闭处理函数 +const handleDrawerClose = () => { + detailDrawer.value = false; + // 重置查询参数 + detailQueryParams.value = { + pageNum: 1, + pageSize: 20, + bidId: "" + }; + // 清空数据 + detailData.value = []; + detailTotal.value = 0; +}; + // 页面加载时获取数据 onMounted(() => { getBidList(); @@ -472,9 +631,12 @@ onMounted(() => { row-key="id" > @@ -532,4 +724,14 @@ onMounted(() => { .type-select { width: 120px; } + +.drawer-container { + padding: 20px; + + .pagination-container { + display: flex; + justify-content: flex-end; + margin-top: 20px; + } +} diff --git a/src/views/biz/membershipPoint/index.vue b/src/views/biz/membershipPoint/index.vue index 90410d1..c07bd21 100644 --- a/src/views/biz/membershipPoint/index.vue +++ b/src/views/biz/membershipPoint/index.vue @@ -636,7 +636,7 @@ onMounted(() => { v-model="detailDrawer" title="积分明细" width="50%" - :close-on-click-modal="false" + :close-on-click-modal="true" :before-close="() => (detailDrawer = false)" >
diff --git a/src/views/biz/propSummary/index.vue b/src/views/biz/propSummary/index.vue new file mode 100644 index 0000000..94d14f7 --- /dev/null +++ b/src/views/biz/propSummary/index.vue @@ -0,0 +1,339 @@ + + + + + diff --git a/src/views/biz/propCount/index.vue b/src/views/biz/propSummary/index2.vue similarity index 62% rename from src/views/biz/propCount/index.vue rename to src/views/biz/propSummary/index2.vue index 1a98144..f5ffcf3 100644 --- a/src/views/biz/propCount/index.vue +++ b/src/views/biz/propSummary/index2.vue @@ -1,9 +1,9 @@ diff --git a/src/views/biz/subscribe/index.vue b/src/views/biz/subscribe/index.vue new file mode 100644 index 0000000..b1c155b --- /dev/null +++ b/src/views/biz/subscribe/index.vue @@ -0,0 +1,453 @@ + + + + +