diff --git a/f/web-kboss/src/router/index.js b/f/web-kboss/src/router/index.js index f412102..a3304b5 100644 --- a/f/web-kboss/src/router/index.js +++ b/f/web-kboss/src/router/index.js @@ -345,7 +345,7 @@ export const asyncRoutes = [ name: 'BaiduOrder', meta: { title: "百度订单", - fullPath: "/orderManagement/baidu", + fullPath: "/product/overview", noCache: true } } diff --git a/f/web-kboss/src/store/modules/permission.js b/f/web-kboss/src/store/modules/permission.js index 969a0a2..21d03d7 100644 --- a/f/web-kboss/src/store/modules/permission.js +++ b/f/web-kboss/src/store/modules/permission.js @@ -45,7 +45,7 @@ function addUserRoutes(routes, userType) { const userRoutes = []; if (orderManagementRoute) { - console.log("添加订单管理路由"); + console.log("添加订单管理路由"); userRoutes.push(JSON.parse(JSON.stringify(orderManagementRoute))); // 深拷贝 } diff --git a/f/web-kboss/src/views/customer/orderManagement/index.vue b/f/web-kboss/src/views/customer/orderManagement/index.vue index fbe91c4..9a9156e 100644 --- a/f/web-kboss/src/views/customer/orderManagement/index.vue +++ b/f/web-kboss/src/views/customer/orderManagement/index.vue @@ -2,6 +2,8 @@
+ + + +
@@ -295,6 +299,9 @@ export default { userId: sessionStorage.getItem("userId"), dialogVisible: false, + // 当前激活的筛选类型(来自路由参数) + activeFilterType: null, + // 订单类型筛选 businessOpFilter: null, // 订单状态筛选 @@ -331,25 +338,69 @@ export default { computed: { // 检查是否有活跃的筛选条件 hasActiveFilters() { - return this.businessOpFilter || this.orderStatusFilter; + return this.businessOpFilter || this.orderStatusFilter || this.activeFilterType; } }, created() { - this.getOrder(); this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.userAgent); + this.initFromRouteQuery(); + }, + watch: { + // 监听路由变化,当从首页跳转过来时重新处理参数 + '$route'(to, from) { + this.initFromRouteQuery(); + } }, methods: { + // 从路由参数初始化筛选条件 + initFromRouteQuery() { + const query = this.$route.query; + console.log('路由参数:', query); + + if (query.filterType) { + this.activeFilterType = query.filterType; + + // 根据不同的筛选类型设置对应的筛选条件 + switch(query.filterType) { + case 'pendingPayment': + // 待支付:显示未支付和续费的数据 + this.orderStatusFilter = '0'; + this.businessOpFilter = 'RENEW'; + break; + case 'pendingRenewal': + // 待续费:只显示续费的数据 + this.businessOpFilter = 'RENEW'; + this.orderStatusFilter = null; + break; + case 'processing': + // 处理中:显示未支付的数据 + this.orderStatusFilter = '0'; + this.businessOpFilter = null; + break; + } + + // 重置其他筛选条件 + this.value1 = null; + this.searchValue = null; + this.select = null; + + this.pagination.page = 1; + this.getOrder(); + } else { + // 如果没有路由参数,使用当前的筛选条件 + this.pagination.page = 1; + this.getOrder(); + } + }, + // 格式化订单日期为 XXXX-XX-XX 格式 formatOrderDate(dateString) { if (!dateString) return '-'; try { - // 处理各种可能的日期格式 const date = new Date(dateString); if (isNaN(date.getTime())) { - // 如果 Date 解析失败,尝试直接处理字符串 if (typeof dateString === 'string') { - // 移除可能的时间部分 const datePart = dateString.split(' ')[0]; const parts = datePart.split('-'); if (parts.length === 3) { @@ -359,17 +410,16 @@ export default { return `${year}-${month}-${day}`; } } - return dateString; // 如果无法处理,返回原字符串 + return dateString; } - // 标准日期格式化 const year = date.getFullYear().toString(); const month = (date.getMonth() + 1).toString().padStart(2, '0'); const day = date.getDate().toString().padStart(2, '0'); return `${year}-${month}-${day}`; } catch (error) { console.error('日期格式化错误:', error, dateString); - return dateString; // 出错时返回原字符串 + return dateString; } }, @@ -405,8 +455,8 @@ export default { // 处理订单类型筛选 handleBusinessOpFilter(type) { console.log("订单类型筛选:", type, this.getOrderTypeConfig(type).text); + this.activeFilterType = null; - // 如果点击已经选中的按钮,则取消筛选 if (this.businessOpFilter === type) { this.businessOpFilter = null; } else { @@ -419,6 +469,7 @@ export default { // 清除订单类型筛选 clearBusinessOpFilter() { this.businessOpFilter = null; + this.activeFilterType = null; this.pagination.page = 1; this.getOrder(); }, @@ -426,8 +477,8 @@ export default { // 处理订单状态筛选 handleOrderStatusFilter(status) { console.log("订单状态筛选:", status, this.getOrderStatusText(status)); + this.activeFilterType = null; - // 如果点击已经选中的按钮,则取消筛选 if (this.orderStatusFilter === status) { this.orderStatusFilter = null; } else { @@ -440,6 +491,7 @@ export default { // 清除订单状态筛选 clearOrderStatusFilter() { this.orderStatusFilter = null; + this.activeFilterType = null; this.pagination.page = 1; this.getOrder(); }, @@ -451,8 +503,12 @@ export default { this.select = null; this.businessOpFilter = null; this.orderStatusFilter = null; + this.activeFilterType = null; this.pagination.page = 1; this.getOrder(); + + // 清除路由参数 + this.$router.replace({ path: '/product/overview', query: {} }); }, // 获取订单数据 @@ -460,7 +516,7 @@ export default { let params = { page: this.pagination.page, size: this.pagination.size, - type: '200' // 确保始终传递type参数 + type: '200' }; // 订单号搜索 @@ -544,6 +600,7 @@ export default { selectSearch(e) { this.select = e; + this.activeFilterType = null; // 当选择状态选项时,直接触发搜索 if (['0', '1', '3'].includes(e)) { this.getOrder(); @@ -560,6 +617,7 @@ export default { input(e) { this.searchValue = e; + this.activeFilterType = null; this.pagination.page = 1; this.getOrder(); }, @@ -663,6 +721,7 @@ export default { // PC端优化样式 .pcCard { margin-bottom: 10px; + .btm{ display: flex; margin-top: 10px; @@ -708,7 +767,6 @@ export default { display: flex; align-items: center; justify-content: flex-start; - // height: 60px; flex-wrap: wrap; .search-group { @@ -804,11 +862,11 @@ export default { ::v-deep .el-table { .el-table__row { width: 100%; - height: 56px; // 增加行高 + height: 56px; } .el-table__cell { - padding: 12px 0; // 增加单元格内边距 + padding: 12px 0; } .cell-content { @@ -821,7 +879,6 @@ export default { .el-button { height: 32px; - // line-height: 32px; } } diff --git a/f/web-kboss/src/views/product/mainPage/index.vue b/f/web-kboss/src/views/product/mainPage/index.vue index c17b6c5..d67028d 100644 --- a/f/web-kboss/src/views/product/mainPage/index.vue +++ b/f/web-kboss/src/views/product/mainPage/index.vue @@ -25,7 +25,6 @@
到期预警
-
-
{{ userInfo.username.charAt(0) }}
@@ -79,7 +77,6 @@
-
待办事项
    @@ -96,7 +93,6 @@
- { @@ -182,12 +178,10 @@ export default Vue.extend({ this.mybalance = res.data } }, - // 获取未读消息数量 async getUnreadMsgCount() { try { const res = await getUnreadmsgAPI(); if (res.status) { - // 更新站内信的未读数量 const messageItem = this.todoList.find(item => item.name === '站内信'); if (messageItem) { messageItem.count = res.data || 0; @@ -200,24 +194,45 @@ export default Vue.extend({ this.$message.error('获取未读消息失败'); } }, - // 处理待办事项点击 handleTodoClick(todoName) { - // 根据不同的待办事项类型进行跳转 if (todoName === '站内信') { - // 打开消息中心弹窗 this.openMessageCenter(); } else { - // 待支付、待续费、处理中都跳转到产品概览页面 - this.$router.push('/product/overview'); + let query = {}; + + switch(todoName) { + case '待支付': + // 待支付:显示未支付和续费的数据 + query = { + filterType: 'processing' // 使用明确的标识 + }; + break; + case '待续费': + // 待续费:只显示续费的数据 + query = { + filterType: 'pendingPayment' + }; + break; + case '处理中': + // 处理中:显示未支付的数据 + query = { + filterType: 'processing' + }; + break; + } + + console.log(`跳转到资源概览,筛选类型: ${todoName}`, query); + + this.$router.push({ + path: '/product/overview', + query: query + }); } }, - // 打开消息中心 openMessageCenter() { this.messageCenterVisible = true; }, - // 处理未读消息数量更新 handleUnreadCountUpdate(count) { - // 更新站内信的未读数量 const messageItem = this.todoList.find(item => item.name === '站内信'); if (messageItem) { messageItem.count = count || 0; @@ -233,71 +248,63 @@ export default Vue.extend({