智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

83 lines
2.2 KiB

import request from '@/utils/request'
export interface ContractTemplate {
id: number
contract_name: string
contract_template: string
contract_status: string
contract_type: string
created_at: string
}
export interface PlaceholderConfig {
id: number
contract_id: number
placeholder: string
table_name: string
field_name: string
field_type: string
is_required: number
default_value: string
}
export interface ContractDistribution {
id: number
contract_name: string
personnel_name: string
type: number
status: string
source_type: string
created_at: string
sign_time: string
}
export interface GenerateLog {
id: number
contract_name: string
user_name: string
user_type: number
status: string
created_at: string
completed_at: string
error_msg: string
}
// 模板管理API
export const contractTemplateApi = {
// 获取模板列表
getList: (params: any) => request.get('/admin/contract/template', { params }),
// 上传模板
uploadTemplate: (data: FormData) => request.post('/admin/contract/template/upload', data),
// 获取占位符配置
getPlaceholderConfig: (contractId: number) => request.get(`/admin/contract/template/${contractId}/placeholder`),
// 保存占位符配置
savePlaceholderConfig: (contractId: number, data: PlaceholderConfig[]) =>
request.post(`/admin/contract/template/${contractId}/placeholder`, { config: data }),
// 删除模板
delete: (id: number) => request.delete(`/admin/contract/template/${id}`)
}
// 合同分发API
export const contractDistributionApi = {
// 获取分发记录
getList: (params: any) => request.get('/admin/contract/distribution', { params }),
// 手动分发
manualDistribute: (data: any) => request.post('/admin/contract/distribution/manual', data),
// 获取人员列表
getPersonnelList: (params: any) => request.get('/admin/personnel', { params })
}
// 生成记录API
export const generateLogApi = {
// 获取生成记录
getList: (params: any) => request.get('/admin/contract/generate-log', { params }),
// 下载生成的文档
downloadDocument: (id: number) => request.get(`/admin/contract/generate-log/${id}/download`, { responseType: 'blob' })
}