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