From a0c1d9021b1a65cc397a2c7a8a9d226c2d9f7539 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 07 八月 2025 17:17:57 +0800 Subject: [PATCH] feat: 企业 --- src/views/TaskManage/components/SignDetailView.vue | 100 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 95 insertions(+), 5 deletions(-) diff --git a/src/views/TaskManage/components/SignDetailView.vue b/src/views/TaskManage/components/SignDetailView.vue index ccbb659..8a59d91 100644 --- a/src/views/TaskManage/components/SignDetailView.vue +++ b/src/views/TaskManage/components/SignDetailView.vue @@ -1,13 +1,103 @@ <template> - <div>SignDetailView</div> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + </ProTableV2> + </AppContainer> + </LoadingLayout> </template> <script setup lang="ts"> +import { + OperationBtnType, + ProTableV2, + LoadingLayout, + AppContainer, + useTable, +} from '@bole-core/components'; +import { useAccess } from '@/hooks'; +import { ModelValueType } from 'element-plus'; +import * as enterpriseServices from '@/services/api/enterprise'; + defineOptions({ name: 'SignDetailView', }); -</script> -<style lang="scss" scoped> -@use '@/style/common.scss' as *; -</style> +const operationBtnMap: Record<string, OperationBtnType> = { + detailBtn: { emits: { onClick: (role) => goDetail(role) } }, + recommendBtn: { + emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, + extraProps: { + hide: (row) => row.status, + }, + }, + cancelRecommendBtn: { + emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, + props: { type: 'danger' }, + extraProps: { + hide: (row) => !row.status, + }, + }, +}; + +const { checkSubModuleItemShow, column, operationBtns } = useAccess({ + operationBtnMap, +}); + +const router = useRouter(); +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetEnterprisesQuery = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + // searchKeys: extraParamState.keyword, + }; + let res = await enterpriseServices.getEnterprises(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + keyword: '', + pageType: '' as any as number, + status: '' as any as boolean, + beginDate: [] as unknown as ModelValueType, + endDate: [] as unknown as ModelValueType, + orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }], + }, + columnsRenderProps: {}, + } +); + +async function setAdvertiseOnShowStatus(row) { + try { + } catch (error) {} +} + +function goDetail(row) { + router.push({ name: 'TaskManageDetail', params: { id: row?.id ?? '' } }); +} +</script> -- Gitblit v1.9.1