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