From 4c24f58b63185b68a1db149bb9143261147bd36f Mon Sep 17 00:00:00 2001 From: wuzilong <704541015@qq.com> Date: Fri, 11 Sep 2026 23:31:17 +0800 Subject: [PATCH] feat(miniprogram): migrate mine and all application lists from bx-mobile. Unify advance/reimburse browsing under workbench view menus with existing detail routes. Co-authored-by: Cursor --- miniprogram/api/bx.js | 2 + miniprogram/pages/bx/all/list.vue | 428 +++++++++++++++++++++++++- miniprogram/pages/bx/mine/list.vue | 468 ++++++++++++++++++++++++++++- miniprogram/styles/bx-theme.scss | 51 ++++ 4 files changed, 945 insertions(+), 4 deletions(-) diff --git a/miniprogram/api/bx.js b/miniprogram/api/bx.js index a05cd0a1a..1f3e4aeb5 100644 --- a/miniprogram/api/bx.js +++ b/miniprogram/api/bx.js @@ -1,6 +1,7 @@ import { bxRequest, bxUploadFile } from '@/utils/bxRequest' export const advanceApi = { + list: (params) => bxRequest({ url: '/advances/', method: 'GET', params }), my: (params) => bxRequest({ url: '/advances/my', method: 'GET', params }), getById: (id) => bxRequest({ url: `/advances/${id}`, method: 'GET' }), getApprovals: (id) => bxRequest({ url: `/advances/${id}/approvals`, method: 'GET' }), @@ -14,6 +15,7 @@ export const advanceApi = { export const reimburseApi = { generateTitle: (params) => bxRequest({ url: '/reimburses/generate-title', method: 'GET', params }), + list: (params) => bxRequest({ url: '/reimburses/', method: 'GET', params }), my: (params) => bxRequest({ url: '/reimburses/my', method: 'GET', params }), getById: (id) => bxRequest({ url: `/reimburses/${id}`, method: 'GET' }), getApprovals: (id) => bxRequest({ url: `/reimburses/${id}/approvals`, method: 'GET' }), diff --git a/miniprogram/pages/bx/all/list.vue b/miniprogram/pages/bx/all/list.vue index e956b46a3..ff6326ecc 100644 --- a/miniprogram/pages/bx/all/list.vue +++ b/miniprogram/pages/bx/all/list.vue @@ -1,7 +1,431 @@ + + diff --git a/miniprogram/pages/bx/mine/list.vue b/miniprogram/pages/bx/mine/list.vue index 7e94445f0..f7258d7b5 100644 --- a/miniprogram/pages/bx/mine/list.vue +++ b/miniprogram/pages/bx/mine/list.vue @@ -1,7 +1,471 @@ + + diff --git a/miniprogram/styles/bx-theme.scss b/miniprogram/styles/bx-theme.scss index 780456a38..399e5b771 100644 --- a/miniprogram/styles/bx-theme.scss +++ b/miniprogram/styles/bx-theme.scss @@ -1232,3 +1232,54 @@ padding-top: 12px; border-top: 1px solid var(--border); } + +/* 我的/全部:业务类型切换卡片 */ +.bx-page .mine-type-tabs.stat-scroll { + display: flex; + justify-content: center; + align-items: stretch; + gap: 12px; + padding: 10px 16px 8px; + overflow-x: visible; +} + +.bx-page .mine-type-tabs .stat-card { + flex-shrink: 0; + width: auto; + min-width: 120px; + padding: 16px 22px; + border: none; + border-radius: var(--r); + background: var(--surface); + box-shadow: var(--shadow); + display: flex; + align-items: center; + justify-content: center; +} + +.bx-page .mine-type-tabs--triple .stat-card { + min-width: 100px; + padding: 14px 14px; +} + +.bx-page .mine-type-tabs .stat-card.active { + background: var(--primary-bg); +} + +.bx-page .mine-type-tabs .stat-card .label { + font-size: 16px; + font-weight: 600; + color: var(--text); +} + +.bx-page .mine-type-tabs--triple .stat-card .label { + font-size: 15px; +} + +.bx-page .mine-type-tabs .stat-card.active .label { + color: var(--primary-dark); +} + +.bx-page .all-list-card__bottom { + justify-content: flex-end; +}