diff --git a/src/api/embryo/flush.js b/src/api/embryo/flush.js index 1c24cfc..6f07eb4 100644 --- a/src/api/embryo/flush.js +++ b/src/api/embryo/flush.js @@ -58,4 +58,30 @@ export function getDonorFemaleList() { url: '/embryo/flush/donorFemaleList', method: 'get' }) +} + +// 获取供体公羊下拉列表 +export function getDonorMaleList() { + return request({ + url: '/embryo/flush/donorMaleList', + method: 'get' + }) +} + +// 根据耳号获取基础信息 +export function getSheepInfo(manageTag) { + return request({ + url: '/embryo/flush/getSheepInfo', + method: 'get', + params: { manageTag } + }) +} + +// 计算胚胎品种 +export function calculateEmbryoVariety(maleVariety, femaleVariety) { + return request({ + url: '/embryo/flush/calculateVariety', + method: 'get', + params: { maleVariety, femaleVariety } + }) } \ No newline at end of file diff --git a/src/api/mating_plan/generate.js b/src/api/mating_plan/generate.js index 4153265..929146a 100644 --- a/src/api/mating_plan/generate.js +++ b/src/api/mating_plan/generate.js @@ -18,22 +18,63 @@ export function getBreedPlanGenerate(id) { } // 筛选符合条件的母羊 -export function selectEligibleEwe() { +export function selectEligibleEwe(params) { return request({ url: '/mating_plan/generate/selectEwe', - method: 'get' + method: 'get', + params }) } // 筛选符合条件的公羊 -export function selectEligibleRam() { +export function selectEligibleRam(params) { return request({ url: '/mating_plan/generate/selectRam', - method: 'get' + method: 'get', + params }) } -// 自动生成配种计划 +/** + * 导出已选母羊/公羊配对表(按轮询自动配对,用户可在Excel中调整后再导入) + * @param {Object} data - { eweIds: [], ramIds: [] } + */ +export function exportSelectedPairs(data) { + return request({ + url: '/mating_plan/generate/exportPairs', + method: 'post', + data, + responseType: 'blob' + }) +} + +/** + * 解析上传的配对Excel,返回预览数据,不生成计划 + * 使用 FormData 上传文件 + * @param {FormData} formData - 包含 file 字段的表单数据 + */ +export function parsePairsFromExcel(formData) { + return request({ + url: '/mating_plan/generate/parsePairs', + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) +} + +/** + * 根据导入的配对数据生成配种计划 + * @param {Object} data - { planType: 1, pairs: [{eweEarNo, ramEarNo, eweId, ramId}] } + */ +export function generateBreedPlanFromPairs(data) { + return request({ + url: '/mating_plan/generate/generateFromPairs', + method: 'post', + data + }) +} + +// 自动生成配种计划(按比例分配,原有逻辑) export function autoGenerateBreedPlan(data) { return request({ url: '/mating_plan/generate/auto', @@ -85,24 +126,15 @@ export function viewBreedPlan(id) { }) } -// 导出配种计划详情 +// 导出配种计划详情(已审批计划的详细Excel) export function exportBreedPlanDetails(id) { return request({ url: '/mating_plan/generate/export/' + id, - method: 'get', + method: 'post', responseType: 'blob' }) } -// 修改配种计划详情 -export function updateBreedPlan(data) { - return request({ - url: '/mating_plan/generate/update', - method: 'put', - data: data - }) -} - // 删除配种计划生成 export function delBreedPlanGenerate(id) { return request({ @@ -114,9 +146,18 @@ export function delBreedPlanGenerate(id) { // 模糊查询母羊耳号列表 export function searchEarNumbers(query) { return request({ - url: '/mating_plan/generate/search_ear_numbers', // 根据实际路径修改 + url: '/mating_plan/generate/search_ear_numbers', method: 'get', params: { query } }) } +// 下载配对模板(空白模板,只有表头) +export function downloadPairTemplate() { + return request({ + url: '/mating_plan/generate/exportPairs', + method: 'post', + data: { eweIds: [], ramIds: [] }, + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/src/views/Weaning/weaning_record/index.vue b/src/views/Weaning/weaning_record/index.vue index 4270740..3b51aef 100644 --- a/src/views/Weaning/weaning_record/index.vue +++ b/src/views/Weaning/weaning_record/index.vue @@ -1,8 +1,9 @@