From a4d12fcdc4cf6018b039ac6e0010f9f226d769d5 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期三, 20 八月 2025 16:02:57 +0800 Subject: [PATCH] fix: bug --- src/views/AgreementManage/constants/columns.ts | 34 +++++ src/views/AgreementManage/AgreementManageList.vue | 187 +++++++++++++++++++++++++++++++ src/views/FinanceManage/components/UsageDetailView.vue | 13 - src/views/AgreementManage/constants/index.ts | 1 src/router/index.ts | 32 +++++ src/views/AgreementManage/components/TemplateAddDialog.vue | 75 ++++++++++++ src/views/FinanceManage/components/DistributionDetailView.vue | 13 - 7 files changed, 335 insertions(+), 20 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index e0fdbc8..9e0b9a9 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -285,13 +285,41 @@ ], }, { - path: '/FinanceManage', + path: '/AgreementManage', redirect: 'noRedirect', component: Layout, hidden: false, alwaysShow: true, meta: { rank: 10050, + title: '鍗忚绠$悊', + rootMenu: true, + icon: 'home', + }, + children: [ + { + path: '/AgreementManageList', + name: 'AgreementManageList', + hidden: false, + alwaysShow: true, + component: () => import('@/views/AgreementManage/AgreementManageList.vue'), + meta: { + rank: 10051, + title: '鍗忚绠$悊', + // rootMenu: true, + icon: 'home', + }, + }, + ], + }, + { + path: '/FinanceManage', + redirect: 'noRedirect', + component: Layout, + hidden: false, + alwaysShow: true, + meta: { + rank: 10060, title: '璐㈠姟绠$悊', rootMenu: true, icon: 'home', @@ -304,7 +332,7 @@ alwaysShow: true, component: () => import('@/views/FinanceManage/FinanceManage.vue'), meta: { - rank: 10051, + rank: 10061, title: '璐㈠姟绠$悊', // rootMenu: true, icon: 'home', diff --git a/src/views/AgreementManage/AgreementManageList.vue b/src/views/AgreementManage/AgreementManageList.vue new file mode 100644 index 0000000..c812998 --- /dev/null +++ b/src/views/AgreementManage/AgreementManageList.vue @@ -0,0 +1,187 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="鍒剁増鐘舵��"> + <FieldRadio + v-model="extraParamState.status" + :value-enum="[ + { label: '宸插畬鎴�', value: 1 }, + { label: '寰呭埗鐗�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <FieldDatePicker + v-model="extraParamState.time" + type="daterange" + range-separator="~" + start-placeholder="璧峰鏃堕棿" + end-placeholder="鎴鏃堕棿" + clearable + @change="getList()" + tooltipContent="涓婁紶鏃堕棿" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.keywords" + style="width: 250px" + placeholder="妯℃澘鍚嶇О" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + <template #btn> + <el-button type="primary" @click="handleAdd()">鏂板妯℃澘</el-button> + </template> + </ProTableQueryFilterBar> + <ProTableV2 + v-bind="proTableProps" + :columns="AgreementbManageColumns" + :operationBtns="operationBtns" + > + </ProTableV2> + </AppContainer> + <TemplateAddDialog v-bind="dialogProps"></TemplateAddDialog> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + FieldDatePicker, + FieldRadio, + defineOperationBtns, + UploadUserFile, + useFormDialog, + bolePreview, +} from '@bole-core/components'; +import { AgreementbManageColumns } from './constants'; +import { EnumUserGender } from '@/constants'; +import { downloadFileByUrl } from '@/utils'; +import { ModelValueType } from 'element-plus'; +import * as taskServices from '@/services/api/task'; +import TemplateAddDialog from './components/TemplateAddDialog.vue'; + +defineOptions({ + name: 'AgreementManageList', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'checkBtn', + name: '鏌ョ湅', + }, + emits: { + onClick: (role) => handleCheck(role), + }, + }, + { + data: { + enCode: 'downloadBtn', + name: '涓嬭浇', + }, + emits: { + onClick: (role) => handleDownload(role), + }, + }, + { + data: { + enCode: 'deleteBtn', + name: '鍒犻櫎', + }, + emits: { + onClick: (role) => handleDelete(role), + }, + }, +]); + +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.GetTaskInfosQuery = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + keywords: extraParamState.keywords, + }; + + let res = await taskServices.getTaskInfos(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + keywords: '', + status: '' as any as EnumUserGender, + time: [] as unknown as ModelValueType, + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], + }, + queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + columnsRenderProps: {}, + } +); + +const { dialogProps, handleAdd, editForm } = useFormDialog({ + onConfirm: handleAddOrEdit, + defaultFormParams: { + name: '', + url: [] as UploadUserFile[], + }, +}); + +async function handleAddOrEdit() {} + +function handleDelete(row) { + console.log('row: ', row); +} + +function handleDownload(row) { + downloadFileByUrl('', '妯℃澘'); +} + +function handleCheck(row) { + bolePreview({ + fileUrl: '', + }); +} +</script> diff --git a/src/views/AgreementManage/components/TemplateAddDialog.vue b/src/views/AgreementManage/components/TemplateAddDialog.vue new file mode 100644 index 0000000..ea7851c --- /dev/null +++ b/src/views/AgreementManage/components/TemplateAddDialog.vue @@ -0,0 +1,75 @@ +<template> + <ProDialog title="鏂板妯℃澘" v-model="visible" @close="onDialogClose" destroy-on-close draggable> + <ProForm :model="form" ref="dialogForm" label-width="100px"> + <ProFormItemV2 label="妯℃澘鍚嶇О:" prop="name" :check-rules="[{ message: '璇疯緭鍏ユā鏉垮悕绉�' }]"> + <ProFormText v-model.trim="form.name"> </ProFormText> + </ProFormItemV2> + <ProFormItemV2 + label="涓婁紶妯℃澘:" + prop="url" + :check-rules="[{ message: '璇蜂笂浼犳ā鏉�', type: 'upload' }]" + > + <ProFormUpload + v-model:file-url="form.url" + :limit="1" + :limitFileSize="10" + accept="xlsx,xls" + ></ProFormUpload> + </ProFormItemV2> + </ProForm> + <template #footer> + <span class="dialog-footer"> + <el-button type="primary" @click="handleConfirm">鎻愪氦</el-button> + <el-button type="default" @click="emit('onCancel')">鍙栨秷</el-button> + </span> + </template> + </ProDialog> +</template> + +<script setup lang="ts"> +import { + ProDialog, + ProForm, + ProFormItemV2, + ProFormUpload, + ProFormText, + UploadUserFile, +} from '@bole-core/components'; +import { FormInstance } from 'element-plus'; + +defineOptions({ + name: 'TemplateAddDialog', +}); + +type Form = { + title?: string; + name: string; + url: UploadUserFile[]; +}; + +const visible = defineModel({ type: Boolean }); +const form = defineModel<Form>('form'); + +const emit = defineEmits<{ + (e: 'onConfirm'): void; + (e: 'onCancel'): void; +}>(); + +const dialogForm = ref<FormInstance>(); + +function onDialogClose() { + if (!dialogForm.value) return; + dialogForm.value.resetFields(); +} + +function handleConfirm() { + if (!dialogForm.value) return; + dialogForm.value.validate((valid) => { + if (valid) { + emit('onConfirm'); + } else { + return; + } + }); +} +</script> diff --git a/src/views/AgreementManage/constants/columns.ts b/src/views/AgreementManage/constants/columns.ts new file mode 100644 index 0000000..e6cfc33 --- /dev/null +++ b/src/views/AgreementManage/constants/columns.ts @@ -0,0 +1,34 @@ +import { defineColumns } from '@bole-core/components'; + +export const AgreementbManageColumns = defineColumns([ + { + id: '1', + enCode: 'name', + name: '妯℃澘鍚嶇О', + }, + { + id: '2', + enCode: 'identity', + name: '涓婁紶鏃堕棿', + }, + { + id: '3', + enCode: 'gender', + name: '鍒剁増鐘舵��', + }, + { + id: '5', + enCode: 'age', + name: '妯℃澘ID', + }, + { + id: '6', + enCode: 'contactPhoneNumber', + name: '鍒剁増鏃堕棿', + }, + { + id: '7', + enCode: 'hireStatus', + name: '浜岀淮鐮�', + }, +]); diff --git a/src/views/AgreementManage/constants/index.ts b/src/views/AgreementManage/constants/index.ts new file mode 100644 index 0000000..a7f066b --- /dev/null +++ b/src/views/AgreementManage/constants/index.ts @@ -0,0 +1 @@ +export * from './columns'; diff --git a/src/views/FinanceManage/components/DistributionDetailView.vue b/src/views/FinanceManage/components/DistributionDetailView.vue index 222e5b3..bb7857d 100644 --- a/src/views/FinanceManage/components/DistributionDetailView.vue +++ b/src/views/FinanceManage/components/DistributionDetailView.vue @@ -19,9 +19,8 @@ useTable, defineOperationBtns, } from '@bole-core/components'; -// import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; import { DistributionDetailColumns } from '../constants'; -import { FlexEnterpriseSettingStatus } from '@/constants'; +import * as taskServices from '@/services/api/task'; defineOptions({ name: 'DistributionDetailView', @@ -49,17 +48,15 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetOpenTaskInfosQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, - searchWord: extraParamState.searchWord, }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + let res = await taskServices.getOpenTaskInfos(params, { showLoading: !state.loading, }); return res; @@ -69,11 +66,9 @@ }, { defaultExtraParams: { - searchWord: '', orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], - flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + queryKey: ['taskServices/getOpenTaskInfos'], columnsRenderProps: {}, } ); diff --git a/src/views/FinanceManage/components/UsageDetailView.vue b/src/views/FinanceManage/components/UsageDetailView.vue index d4cfad9..fd56379 100644 --- a/src/views/FinanceManage/components/UsageDetailView.vue +++ b/src/views/FinanceManage/components/UsageDetailView.vue @@ -9,9 +9,8 @@ <script setup lang="ts"> import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components'; -// import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; import { UsageDetailColumns } from '../constants'; -import { FlexEnterpriseSettingStatus } from '@/constants'; +import * as taskServices from '@/services/api/task'; defineOptions({ name: 'UsageDetailView', @@ -37,17 +36,15 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetOpenTaskInfosQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, - searchWord: extraParamState.searchWord, }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + let res = await taskServices.getOpenTaskInfos(params, { showLoading: !state.loading, }); return res; @@ -57,11 +54,9 @@ }, { defaultExtraParams: { - searchWord: '', orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], - flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + queryKey: ['taskServices/getOpenTaskInfos'], columnsRenderProps: {}, } ); -- Gitblit v1.9.1