feat: 工作台常用入口可批量编辑,简报改为横幅,列表补下拉刷新
各角色工作台支持批量保存常用入口和业务员看板;AI 简报改成单行横幅避免锁死滑动;仓库/提现/对账等列表统一下拉刷新,并补代付码弹窗。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,9 +10,17 @@
|
||||
<script>
|
||||
import InputListPage from '@/subPackages/sub_platform_admin/input/InputListPage.vue'
|
||||
import { getPlatformAdminContext } from '@/subPackages/sub_platform_admin/common/context.js'
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js'
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { InputListPage },
|
||||
provide() { return { businessContext: getPlatformAdminContext() } },
|
||||
methods: {
|
||||
reload() {
|
||||
const p = this.$refs.listPage
|
||||
if (p && typeof p.reload === 'function') return p.reload()
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.$nextTick(() => this.$refs.listPage?.reload?.())
|
||||
},
|
||||
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
getPlatformAdminWorkbenchEntries,
|
||||
getPlatformAdminEntryUserData,
|
||||
togglePlatformAdminFavoriteEntry,
|
||||
batchSavePlatformAdminFavoriteEntry,
|
||||
reportPlatformAdminEntryUsage,
|
||||
} from '@/api/platformAdmin.js'
|
||||
|
||||
@@ -27,12 +28,13 @@ export default {
|
||||
getEntries: getPlatformAdminWorkbenchEntries,
|
||||
getUserData: getPlatformAdminEntryUserData,
|
||||
toggleFavorite: togglePlatformAdminFavoriteEntry,
|
||||
batchSaveFavorites: batchSavePlatformAdminFavoriteEntry,
|
||||
reportUsage: reportPlatformAdminEntryUsage,
|
||||
},
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
// 从功能跳转的页面返回时刷新常用/最近使用(首屏加载由组件自身 mounted 完成,此时 ref 还不存在)
|
||||
// 返回时刷新收藏状态(长按菜单用;常用/最近只在首页展示)
|
||||
if (this.$refs.features) this.$refs.features.refreshUserData()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -71,8 +71,10 @@
|
||||
:recents="recentItems"
|
||||
:favorites="favItems"
|
||||
:card-long="cardLong"
|
||||
:api="favEditorApi"
|
||||
@item-click="onEntryTap"
|
||||
@more="goFeatures"
|
||||
@saved="loadUserEntries"
|
||||
></workbench-user-entries>
|
||||
</view>
|
||||
|
||||
@@ -91,11 +93,13 @@
|
||||
import BusinessPageLayout from '@/subPackages/sub_platform_admin/components/business-page-layout.vue'
|
||||
import { getPlatformAdminContext } from '@/subPackages/sub_platform_admin/common/context.js'
|
||||
import { navigateToInputForm } from '@/subPackages/sub_salesperson/common/inputNavigation.js'
|
||||
import { getPlatformAdminDashboardStats, getPlatformAdminEntryUserData, reportPlatformAdminEntryUsage } from '@/api/platformAdmin.js'
|
||||
import { getPlatformAdminDashboardStats, getPlatformAdminWorkbenchEntries, getPlatformAdminEntryUserData, batchSavePlatformAdminFavoriteEntry, reportPlatformAdminEntryUsage } from '@/api/platformAdmin.js'
|
||||
import { normalizeEntry } from '@/utils/workbenchEntries.js'
|
||||
import { getCardStyle } from '@/utils/workbenchCardPref.js'
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js'
|
||||
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { BusinessPageLayout },
|
||||
provide() { return { businessContext: getPlatformAdminContext() } },
|
||||
data() {
|
||||
@@ -122,6 +126,12 @@ export default {
|
||||
recentRaw: [],
|
||||
/** 卡片形态偏好:true 长卡一行两个 / false 金刚区宫格(我的页可切换,存本地) */
|
||||
cardLong: false,
|
||||
/** 首页快捷添加抽屉接口(与功能页同一套) */
|
||||
favEditorApi: {
|
||||
getEntries: getPlatformAdminWorkbenchEntries,
|
||||
getUserData: getPlatformAdminEntryUserData,
|
||||
batchSaveFavorites: batchSavePlatformAdminFavoriteEntry,
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -143,6 +153,12 @@ export default {
|
||||
this.loadUserEntries()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 下拉刷新工作台:看板与入口一起重拉
|
||||
*/
|
||||
reload() {
|
||||
return Promise.all([this.loadDashboard(), this.loadUserEntries()])
|
||||
},
|
||||
/** 拉取我的常用 + 最近使用:失败静默留空(首页有引导条 + 更多功能卡兜底) */
|
||||
async loadUserEntries() {
|
||||
try {
|
||||
|
||||
@@ -56,11 +56,11 @@ export default {
|
||||
if (data && Array.isArray(data.data)) return data.data
|
||||
return []
|
||||
},
|
||||
reload() { this.page = 1; this.load(1, false) },
|
||||
reload() { this.page = 1; return this.load(1, false) },
|
||||
load(page, append) {
|
||||
const params = { page, pageSize: 15 }
|
||||
if (this.auditMode) params.status = 0
|
||||
this.listApi(params)
|
||||
return this.listApi(params)
|
||||
.then(w => {
|
||||
const items = this.parseListItems(w.data)
|
||||
if (!items.length && !w.ok) {
|
||||
|
||||
@@ -19,20 +19,43 @@
|
||||
import BusinessPageLayout from '@/subPackages/sub_platform_admin/components/business-page-layout.vue'
|
||||
import AdminMyPanel from '@/components/admin-my-panel/admin-my-panel.vue'
|
||||
import { getPlatformAdminContext } from '@/subPackages/sub_platform_admin/common/context.js'
|
||||
import { getPlatformAdminMyInfo } from '@/api/platformAdmin.js'
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js'
|
||||
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { BusinessPageLayout, AdminMyPanel },
|
||||
provide() { return { businessContext: getPlatformAdminContext() } },
|
||||
data() {
|
||||
return { displayName: '', avatar: '', roleText: '平台管理员' }
|
||||
},
|
||||
onShow() {
|
||||
// 个人中心改完昵称/头像返回时重读缓存立即生效
|
||||
const user = uni.getStorageSync('platform_admin_user') || {}
|
||||
this.displayName = user.nick_name || '管理员'
|
||||
this.avatar = user.avatar || ''
|
||||
this.roleText = (user.roles && user.roles.name) || '平台管理员'
|
||||
this.applyLocalUser()
|
||||
if (this.$refs.myPanel) this.$refs.myPanel.refreshWxBind()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 下拉刷新:拉 my-info 写回缓存,并刷新微信绑定
|
||||
*/
|
||||
reload() {
|
||||
return this.refreshProfile()
|
||||
},
|
||||
applyLocalUser() {
|
||||
const user = uni.getStorageSync('platform_admin_user') || {}
|
||||
this.displayName = user.nick_name || '管理员'
|
||||
this.avatar = user.avatar || ''
|
||||
this.roleText = (user.roles && user.roles.name) || '平台管理员'
|
||||
},
|
||||
async refreshProfile() {
|
||||
try {
|
||||
const wrap = await getPlatformAdminMyInfo()
|
||||
if (wrap && wrap.ok && wrap.data) {
|
||||
uni.setStorageSync('platform_admin_user', wrap.data)
|
||||
}
|
||||
} catch (e) { /* 保留本地缓存 */ }
|
||||
this.applyLocalUser()
|
||||
if (this.$refs.myPanel) return this.$refs.myPanel.refreshWxBind()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -10,9 +10,17 @@
|
||||
<script>
|
||||
import InputListPage from '@/subPackages/sub_platform_admin/input/InputListPage.vue'
|
||||
import { getPlatformAdminContext } from '@/subPackages/sub_platform_admin/common/context.js'
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js'
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { InputListPage },
|
||||
provide() { return { businessContext: getPlatformAdminContext() } },
|
||||
methods: {
|
||||
reload() {
|
||||
const p = this.$refs.listPage
|
||||
if (p && typeof p.reload === 'function') return p.reload()
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.$nextTick(() => this.$refs.listPage?.reload?.())
|
||||
},
|
||||
|
||||
@@ -46,10 +46,12 @@
|
||||
*/
|
||||
import StorePageLayout from '@/subPackages/sub_platform_admin/components/store-page-layout.vue';
|
||||
import { getStoreList, isSalespersonStoreMode } from '@/api/storeManage.js';
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js';
|
||||
|
||||
const ROOT = '/subPackages/sub_platform_admin/store';
|
||||
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { StorePageLayout },
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -30,8 +30,10 @@ import { getPlatformAdminContext } from '@/subPackages/sub_platform_admin/common
|
||||
import platformAdminApi from '@/api/platformAdmin.js'
|
||||
import { formatMoney } from '@/subPackages/sub_business_shared/common/format.js'
|
||||
import { formatDateTime, withdrawalCheckStatusText } from '@/subPackages/sub_business_shared/common/display.js'
|
||||
import pullRefreshMixin from '@/subPackages/sub_business_shared/common/pullRefreshMixin.js'
|
||||
|
||||
export default {
|
||||
mixins: [pullRefreshMixin],
|
||||
components: { BusinessPageLayout },
|
||||
provide() { return { businessContext: getPlatformAdminContext() } },
|
||||
data() {
|
||||
@@ -52,6 +54,9 @@ export default {
|
||||
statusText: item.check_status_txt || withdrawalCheckStatusText(item.check_status),
|
||||
}
|
||||
},
|
||||
reload() {
|
||||
return this.load()
|
||||
},
|
||||
load() {
|
||||
platformAdminApi.getWithdrawalAuditList({ page: 1, pageSize: 50, check_status: 1 }).then(w => {
|
||||
const items = (w.data && w.data.items) || []
|
||||
|
||||
Reference in New Issue
Block a user