From 692685949aa35bb2764566ef437bb7535113c6f2 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 03 四月 2025 17:30:09 +0800 Subject: [PATCH] feat: init --- src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue | 116 ++++++++++++++ src/views/EnterpriseInfo/EnterpriseInfoDetail.vue | 30 +++ src/views/EnterpriseInfo/components/RewardGrantRecordView.vue | 107 +++++++++++++ src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue | 98 ++++++++++++ src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue | 102 ++++++++++++ 5 files changed, 452 insertions(+), 1 deletions(-) diff --git a/src/views/EnterpriseInfo/EnterpriseInfoDetail.vue b/src/views/EnterpriseInfo/EnterpriseInfoDetail.vue index f6983da..67aa55e 100644 --- a/src/views/EnterpriseInfo/EnterpriseInfoDetail.vue +++ b/src/views/EnterpriseInfo/EnterpriseInfoDetail.vue @@ -1,11 +1,39 @@ <template> - <div>EnterpriseInfoDetail</div> + <LoadingLayout> + <AppContainer> + <ProTabs v-model="state.tabType" hasBorder> + <ProTabPane lazy label="浼佷笟鍩烘湰淇℃伅" name="enterpriseBasicInfo"> + <EnterpriseBasicInfoView></EnterpriseBasicInfoView> + </ProTabPane> + <ProTabPane lazy label="浼佷笟鐢虫姤璁板綍" name="enterpriseDeclareRecord"> + <EnterpriseDeclareRecordView></EnterpriseDeclareRecordView> + </ProTabPane> + <ProTabPane lazy label="濂栧姳閲戝彂鏀捐褰�" name="rewardGrantRecord"> + <RewardGrantRecordView></RewardGrantRecordView> + </ProTabPane> + <ProTabPane lazy label="濂栧姳閲戞秷璐硅褰�" name="rewardConsumeRecord"> + <RewardConsumeRecordView></RewardConsumeRecordView> + </ProTabPane> + </ProTabs> + </AppContainer> + </LoadingLayout> </template> <script setup lang="ts"> +import { AppContainer, ProTabs, ProTabPane } from '@bole-core/components'; +import EnterpriseBasicInfoView from './components/EnterpriseBasicInfoView.vue'; +import EnterpriseDeclareRecordView from './components/EnterpriseDeclareRecordView.vue'; +import RewardGrantRecordView from './components/RewardGrantRecordView.vue'; +import RewardConsumeRecordView from './components/RewardConsumeRecordView.vue'; + defineOptions({ name: 'EnterpriseInfoDetail', }); + +const state = reactive({ + loading: true, + tabType: 'enterpriseBasicInfo', +}); </script> <style lang="scss" scoped> diff --git a/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue b/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue new file mode 100644 index 0000000..0a6ddea --- /dev/null +++ b/src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue @@ -0,0 +1,98 @@ +<template> + <LoadingLayout :loading="isLoading"> + <AppContainer> + <PageFormLayout> + <ProForm :model="detail" ref="formRef" label-width="140px"> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="浼佷笟鍚嶇О:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="缁熶竴绀句細淇$敤浠g爜:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="浼佷笟绫诲瀷:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鎵�灞炲洯鍖�:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鍥尯绫诲瀷:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="寮�鎴烽摱琛�:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="閾惰甯愬彿:" prop="serveName" mode="read"> + <ProFormText v-model.trim="detail.categoryName" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="钀ヤ笟鎵х収:" prop="serveName" mode="read"> + <!-- <ProFormUpload v-model:file-url="detail.covers"></ProFormUpload> --> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + </ProForm> + </PageFormLayout> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + LoadingLayout, + AppContainer, + PageFormLayout, + ProForm, + ProFormCol, + ProFormColItem, + ProFormItemV2, + ProFormText, + ProFormUpload, +} from '@bole-core/components'; +import { useQuery } from '@tanstack/vue-query'; +import * as informationServices from '@/services/api/Information'; + +defineOptions({ + name: 'EnterpriseBasicInfoView', +}); + +const route = useRoute(); +const id = route.params?.id as string; + +const { data: detail, isLoading } = useQuery({ + queryKey: ['informationServices/getInformationShowDetail', id], + queryFn: async () => { + return await informationServices.getInformationShowDetail( + { id: id }, + { + showLoading: false, + } + ); + }, + placeholderData: () => ({} as API.InformationShowDetailDto), +}); +</script> + +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> diff --git a/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue b/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue new file mode 100644 index 0000000..3c2cc91 --- /dev/null +++ b/src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue @@ -0,0 +1,116 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components'; +import { OrderInputType } from '@bole-core/core'; +import * as informationServices from '@/services/api/Information'; + +defineOptions({ + name: 'EnterpriseDeclareRecordView', +}); + +const column: API.CustomModuleColumnDto[] = [ + { + id: '1', + enCode: 'batchBillNo', + name: '鐢虫姤鎵规鍙�', + }, + { + id: '2', + enCode: 'changeType', + name: '鐢虫姤鏃ユ湡', + }, + { + id: '3', + enCode: 'creationTime', + name: '鍐呴儴瀹℃牳鏃ユ湡', + }, + { + id: '4', + enCode: 'effectTime', + name: '鍐呴儴瀹℃牳缁撴灉', + }, + { + id: '5', + enCode: 'insurePersonNumber', + name: '澶栭儴瀹℃牳鏃ユ湡', + }, + { + id: '6', + enCode: 'orginInsurePersonNumber', + name: '澶栭儴瀹℃牳缁撴灉', + }, +]; + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => goDetail(role), + }, + }, +]); + +const route = useRoute(); +const router = useRouter(); +const id = route.params.id as string; +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetInformationForManageInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + }; + let res = await informationServices.getInformationForManage(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], + }, + } +); + +async function goDetail(row: API.InsureBatchBillDto) { + router.push({ + name: '', + }); +} + +onMounted(async () => { + await getList(); + state.loading = false; +}); +</script> + +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> diff --git a/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue b/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue new file mode 100644 index 0000000..54a8a7b --- /dev/null +++ b/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue @@ -0,0 +1,102 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components'; +import { OrderInputType } from '@bole-core/core'; +import * as informationServices from '@/services/api/Information'; + +defineOptions({ + name: 'RewardConsumeRecordView', +}); + +const column: API.CustomModuleColumnDto[] = [ + { + id: '1', + enCode: 'batchBillNo', + name: '濂栧姳閲戞秷璐规棩鏈�', + }, + { + id: '2', + enCode: 'changeType', + name: '娑堣垂绫诲瀷', + }, + { + id: '3', + enCode: 'creationTime', + name: '娑堣垂閲戦', + }, + { + id: '4', + enCode: 'effectTime', + name: '濂栧姳閲戜綑棰�', + }, +]; + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'previewBtn', + name: '鏌ョ湅鍑瘉', + }, + emits: { + onClick: (role) => handlePreview(role), + }, + }, +]); + +const route = useRoute(); +const router = useRouter(); +const id = route.params.id as string; +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetInformationForManageInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + }; + let res = await informationServices.getInformationForManage(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], + }, + } +); + +function handlePreview(row: API.InsureBatchBillDto) {} + +onMounted(async () => { + await getList(); + state.loading = false; +}); +</script> + +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> diff --git a/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue new file mode 100644 index 0000000..b3e4419 --- /dev/null +++ b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue @@ -0,0 +1,107 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components'; +import { OrderInputType } from '@bole-core/core'; +import * as informationServices from '@/services/api/Information'; + +defineOptions({ + name: 'RewardGrantRecordView', +}); + +const column: API.CustomModuleColumnDto[] = [ + { + id: '1', + enCode: 'batchBillNo', + name: '鐢虫姤鎵规鍙�', + }, + { + id: '2', + enCode: 'changeType', + name: '濂栧姳閲戝彂鏀炬棩鏈�', + }, + { + id: '3', + enCode: 'creationTime', + name: '濂栧姳閲戝埌璐︽棩鏈�', + }, + { + id: '4', + enCode: 'effectTime', + name: '鍙戞斁閲戦', + }, + { + id: '5', + enCode: 'insurePersonNumber', + name: '鍒拌处纭缁撴灉', + }, +]; + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'previewBtn', + name: '鏌ョ湅鍑瘉', + }, + emits: { + onClick: (role) => handlePreview(role), + }, + }, +]); + +const route = useRoute(); +const router = useRouter(); +const id = route.params.id as string; +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetInformationForManageInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + }; + let res = await informationServices.getInformationForManage(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], + }, + } +); + +function handlePreview(row: API.InsureBatchBillDto) {} + +onMounted(async () => { + await getList(); + state.loading = false; +}); +</script> + +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> -- Gitblit v1.9.1