diff --git a/doc/sql/fund_proj_init.sql b/doc/sql/fund_proj_init.sql index eed0d30..eaef1e0 100644 --- a/doc/sql/fund_proj_init.sql +++ b/doc/sql/fund_proj_init.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS project ( project_code VARCHAR(64) NOT NULL COMMENT '项目编码', project_name VARCHAR(128) NOT NULL COMMENT '项目名称', customer_id VARCHAR(32) NOT NULL COMMENT '客户ID', + customer_name VARCHAR(128) COMMENT '客户名称', project_type VARCHAR(32) NOT NULL COMMENT '项目类型', budget_amount DECIMAL(18,2) COMMENT '预算金额', start_date DATE COMMENT '开始日期', diff --git a/fund-admin/src/api/expense.ts b/fund-admin/src/api/expense.ts index 72061b7..61cf246 100644 --- a/fund-admin/src/api/expense.ts +++ b/fund-admin/src/api/expense.ts @@ -13,20 +13,20 @@ export function createExpenseType(data: any) { return request.post('/exp/expense-type', data) } -export function updateExpenseType(id: number, data: any) { +export function updateExpenseType(id: string, data: any) { return request.put(`/exp/expense-type/${id}`, data) } -export function deleteExpenseType(id: number) { +export function deleteExpenseType(id: string) { return request.delete(`/exp/expense-type/${id}`) } // 支出管理 -export function getExpenseList(params: { pageNum: number; pageSize: number; title?: string; expenseType?: number; approvalStatus?: number; payStatus?: number }) { +export function getExpenseList(params: { pageNum: number; pageSize: number; title?: string; expenseType?: string; approvalStatus?: number; payStatus?: number }) { return request.get('/exp/expense/page', { params }) } -export function getExpenseById(id: number) { +export function getExpenseById(id: string) { return request.get(`/exp/expense/${id}`) } @@ -34,49 +34,49 @@ export function createExpense(data: any) { return request.post('/exp/expense', data) } -export function updateExpense(id: number, data: any) { +export function updateExpense(id: string, data: any) { return request.put(`/exp/expense/${id}`, data) } -export function deleteExpense(id: number) { +export function deleteExpense(id: string) { return request.delete(`/exp/expense/${id}`) } // 审批流程 -export function submitExpense(id: number) { +export function submitExpense(id: string) { return request.post(`/exp/expense/${id}/submit`) } -export function withdrawExpense(id: number) { +export function withdrawExpense(id: string) { return request.post(`/exp/expense/${id}/withdraw`) } -export function approveExpense(id: number, comment: string) { +export function approveExpense(id: string, comment: string) { return request.put(`/exp/expense/${id}/approve?comment=${encodeURIComponent(comment)}`) } -export function rejectExpense(id: number, comment: string) { +export function rejectExpense(id: string, comment: string) { return request.put(`/exp/expense/${id}/reject?comment=${encodeURIComponent(comment)}`) } -export function confirmPayExpense(id: number, payChannel: string, payVoucher?: string) { +export function confirmPayExpense(id: string, payChannel: string, payVoucher?: string) { return request.put(`/exp/expense/${id}/confirm-pay?payChannel=${payChannel}&payVoucher=${payVoucher || ''}`) } // 导出支出明细 -export function exportExpense(params?: { title?: string; expenseType?: number; approvalStatus?: number; payStatus?: number }) { +export function exportExpense(params?: { title?: string; expenseType?: string; approvalStatus?: number; payStatus?: number }) { const baseUrl = import.meta.env.VITE_API_URL || '' const token = localStorage.getItem('token') const tenantId = localStorage.getItem('tenantId') || '1' const queryParams = new URLSearchParams() if (params?.title) queryParams.append('title', params.title) - if (params?.expenseType) queryParams.append('expenseType', String(params.expenseType)) + if (params?.expenseType) queryParams.append('expenseType', params.expenseType) if (params?.approvalStatus !== undefined) queryParams.append('approvalStatus', String(params.approvalStatus)) if (params?.payStatus !== undefined) queryParams.append('payStatus', String(params.payStatus)) const queryString = queryParams.toString() - const url = `${baseUrl}/exp/expense/export${queryString ? '?' + queryString : ''}` + const url = `${baseUrl}/fund/exp/expense/export${queryString ? '?' + queryString : ''}` return fetch(url, { headers: { diff --git a/fund-admin/src/api/file.ts b/fund-admin/src/api/file.ts index 4692408..839fd96 100644 --- a/fund-admin/src/api/file.ts +++ b/fund-admin/src/api/file.ts @@ -1,11 +1,11 @@ import { request } from './request' // 文件上传 -export function uploadFile(file: File, businessType?: string, businessId?: number, description?: string) { +export function uploadFile(file: File, businessType?: string, businessId?: string, description?: string) { const formData = new FormData() formData.append('file', file) if (businessType) formData.append('businessType', businessType) - if (businessId) formData.append('businessId', String(businessId)) + if (businessId) formData.append('businessId', businessId) if (description) formData.append('description', description) return request.post('/file/upload', formData, { @@ -16,26 +16,26 @@ export function uploadFile(file: File, businessType?: string, businessId?: numbe } // 获取文件列表 -export function getFileList(params: { pageNum: number; pageSize: number; businessType?: string; businessId?: number; fileType?: string }) { +export function getFileList(params: { pageNum: number; pageSize: number; businessType?: string; businessId?: string; fileType?: string }) { return request.get('/file/page', { params }) } // 根据业务查询文件 -export function getFilesByBusiness(businessType: string, businessId: number) { +export function getFilesByBusiness(businessType: string, businessId: string) { return request.get('/file/list', { params: { businessType, businessId } }) } // 获取文件详情 -export function getFileById(id: number) { +export function getFileById(id: string) { return request.get(`/file/${id}`) } // 删除文件 -export function deleteFile(id: number) { +export function deleteFile(id: string) { return request.delete(`/file/${id}`) } // 获取文件下载URL export function getFileDownloadUrl(filePath: string) { - return `/file/download/${filePath}` + return `/fund/file/download/${filePath}` } diff --git a/fund-admin/src/api/project.ts b/fund-admin/src/api/project.ts index f1f2d2f..365b350 100644 --- a/fund-admin/src/api/project.ts +++ b/fund-admin/src/api/project.ts @@ -4,7 +4,7 @@ export function getProjectList(params: { pageNum: number; pageSize: number; proj return request.get('/project/page', { params }) } -export function getProjectById(id: number) { +export function getProjectById(id: string) { return request.get(`/project/${id}`) } @@ -12,11 +12,11 @@ export function createProject(data: any) { return request.post('/project', data) } -export function updateProject(id: number, data: any) { +export function updateProject(id: string, data: any) { return request.put(`/project/${id}`, data) } -export function deleteProject(id: number) { +export function deleteProject(id: string) { return request.delete(`/project/${id}`) } @@ -25,7 +25,7 @@ export function getRequirementList(params: { pageNum: number; pageSize: number; return request.get('/requirement/page', { params }) } -export function getRequirementById(id: number) { +export function getRequirementById(id: string) { return request.get(`/requirement/${id}`) } @@ -33,10 +33,10 @@ export function createRequirement(data: any) { return request.post('/requirement', data) } -export function updateRequirement(id: number, data: any) { +export function updateRequirement(id: string, data: any) { return request.put(`/requirement/${id}`, data) } -export function deleteRequirement(id: number) { +export function deleteRequirement(id: string) { return request.delete(`/requirement/${id}`) } diff --git a/fund-admin/src/views/customer/contact.vue b/fund-admin/src/views/customer/contact.vue index 1e6d90f..701964c 100644 --- a/fund-admin/src/views/customer/contact.vue +++ b/fund-admin/src/views/customer/contact.vue @@ -70,22 +70,18 @@ - - + + - - - - - + - - + + @@ -126,15 +122,15 @@ const dialogTitle = ref('新增联系人') const formRef = ref() const form = reactive({ - contactId: null as number | null, + id: null as string | null, customerId: customerId.value, contactName: '', position: '', phone: '', email: '', - wechat: '', - isPrimary: false, - remarks: '' + isPrimary: 0, + status: 1, + remark: '' }) const rules = reactive({ @@ -210,8 +206,8 @@ const handleSubmit = async () => { submitLoading.value = true try { - if (form.contactId) { - await updateContact(form.contactId, form) + if (form.id) { + await updateContact(form.id, form) ElMessage.success('更新成功') } else { await createContact(form) @@ -228,15 +224,15 @@ const handleSubmit = async () => { } const resetForm = () => { - form.contactId = null + form.id = null form.customerId = customerId.value form.contactName = '' form.position = '' form.phone = '' form.email = '' - form.wechat = '' - form.isPrimary = false - form.remarks = '' + form.isPrimary = 0 + form.status = 1 + form.remark = '' formRef.value?.clearValidate() } diff --git a/fund-admin/src/views/expense/index.vue b/fund-admin/src/views/expense/index.vue index c00237d..fd74a39 100644 --- a/fund-admin/src/views/expense/index.vue +++ b/fund-admin/src/views/expense/index.vue @@ -6,12 +6,12 @@ - + @@ -44,7 +44,7 @@ - + @@ -57,20 +57,20 @@ - +