分页查询部分页面的排序

This commit is contained in:
漂泊 2025-10-12 13:16:14 +08:00
parent dbd160ff31
commit d4d26d558d
11 changed files with 140 additions and 162 deletions

View File

@ -27,7 +27,8 @@
</el-row>
<!-- 3. 列表 -->
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="驱虫日期" align="center" prop="datetime" width="180">
<template #default="scope">{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</template>
@ -40,8 +41,8 @@
<dict-tag :options="sheep_gender" :value="scope.row.gender" />
</template>
</el-table-column>
<el-table-column label="月龄" align="center" prop="monthAge" />
<el-table-column label="胎次" align="center" prop="parity" />
<el-table-column label="月龄" align="center" prop="monthAge" sortable="custom" />
<el-table-column label="胎次" align="center" prop="parity" sortable="custom" />
<el-table-column label="繁殖状态" align="center" prop="breed" />
<el-table-column label="技术员" align="center" prop="technical" />
<el-table-column label="备注" align="center" prop="comment" />
@ -54,7 +55,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 4. 新增弹窗羊舍多选 + 无卡片 + 自动剔除 -->
<el-dialog title="新增驱虫记录" v-model="addOpen" width="60%" top="5vh" append-to-body>
@ -297,9 +298,11 @@
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepNo: null,
technical: null
technical: null,
orderByColumn: null, //
isAsc: null //
})
const ids = ref([])
@ -327,6 +330,17 @@
multiple.value = !selection.length
}
function handleSortChange({ prop, order }) {
if (!order) { //
queryParams.orderByColumn = null
queryParams.isAsc = null
} else {
queryParams.orderByColumn = prop // monthAge parity
queryParams.isAsc = order === 'ascending' ? 'asc' : 'desc'
}
getList()
}
function handleQuery() {
queryParams.pageNum = 1
getList()

View File

@ -106,7 +106,7 @@
<!-- 分页 -->
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<el-dialog :title="title" v-model="open" width="45%" append-to-body>
<el-form ref="diagnosisRef" :model="form" :rules="rules" label-width="90px">
@ -228,7 +228,7 @@ const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepNo: null,
datetime: null,
diseasePid: null,

View File

@ -6,8 +6,8 @@
</el-form-item>
<el-form-item label="疾病大类" prop="pid">
<el-tree-select v-model="queryParams.pid" :data="diseaseOptions" style="width: 180px;"
:props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" placeholder="请选择"
check-strictly />
:props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" placeholder="请选择"
check-strictly />
</el-form-item>
<el-form-item>
@ -35,8 +35,10 @@
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['disease:disease:edit']">修改</el-button>
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)"
v-hasPermi="['disease:disease:add']">新增</el-button>
<el-button v-if="scope.row.pid === 0" link type="primary" icon="Plus" @click="handleAdd(scope.row)"
v-hasPermi="['disease:disease:add']">
新增
</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['disease:disease:remove']">删除</el-button>
</template>

View File

@ -68,7 +68,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- ==================== 新增弹窗 ==================== -->
<el-dialog :title="titleAdd" v-model="openAdd" width="60%" top="5vh" append-to-body>
@ -85,8 +85,7 @@
<el-col :span="12">
<!-- 3 type=datetime -->
<el-form-item label="消毒日期" prop="datetime">
<el-date-picker v-model="form.datetime" type="date" value-format="YYYY-MM-DD"
style="width: 100%" />
<el-date-picker v-model="form.datetime" type="date" value-format="YYYY-MM-DD" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
@ -192,8 +191,7 @@
<el-col :span="12">
<el-form-item label="消毒日期" prop="datetime">
<el-date-picker v-model="editForm.datetime" type="date" value-format="YYYY-MM-DD"
style="width: 100%" />
<el-date-picker v-model="editForm.datetime" type="date" value-format="YYYY-MM-DD" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
@ -303,7 +301,7 @@ const daterangeDatetime = ref([])
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepfoldId: null,
technician: null
})

View File

@ -27,7 +27,8 @@
</el-row>
<!-- 3. 列表 -->
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="保健日期" align="center" prop="datetime" width="180">
<template #default="scope">{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</template>
@ -40,8 +41,9 @@
<dict-tag :options="sheep_gender" :value="scope.row.gender" />
</template>
</el-table-column>
<el-table-column label="月龄" align="center" prop="monthAge" />
<el-table-column label="胎次" align="center" prop="parity" />
<el-table-column label="月龄" align="center" prop="monthAge" sortable="custom" />
<el-table-column label="胎次" align="center" prop="parity" sortable="custom" />
<el-table-column label="繁殖状态" align="center" prop="breed" />
<el-table-column label="技术员" align="center" prop="technical" />
@ -55,7 +57,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 4. 新增弹窗羊舍多选 + 无卡片 + 自动剔除 -->
<el-dialog title="新增保健记录" v-model="addOpen" width="60%" top="5vh" append-to-body>
@ -298,9 +300,11 @@ const daterangeDatetime = ref([])
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepNo: null,
technical: null
technical: null,
orderByColumn: null, //
isAsc: null //
})
const ids = ref([])
@ -328,6 +332,18 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length
}
function handleSortChange({ prop, order }) {
if (!order) { //
queryParams.orderByColumn = null
queryParams.isAsc = null
} else {
queryParams.orderByColumn = prop // monthAge parity
queryParams.isAsc = order === 'ascending' ? 'asc' : 'desc'
}
getList()
}
function handleQuery() {
queryParams.pageNum = 1
getList()

View File

@ -27,7 +27,8 @@
</el-row>
<!-- 3. 列表 -->
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="dewormList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="免疫日期" align="center" prop="datetime" width="180">
<template #default="scope">{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</template>
@ -40,8 +41,8 @@
<dict-tag :options="sheep_gender" :value="scope.row.gender" />
</template>
</el-table-column>
<el-table-column label="月龄" align="center" prop="monthAge" />
<el-table-column label="胎次" align="center" prop="parity" />
<el-table-column label="月龄" align="center" prop="monthAge" sortable="custom" />
<el-table-column label="胎次" align="center" prop="parity" sortable="custom" />
<el-table-column label="繁殖状态" align="center" prop="breed" />
<el-table-column label="技术员" align="center" prop="technical" />
<el-table-column label="备注" align="center" prop="comment" />
@ -54,7 +55,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 4. 新增弹窗羊舍多选 + 无卡片 + 自动剔除 -->
<el-dialog title="新增免疫记录" v-model="addOpen" width="60%" top="5vh" append-to-body>
@ -297,9 +298,11 @@ const daterangeDatetime = ref([])
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepNo: null,
technical: null
technical: null,
orderByColumn: null, //
isAsc: null //
})
const ids = ref([])
@ -327,6 +330,18 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length
}
function handleSortChange({ prop, order }) {
if (!order) { //
queryParams.orderByColumn = null
queryParams.isAsc = null
} else {
queryParams.orderByColumn = prop // monthAge parity
queryParams.isAsc = order === 'ascending' ? 'asc' : 'desc'
}
getList()
}
function handleQuery() {
queryParams.pageNum = 1
getList()

View File

@ -25,7 +25,8 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:medicine:add']">新增</el-button>
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['system:medicine:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
@ -56,7 +57,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 添加或修改药品对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
@ -113,7 +114,7 @@ const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
medica: null,
name: null,
medicType: null,

View File

@ -71,7 +71,7 @@
<!-- 分页 -->
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 弹框详情/修改 -->
<el-dialog :title="title" v-model="open" width="60%" append-to-body s>
@ -228,7 +228,7 @@ const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
no: null,
name: null,
persType: null,

View File

@ -80,6 +80,7 @@
<dict-tag :options="quar_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="备注" align="center" prop="comment" />
<el-table-column label="操作" align="center" width="200" fixed="right">
<template #default="scope">
@ -94,7 +95,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 新增弹窗 -->
<el-dialog title="新增检疫记录" v-model="addOpen" width="700px" append-to-body>
@ -312,7 +313,7 @@ const daterangeDatetime = ref([])
/* 查询参数 */
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepId: null
})

View File

@ -45,7 +45,8 @@
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="treatmentList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="treatmentList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="治疗日期" align="center" prop="datetime" width="180">
<template #default="scope">
@ -55,14 +56,14 @@
<el-table-column label="羊只耳号" align="center" prop="sheepNo" />
<el-table-column label="品种" align="center" prop="variety" />
<el-table-column label="羊只类别" align="center" prop="sheepType" />
<el-table-column label="月龄" align="center" prop="monthAge" />
<el-table-column label="月龄" align="center" prop="monthAge" sortable="custom" />
<el-table-column label="羊只性别" align="center" prop="gender">
<template #default="scope"><dict-tag :options="sheep_gender" :value="scope.row.gender" /></template>
</el-table-column>
<el-table-column label="胎次" align="center" prop="parity" />
<el-table-column label="胎次" align="center" prop="parity" sortable="custom" />
<el-table-column label="繁殖状态" align="center" prop="breed" />
<el-table-column label="泌乳天数" align="center" prop="lactDay" />
<el-table-column label="怀孕天数" align="center" prop="gestDay" />
<el-table-column label="泌乳天数" align="center" prop="lactDay" sortable="custom" width="120px"/>
<el-table-column label="怀孕天数" align="center" prop="gestDay" sortable="custom" width="120px"/>
<el-table-column label="疾病类型" align="center" prop="diseaseName" />
<el-table-column label="治疗状态" align="center" prop="treatmentPlan">
<template #default="scope"><dict-tag :options="treat_status" :value="scope.row.status" /></template>
@ -80,7 +81,7 @@
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 新增弹窗 -->
<el-dialog title="添加治疗记录" v-model="addDialog" width="70%" top="5vh" append-to-body destroy-on-close>
@ -155,7 +156,7 @@
</el-table-column>
<el-table-column label="用量" width="160px">
<template #default="scope">
<el-input-number v-model="scope.row.dosage" :min="0" :precision="1" style="width: 120px;"/>
<el-input-number v-model="scope.row.dosage" :min="0" :precision="1" style="width: 120px;" />
</template>
</el-table-column>
<el-table-column label="单位">
@ -462,9 +463,11 @@ const sheepfolds = ref([])
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
pageSize: 20,
sheepNo: null,
veterinary: null
veterinary: null,
orderByColumn: null, //
isAsc: null
})
/* ---------- 弹窗控制 ---------- */
@ -759,6 +762,17 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length
}
function handleSortChange({ prop, order }) {
if (!order) { //
queryParams.orderByColumn = null
queryParams.isAsc = null
} else {
queryParams.orderByColumn = prop
queryParams.isAsc = order === 'ascending' ? 'asc' : 'desc'
}
getList()
}
/* 跳转诊疗 */
function gotDiag(row) {
router.push({ path: '/biosafety/diagnosis/add', query: { tId: row.id, sId: row.sheepId } })

View File

@ -1,68 +1,30 @@
<template>
<div class="app-container">
<!-- 搜索表单 -->
<el-form
ref="queryRef"
:model="queryParams"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form ref="queryRef" :model="queryParams" :inline="true" v-show="showSearch" label-width="68px">
<!-- 使用日期新增 -->
<el-form-item label="使用日期" style="width: 308px">
<el-date-picker
v-model="daterangeUseTime"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD"
/>
<el-date-picker v-model="daterangeUseTime" type="daterange" range-separator="-" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="YYYY-MM-DD" />
</el-form-item>
<!-- 创建日期原有 -->
<el-form-item label="创建时间" style="width: 308px">
<el-date-picker
v-model="daterangeCreateTime"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD"
/>
<el-date-picker v-model="daterangeCreateTime" type="daterange" range-separator="-" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="羊只耳号" prop="sheepNo">
<el-input
v-model="queryParams.sheepNo"
placeholder="羊只耳号"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.sheepNo" placeholder="羊只耳号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="使用名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入使用名称"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.name" placeholder="请输入使用名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="使用类型" prop="useType">
<el-select
v-model="queryParams.useType"
placeholder="请选择使用类型"
clearable
style="width: 180px"
>
<el-option
v-for="dict in pres_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.useType" placeholder="请选择使用类型" clearable style="width: 180px">
<el-option v-for="dict in pres_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
@ -75,13 +37,7 @@
<!-- 工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['biosafety:usage:export']"
>
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['biosafety:usage:export']">
导出
</el-button>
</el-col>
@ -89,17 +45,8 @@
</el-row>
<!-- 数据表格 -->
<el-table
v-loading="loading"
:data="usageList"
@selection-change="handleSelectionChange"
>
<el-table-column
label="使用时间"
align="center"
prop="datetime"
width="180"
>
<el-table v-loading="loading" :data="usageList" @selection-change="handleSelectionChange">
<el-table-column label="使用时间" align="center" prop="datetime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
</template>
@ -112,30 +59,16 @@
<dict-tag :options="pres_type" :value="scope.row.useType" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{m}') }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button
link
type="primary"
icon="View"
@click="handleDetail(scope.row)"
v-hasPermi="['biosafety:usage:query']"
>
<el-button link type="primary" icon="View" @click="handleDetail(scope.row)"
v-hasPermi="['biosafety:usage:query']">
详情
</el-button>
</template>
@ -143,38 +76,25 @@
</el-table>
<!-- 分页 -->
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" :page-sizes="[20, 50, 100, 200, 500, 1000, 2000]" @pagination="getList" />
<!-- 详情弹窗保持不变 -->
<el-dialog
:title="title"
v-model="open"
width="680px"
top="8vh"
append-to-body
:close-on-click-modal="false"
class="usage-detail-dialog"
>
<el-dialog :title="title" v-model="open" width="680px" top="8vh" append-to-body :close-on-click-modal="false"
class="usage-detail-dialog">
<!-- 基础信息 -->
<el-card shadow="never" class="detail-card">
<template #header>
<div class="card-header">
<el-icon><Document /></el-icon> 基本信息
<el-icon>
<Document />
</el-icon> 基本信息
</div>
</template>
<el-descriptions :column="2" border>
<el-descriptions-item label="使用名称">{{ form.name }}</el-descriptions-item>
<el-descriptions-item label="使用类型">
<el-tag
size="small"
:type="form.useType === 1 ? 'primary' : 'success'"
>
<el-tag size="small" :type="form.useType === 1 ? 'primary' : 'success'">
{{ pres_type.find(it => it.value === form.useType)?.label || '' }}
</el-tag>
</el-descriptions-item>
@ -188,16 +108,13 @@
<el-card shadow="never" class="detail-card" style="margin-top: 16px">
<template #header>
<div class="card-header">
<el-icon><List /></el-icon> 药品使用明细
<el-icon>
<List />
</el-icon> 药品使用明细
</div>
</template>
<el-table
:data="swMedicineUsageDetailsList"
stripe
size="small"
:row-class-name="rowSwMedicineUsageDetailsIndex"
style="width: 100%"
>
<el-table :data="swMedicineUsageDetailsList" stripe size="small"
:row-class-name="rowSwMedicineUsageDetailsIndex" style="width: 100%">
<el-table-column label="药品" prop="mediName" show-overflow-tooltip />
<el-table-column label="用量" prop="dosage" width="80" />
<el-table-column label="单位" prop="unit" align="center" :formatter="formatUnit" />
@ -242,7 +159,7 @@ const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
name: null,
useType: null,
createTime: null