Compare commits

...

2 Commits

Author SHA1 Message Date
zyk
62b01a0825 Merge remote-tracking branch 'origin/main' 2025-08-26 10:30:10 +08:00
zyk
fe143f8b2f 时间排序最先 2025-08-26 10:30:01 +08:00
7 changed files with 176 additions and 126 deletions

View File

@ -124,9 +124,29 @@
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="Breeding_recordsList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="Breeding_recordsList"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
:default-sort="{prop: 'createTime', order: 'descending'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="耳号" align="center" prop="eweManageTags" width="120" fixed="left" />
<!-- 创建日期作为第一列支持排序 -->
<el-table-column
label="创建日期"
align="center"
prop="createTime"
width="180"
fixed="left"
sortable="custom"
sort-by="createTime"
>
<template #default="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="eweManageTags" width="120" />
<el-table-column label="品种" align="center" prop="eweVariety" width="100" />
<el-table-column label="事件类型" align="center" width="100">
<template #default="scope">
@ -135,7 +155,11 @@
</el-table-column>
<el-table-column label="配种公羊" align="center" prop="ramManageTags" width="120" />
<el-table-column label="配种公羊品种" align="center" prop="ramVariety" width="120" />
<el-table-column label="配种方式" align="center" prop="matingType" width="100" />
<el-table-column label="配种方式" align="center" prop="matingType" width="100">
<template #default="scope">
<span>{{ getBreedTypeText(scope.row.breedType) }}</span>
</template>
</el-table-column>
<el-table-column label="月龄" align="center" prop="eweMonthAge" width="80" />
<el-table-column label="配种时羊只类别" align="center" prop="sheepType" width="120" />
<el-table-column label="胎次" align="center" prop="eweParity" width="80" />
@ -197,11 +221,6 @@
</el-table-column>
<el-table-column label="创建人" align="center" prop="createBy" width="100" />
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column label="所在牧场" align="center" prop="ranchName" width="120" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160" fixed="right">
<template #default="scope">
@ -366,9 +385,17 @@
</template>
<script setup name="Breeding_records">
import { listBreeding_records, getBreeding_records, delBreeding_records, addBreeding_records, updateBreeding_records, getSheepInfoByTags, getLatestBreedPlanByEweTags } from "@/api/Breeding_records/Breeding_records"
import {
listBreeding_records,
getBreeding_records,
delBreeding_records,
addBreeding_records,
updateBreeding_records,
getSheepInfoByTags,
getLatestBreedPlanByEweTags
} from "@/api/Breeding_records/Breeding_records"
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
const Breeding_recordsList = ref([])
const open = ref(false)
@ -398,25 +425,43 @@ const data = reactive({
createBy: null,
createTime: null,
pregnancyResult: null,
isPregnancyChecked: null
isPregnancyChecked: null,
//
orderByColumn: 'createTime',
isAsc: 'desc'
},
rules: {
eweManageTags: [
{ required: true, message: "母羊耳号不能为空", trigger: "blur" }
{required: true, message: "母羊耳号不能为空", trigger: "blur"}
],
ramManageTags: [
{ required: true, message: "公羊耳号不能为空", trigger: "blur" }
{required: true, message: "公羊耳号不能为空", trigger: "blur"}
],
technician: [
{ required: true, message: "技术员不能为空", trigger: "blur" }
{required: true, message: "技术员不能为空", trigger: "blur"}
],
breedType: [
{ required: true, message: "配种方式不能为空", trigger: "change" }
{required: true, message: "配种方式不能为空", trigger: "change"}
]
}
})
const { queryParams, form, rules } = toRefs(data)
const {queryParams, form, rules} = toRefs(data)
/** 获取配种方式文字显示 */
function getBreedTypeText(breedType) {
if (breedType === 1) return '同期发情'
if (breedType === 2) return '本交'
return '-'
}
/** 获取孕检结果标签类型 */
function getPregnancyResultType(result) {
if (result === '怀孕') return 'success'
if (result === '空怀') return 'danger'
if (result === '疑似怀孕') return 'warning'
return 'info'
}
/** 查询配种记录列表 */
function getList() {
@ -428,6 +473,13 @@ function getList() {
})
}
//
function handleSortChange({column, prop, order}) {
queryParams.value.orderByColumn = prop
queryParams.value.isAsc = order === 'ascending' ? 'asc' : 'desc'
getList()
}
//
function cancel() {
open.value = false
@ -584,12 +636,13 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除配种记录编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除配种记录编号为"' + _ids + '"的数据项?').then(function () {
return delBreeding_records(_ids)
}).then(() => {
getList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch(() => {
})
}
/** 导出按钮操作 */
@ -599,33 +652,12 @@ function handleExport() {
}, `配种记录_${new Date().getTime()}.xlsx`)
}
/** 获取孕检结果类型 */
function getPregnancyResultType(result) {
if (result === '怀孕') {
return 'success'
} else if (result === '空怀') {
return 'danger'
} else if (result === '疑似怀孕') {
return 'warning'
} else {
return 'info'
}
}
getList()
//
onMounted(() => {
getList()
})
</script>
<style scoped>
.el-table {
font-size: 13px;
}
.el-table .cell {
white-space: nowrap;
}
.el-divider {
margin: 16px 0;
}
.el-divider--horizontal {
margin: 16px 0;
}
/* 样式保持不变 */
</style>

View File

@ -89,6 +89,12 @@
<el-table v-loading="loading" :data="Pregnancy_TestList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- 日期作为第一列 -->
<el-table-column label="孕检日期" align="center" prop="datetime" width="120" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="manageTags" width="120" />
<el-table-column label="品种" align="center" prop="variety" width="100" />
<el-table-column label="事件类型" align="center" width="80">
@ -96,11 +102,6 @@
<span>孕检</span>
</template>
</el-table-column>
<el-table-column label="孕检日期" align="center" prop="datetime" width="120">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="孕检结果" align="center" prop="result" width="80">
<template #default="scope">
<el-tag :type="getResultTagType(scope.row.result)">

View File

@ -75,10 +75,6 @@
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
@ -125,14 +121,15 @@
<el-table v-loading="loading" :data="SpermList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="耳号" align="center" prop="manageTags" width="120" />
<el-table-column label="电子耳号" align="center" prop="electronicTags" width="120" />
<el-table-column label="月龄" align="center" prop="monthAge" width="80" />
<el-table-column label="采精日期" align="center" prop="pickDate" width="120">
<!-- 日期作为第一列 -->
<el-table-column label="采精日期" align="center" prop="pickDate" width="120" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.pickDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="manageTags" width="120" />
<el-table-column label="电子耳号" align="center" prop="electronicTags" width="120" />
<el-table-column label="月龄" align="center" prop="monthAge" width="80" />
<el-table-column label="采精量(ml)" align="center" prop="amount" width="100" />
<el-table-column label="精液密度" align="center" prop="density" width="100" />
<el-table-column label="精液活力" align="center" prop="vitallity" width="100" />
@ -258,9 +255,9 @@
</template>
<script setup name="Sperm">
import { listSperm, getSperm, delSperm, addSperm, updateSperm } from "@/api/Sperm/Sperm"
import {listSperm, getSperm, delSperm, addSperm, updateSperm} from "@/api/Sperm/Sperm"
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
const SpermList = ref([])
const open = ref(false)
@ -292,18 +289,18 @@ const data = reactive({
},
rules: {
manageTags: [
{ required: true, message: "耳号不能为空", trigger: "blur" }
{required: true, message: "耳号不能为空", trigger: "blur"}
],
pickDate: [
{ required: true, message: "采精日期不能为空", trigger: "blur" }
{required: true, message: "采精日期不能为空", trigger: "blur"}
],
amount: [
{ required: true, message: "采精量不能为空", trigger: "blur" }
{required: true, message: "采精量不能为空", trigger: "blur"}
]
}
})
const { queryParams, form, rules } = toRefs(data)
const {queryParams, form, rules} = toRefs(data)
/** 查询采精记录列表 */
function getList() {
@ -404,12 +401,13 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除采精记录编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除采精记录编号为"' + _ids + '"的数据项?').then(function () {
return delSperm(_ids)
}).then(() => {
getList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch(() => {
})
}
/** 导出按钮操作 */

View File

@ -130,14 +130,15 @@
<!-- 数据表格 -->
<el-table v-loading="loading" :data="weaning_recordList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="耳号" align="center" prop="earNumber" width="100" />
<el-table-column label="品种" align="center" prop="breed" width="100" />
<el-table-column label="事件类型" align="center" prop="eventType" width="100" />
<el-table-column label="断奶日期" align="center" prop="datetime" width="120">
<!-- 日期作为第一列 -->
<el-table-column label="断奶日期" align="center" prop="datetime" width="120" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="earNumber" width="100" />
<el-table-column label="品种" align="center" prop="breed" width="100" />
<el-table-column label="事件类型" align="center" prop="eventType" width="100" />
<el-table-column label="性别" align="center" prop="gender" width="80" />
<el-table-column label="父号" align="center" prop="fatherNumber" width="100" />
<el-table-column label="母号" align="center" prop="motherNumber" width="100" />

View File

@ -99,14 +99,15 @@
<el-table v-loading="loading" :data="drymilkList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="耳号" align="center" prop="manageTags" />
<el-table-column label="品种" align="center" prop="variety" />
<el-table-column label="事件类型" align="center" prop="eventType" />
<el-table-column label="干奶日期" align="center" prop="datetime" width="180">
<!-- 日期作为第一列 -->
<el-table-column label="干奶日期" align="center" prop="datetime" width="180" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="manageTags" />
<el-table-column label="品种" align="center" prop="variety" />
<el-table-column label="事件类型" align="center" prop="eventType" />
<el-table-column label="是否使用乳头封闭剂" align="center" prop="status">
<template #default="scope">
<span>{{ scope.row.status === 1 ? '是' : '否' }}</span>

View File

@ -93,6 +93,12 @@
<el-table v-loading="loading" :data="miscarriageList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- 日期作为第一列 -->
<el-table-column label="流产日期" align="center" prop="datetime" width="100" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="耳号" align="center" prop="bsManageTags" />
<el-table-column label="品种" align="center" prop="variety" />
<el-table-column label="事件类型" align="center">
@ -100,11 +106,6 @@
<span>流产</span>
</template>
</el-table-column>
<el-table-column label="流产日期" align="center" prop="datetime" width="100">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="流产原因" align="center" prop="reason" />
<el-table-column label="配种类型" align="center" prop="matingTypeName" />
<el-table-column label="配种日期" align="center" prop="matingDate" width="100">
@ -244,9 +245,17 @@
</template>
<script setup name="Miscarriage">
import { listMiscarriage, getMiscarriage, delMiscarriage, addMiscarriage, updateMiscarriage, getSheepInfo, getReasonOptions } from "@/api/miscarriage/miscarriage"
import {
listMiscarriage,
getMiscarriage,
delMiscarriage,
addMiscarriage,
updateMiscarriage,
getSheepInfo,
getReasonOptions
} from "@/api/miscarriage/miscarriage"
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
const miscarriageList = ref([])
const open = ref(false)
@ -276,24 +285,24 @@ const data = reactive({
},
rules: {
manageTags: [
{ required: true, message: "耳号不能为空", trigger: "blur" }
{required: true, message: "耳号不能为空", trigger: "blur"}
],
datetime: [
{ required: true, message: "事件日期不能为空", trigger: "blur" }
{required: true, message: "事件日期不能为空", trigger: "blur"}
],
reason: [
{ required: true, message: "流产原因不能为空", trigger: "change" }
{required: true, message: "流产原因不能为空", trigger: "change"}
],
status: [
{ required: true, message: "是否列胎次不能为空", trigger: "change" }
{required: true, message: "是否列胎次不能为空", trigger: "change"}
],
exposeType: [
{ required: true, message: "是否见胎不能为空", trigger: "change" }
{required: true, message: "是否见胎不能为空", trigger: "change"}
]
}
})
const { queryParams, form, rules } = toRefs(data)
const {queryParams, form, rules} = toRefs(data)
/** 查询流产记录列表 */
function getList() {
@ -427,12 +436,13 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除流产记录编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除流产记录编号为"' + _ids + '"的数据项?').then(function () {
return delMiscarriage(_ids)
}).then(() => {
getList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch(() => {
})
}
/** 导出按钮操作 */

View File

@ -70,7 +70,8 @@
icon="Plus"
@click="handleAdd"
v-hasPermi="['sheep_death:death:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -80,7 +81,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['sheep_death:death:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -90,7 +92,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['sheep_death:death:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -99,52 +102,58 @@
icon="Download"
@click="handleExport"
v-hasPermi="['sheep_death:death:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="deathList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键ID" align="center" prop="id" width="80" />
<el-table-column label="管理耳号" align="center" prop="manageTags" width="120" />
<el-table-column label="品种" align="center" prop="variety" width="100" />
<el-table-column label="事件类型" align="center" prop="eventType" width="100" />
<el-table-column label="死亡日期" align="center" prop="deathDate" width="120">
<el-table-column type="selection" width="55" align="center"/>
<!-- 日期作为第一列 -->
<el-table-column label="死亡日期" align="center" prop="deathDate" width="120" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.deathDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="死亡时羊只类别" align="center" prop="sheepType" width="130" />
<el-table-column label="主键ID" align="center" prop="id" width="80"/>
<el-table-column label="管理耳号" align="center" prop="manageTags" width="120"/>
<el-table-column label="品种" align="center" prop="variety" width="100"/>
<el-table-column label="事件类型" align="center" prop="eventType" width="100"/>
<el-table-column label="死亡时羊只类别" align="center" prop="sheepType" width="130"/>
<el-table-column label="性别" align="center" prop="gender" width="80">
<template #default="scope">
<span>{{ scope.row.gender === 1 ? '母' : scope.row.gender === 2 ? '公' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="日龄" align="center" prop="dayAge" width="80" />
<el-table-column label="胎次" align="center" prop="parity" width="80" />
<el-table-column label="疾病类型ID" align="center" prop="diseaseTypeId" width="120" />
<el-table-column label="疾病子类型ID" align="center" prop="diseaseSubtypeId" width="130" />
<el-table-column label="死淘去向" align="center" prop="disposalDirection" width="100" />
<el-table-column label="技术员" align="center" prop="technician" width="100" />
<el-table-column label="处理人" align="center" prop="handler" width="100" />
<el-table-column label="羊舍" align="center" prop="sheepfoldName" width="120" />
<el-table-column label="班组" align="center" prop="workGroup" width="100" />
<el-table-column label="繁育状态" align="center" prop="breedStatus" width="100" />
<el-table-column label="死亡时产后天数" align="center" prop="postLambingDay" width="130" />
<el-table-column label="死亡时泌乳天数" align="center" prop="lactationDay" width="130" />
<el-table-column label="死亡时怀孕天数" align="center" prop="gestationDay" width="130" />
<el-table-column label="创建人" align="center" prop="createBy" width="100" />
<el-table-column label="日龄" align="center" prop="dayAge" width="80"/>
<el-table-column label="胎次" align="center" prop="parity" width="80"/>
<el-table-column label="疾病类型ID" align="center" prop="diseaseTypeId" width="120"/>
<el-table-column label="疾病子类型ID" align="center" prop="diseaseSubtypeId" width="130"/>
<el-table-column label="死淘去向" align="center" prop="disposalDirection" width="100"/>
<el-table-column label="技术员" align="center" prop="technician" width="100"/>
<el-table-column label="处理人" align="center" prop="handler" width="100"/>
<el-table-column label="羊舍" align="center" prop="sheepfoldName" width="120"/>
<el-table-column label="班组" align="center" prop="workGroup" width="100"/>
<el-table-column label="繁育状态" align="center" prop="breedStatus" width="100"/>
<el-table-column label="死亡时产后天数" align="center" prop="postLambingDay" width="130"/>
<el-table-column label="死亡时泌乳天数" align="center" prop="lactationDay" width="130"/>
<el-table-column label="死亡时怀孕天数" align="center" prop="gestationDay" width="130"/>
<el-table-column label="创建人" align="center" prop="createBy" width="100"/>
<el-table-column label="创建日期" align="center" prop="createTime" width="120">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="comment" width="150" />
<el-table-column label="备注" align="center" prop="comment" width="150"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['sheep_death:death:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['sheep_death:death:remove']">删除</el-button>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['sheep_death:death:edit']">修改
</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['sheep_death:death:remove']">删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -183,17 +192,15 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="疾病类型ID" prop="diseaseTypeId">
<el-input-number v-model="form.diseaseTypeId" placeholder="请输入疾病类型ID" :min="0" />
<el-input-number v-model="form.diseaseTypeId" placeholder="请输入疾病类型ID" :min="0"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="疾病子类型ID" prop="diseaseSubtypeId">
<el-input-number v-model="form.diseaseSubtypeId" placeholder="请输入疾病子类型ID" :min="0" />
<el-input-number v-model="form.diseaseSubtypeId" placeholder="请输入疾病子类型ID" :min="0"/>
</el-form-item>
</el-col>
</el-row>
@ -202,14 +209,14 @@
<el-col :span="12">
<el-form-item label="死淘去向" prop="disposalDirection">
<el-select v-model="form.disposalDirection" placeholder="请选择死淘去向">
<el-option label="深埋" value="深埋" />
<el-option label="无害化" value="无害化" />
<el-option label="深埋" value="深埋"/>
<el-option label="无害化" value="无害化"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="技术员" prop="technician">
<el-input v-model="form.technician" placeholder="请输入技术员" />
<el-input v-model="form.technician" placeholder="请输入技术员"/>
</el-form-item>
</el-col>
</el-row>
@ -217,12 +224,12 @@
<el-row>
<el-col :span="12">
<el-form-item label="处理人" prop="handler">
<el-input v-model="form.handler" placeholder="请输入处理人" />
<el-input v-model="form.handler" placeholder="请输入处理人"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班组" prop="workGroup">
<el-input v-model="form.workGroup" placeholder="请输入班组" />
<el-input v-model="form.workGroup" placeholder="请输入班组"/>
</el-form-item>
</el-col>
</el-row>
@ -230,7 +237,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="comment">
<el-input v-model="form.comment" type="textarea" placeholder="请输入内容" />
<el-input v-model="form.comment" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>