Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -69,37 +69,40 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table
|
<div class="table-wrapper">
|
||||||
v-loading="loading"
|
<el-table
|
||||||
:data="dryMatterCorrectionList"
|
v-loading="loading"
|
||||||
@selection-change="handleSelectionChange"
|
:data="dryMatterCorrectionList"
|
||||||
style="width: 100%">
|
@selection-change="handleSelectionChange"
|
||||||
<el-table-column type="selection" align="center" />
|
style="width: 100%"
|
||||||
<el-table-column label="年月" align="center" prop="datetime" sortable>
|
height="100%">
|
||||||
<template #default="scope">
|
<el-table-column type="selection" align="center" />
|
||||||
<span>{{ parseTime(scope.row.datetime, '{y}-{m}') }}</span>
|
<el-table-column label="年月" align="center" prop="datetime" sortable>
|
||||||
</template>
|
<template #default="scope">
|
||||||
</el-table-column>
|
<span>{{ parseTime(scope.row.datetime, '{y}-{m}') }}</span>
|
||||||
<el-table-column label="厂区" align="center" prop="factory">
|
</template>
|
||||||
<template #default="scope">
|
</el-table-column>
|
||||||
<dict-tag :options="da_ranch" :value="scope.row.factory"/>
|
<el-table-column label="厂区" align="center" prop="factory">
|
||||||
</template>
|
<template #default="scope">
|
||||||
</el-table-column>
|
<dict-tag :options="da_ranch" :value="scope.row.factory"/>
|
||||||
<el-table-column label="干物质含量" align="center" prop="content" sortable />
|
</template>
|
||||||
<el-table-column label="干物质标准" align="center" prop="standard" sortable />
|
</el-table-column>
|
||||||
<el-table-column label="干物质系数" align="center" prop="coefficient" sortable>
|
<el-table-column label="干物质含量" align="center" prop="content" sortable />
|
||||||
<template #default="scope">
|
<el-table-column label="干物质标准" align="center" prop="standard" sortable />
|
||||||
<span>{{ formatCoefficient(scope.row.coefficient) }}</span>
|
<el-table-column label="干物质系数" align="center" prop="coefficient" sortable>
|
||||||
</template>
|
<template #default="scope">
|
||||||
</el-table-column>
|
<span>{{ formatCoefficient(scope.row.coefficient) }}</span>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
|
</template>
|
||||||
<template #default="scope">
|
</el-table-column>
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['dryMatterCorrection:dryMatterCorrection:edit']">修改</el-button>
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['dryMatterCorrection:dryMatterCorrection:remove']">删除</el-button>
|
<template #default="scope">
|
||||||
</template>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['dryMatterCorrection:dryMatterCorrection:edit']">修改</el-button>
|
||||||
</el-table-column>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['dryMatterCorrection:dryMatterCorrection:remove']">删除</el-button>
|
||||||
</el-table>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
@@ -373,4 +376,31 @@ getList()
|
|||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -75,126 +75,128 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="freshMilkTestList" @selection-change="handleSelectionChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="freshMilkTestList" @selection-change="handleSelectionChange" height="100%">
|
||||||
<el-table-column
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
label="来源"
|
<el-table-column
|
||||||
align="center"
|
label="来源"
|
||||||
prop="source"
|
align="center"
|
||||||
v-if="selectedColumns.includes('source')" />
|
prop="source"
|
||||||
<el-table-column
|
v-if="selectedColumns.includes('source')" />
|
||||||
label="检测日期"
|
<el-table-column
|
||||||
align="center"
|
label="检测日期"
|
||||||
prop="datetime"
|
align="center"
|
||||||
width="180"
|
prop="datetime"
|
||||||
v-if="selectedColumns.includes('datetime')"
|
width="180"
|
||||||
sortable>
|
v-if="selectedColumns.includes('datetime')"
|
||||||
<template #default="scope">
|
sortable>
|
||||||
<span>{{ formatDate(scope.row.datetime) }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ formatDate(scope.row.datetime) }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
label="脂肪g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="fat"
|
|
||||||
v-if="selectedColumns.includes('fat')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="蛋白质g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="protein"
|
|
||||||
v-if="selectedColumns.includes('protein')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="非脂g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="nonFat"
|
|
||||||
v-if="selectedColumns.includes('nonFat')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="酸度oT"
|
|
||||||
align="center"
|
|
||||||
prop="acidity"
|
|
||||||
v-if="selectedColumns.includes('acidity')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数1"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony1"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony1')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数2"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony2"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony2')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数3"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony3"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony3')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数4"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony4"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony4')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数5"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony5"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony5')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="大肠菌群(CFU/ml)"
|
|
||||||
align="center"
|
|
||||||
prop="coli"
|
|
||||||
v-if="selectedColumns.includes('coli')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="乳铁蛋白(mg/L)"
|
|
||||||
align="center"
|
|
||||||
prop="lactoferrin"
|
|
||||||
v-if="selectedColumns.includes('lactoferrin')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="免疫球蛋白(mg/L)"
|
|
||||||
align="center"
|
|
||||||
prop="ig"
|
|
||||||
v-if="selectedColumns.includes('ig')"
|
|
||||||
sortable />
|
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="备注"
|
label="脂肪g/100g"
|
||||||
align="center"
|
align="center"
|
||||||
prop="commnet"
|
prop="fat"
|
||||||
v-if="selectedColumns.includes('commnet')" />
|
v-if="selectedColumns.includes('fat')"
|
||||||
<el-table-column
|
sortable />
|
||||||
label="创建人"
|
<el-table-column
|
||||||
align="center"
|
label="蛋白质g/100g"
|
||||||
prop="createBy"
|
align="center"
|
||||||
v-if="selectedColumns.includes('createBy')" />
|
prop="protein"
|
||||||
<el-table-column
|
v-if="selectedColumns.includes('protein')"
|
||||||
label="创建时间"
|
sortable />
|
||||||
align="center"
|
<el-table-column
|
||||||
prop="createTime"
|
label="非脂g/100g"
|
||||||
width="180"
|
align="center"
|
||||||
v-if="selectedColumns.includes('createTime')"
|
prop="nonFat"
|
||||||
sortable>
|
v-if="selectedColumns.includes('nonFat')"
|
||||||
<template #default="scope">
|
sortable />
|
||||||
<span>{{ formatDateTime(scope.row.createTime) }}</span>
|
<el-table-column
|
||||||
</template>
|
label="酸度oT"
|
||||||
</el-table-column>
|
align="center"
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
prop="acidity"
|
||||||
<template #default="scope">
|
v-if="selectedColumns.includes('acidity')"
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['freshMilkTest:freshMilkTest:edit']">修改</el-button>
|
sortable />
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['freshMilkTest:freshMilkTest:remove']">删除</el-button>
|
<el-table-column
|
||||||
</template>
|
label="菌落总数1"
|
||||||
</el-table-column>
|
align="center"
|
||||||
</el-table>
|
prop="bacterialColony1"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony1')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数2"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialColony2"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony2')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数3"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialColony3"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony3')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数4"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialColony4"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony4')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数5"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialColony5"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony5')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="大肠菌群(CFU/ml)"
|
||||||
|
align="center"
|
||||||
|
prop="coli"
|
||||||
|
v-if="selectedColumns.includes('coli')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="乳铁蛋白(mg/L)"
|
||||||
|
align="center"
|
||||||
|
prop="lactoferrin"
|
||||||
|
v-if="selectedColumns.includes('lactoferrin')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="免疫球蛋白(mg/L)"
|
||||||
|
align="center"
|
||||||
|
prop="ig"
|
||||||
|
v-if="selectedColumns.includes('ig')"
|
||||||
|
sortable />
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
label="备注"
|
||||||
|
align="center"
|
||||||
|
prop="commnet"
|
||||||
|
v-if="selectedColumns.includes('commnet')" />
|
||||||
|
<el-table-column
|
||||||
|
label="创建人"
|
||||||
|
align="center"
|
||||||
|
prop="createBy"
|
||||||
|
v-if="selectedColumns.includes('createBy')" />
|
||||||
|
<el-table-column
|
||||||
|
label="创建时间"
|
||||||
|
align="center"
|
||||||
|
prop="createTime"
|
||||||
|
width="180"
|
||||||
|
v-if="selectedColumns.includes('createTime')"
|
||||||
|
sortable>
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ formatDateTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['freshMilkTest:freshMilkTest:edit']">修改</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['freshMilkTest:freshMilkTest:remove']">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
@@ -642,4 +644,32 @@ onMounted(() => {
|
|||||||
.el-dialog__body {
|
.el-dialog__body {
|
||||||
padding: 15px 20px;
|
padding: 15px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -49,36 +49,38 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-table :data="rows" border style="margin-top:16px" v-loading="loading">
|
<div class="table-wrapper">
|
||||||
<el-table-column prop="datetime" label="日期" width="120" sortable fixed="left">
|
<el-table :data="rows" border style="margin-top:16px" v-loading="loading" height="100%">
|
||||||
<template #default="{ row }">
|
<el-table-column prop="datetime" label="日期" width="120" sortable fixed="left">
|
||||||
{{ row.datetime ? row.datetime.substring(0, 10) : '' }}
|
<template #default="{ row }">
|
||||||
</template>
|
{{ row.datetime ? row.datetime.substring(0, 10) : '' }}
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="num" label="羊数" sortable width="100" />
|
|
||||||
<el-table-column prop="colostSheep" label="初乳羊" sortable width="100" />
|
<el-table-column prop="num" label="羊数" sortable width="100" />
|
||||||
<el-table-column prop="commercialIntake" label="商乳入库" sortable width="120" />
|
<el-table-column prop="colostSheep" label="初乳羊" sortable width="100" />
|
||||||
<el-table-column prop="antiIntake" label="抗乳入库" sortable width="120" />
|
<el-table-column prop="commercialIntake" label="商乳入库" sortable width="120" />
|
||||||
<el-table-column prop="colostIntake" label="初乳入库" sortable width="120" />
|
<el-table-column prop="antiIntake" label="抗乳入库" sortable width="120" />
|
||||||
<el-table-column prop="intakeTotal" label="入库小计" sortable width="120" />
|
<el-table-column prop="colostIntake" label="初乳入库" sortable width="120" />
|
||||||
<el-table-column prop="commercialTest" label="商乳实验用奶" sortable width="140" />
|
<el-table-column prop="intakeTotal" label="入库小计" sortable width="120" />
|
||||||
<el-table-column prop="colostTest" label="初乳实验用奶" sortable width="140" />
|
<el-table-column prop="commercialTest" label="商乳实验用奶" sortable width="140" />
|
||||||
<el-table-column prop="transferCommercial" label="商乳调拨出库" sortable width="140" />
|
<el-table-column prop="colostTest" label="初乳实验用奶" sortable width="140" />
|
||||||
<el-table-column prop="transferAnti" label="抗乳调拨出库" sortable width="140" />
|
<el-table-column prop="transferCommercial" label="商乳调拨出库" sortable width="140" />
|
||||||
<el-table-column prop="transferColost" label="初乳调拨出库" sortable width="140" />
|
<el-table-column prop="transferAnti" label="抗乳调拨出库" sortable width="140" />
|
||||||
<el-table-column prop="transferTotal" label="调拨小计" sortable width="120" />
|
<el-table-column prop="transferColost" label="初乳调拨出库" sortable width="140" />
|
||||||
<el-table-column prop="loss" label="损耗" sortable width="100" />
|
<el-table-column prop="transferTotal" label="调拨小计" sortable width="120" />
|
||||||
|
<el-table-column prop="loss" label="损耗" sortable width="100" />
|
||||||
<el-table-column v-for="f in selectedFeed" :key="'feed-'+f" :prop="f" :label="f" sortable width="120" />
|
|
||||||
<el-table-column v-for="s in selectedSale" :key="'sale-'+s" :prop="s" :label="s" sortable width="120" />
|
<el-table-column v-for="f in selectedFeed" :key="'feed-'+f" :prop="f" :label="f" sortable width="120" />
|
||||||
|
<el-table-column v-for="s in selectedSale" :key="'sale-'+s" :prop="s" :label="s" sortable width="120" />
|
||||||
<el-table-column prop="stockCommercial" label="商乳库存" sortable width="120" />
|
|
||||||
<el-table-column prop="stockAnti" label="抗乳库存" sortable width="120" />
|
<el-table-column prop="stockCommercial" label="商乳库存" sortable width="120" />
|
||||||
<el-table-column prop="colost" label="初乳库存" sortable width="120" />
|
<el-table-column prop="stockAnti" label="抗乳库存" sortable width="120" />
|
||||||
<el-table-column prop="returnFresh" label="爱特退回鲜奶" sortable width="140" />
|
<el-table-column prop="colost" label="初乳库存" sortable width="120" />
|
||||||
<el-table-column prop="returnYogurt" label="爱特退回酸奶" sortable width="140" />
|
<el-table-column prop="returnFresh" label="爱特退回鲜奶" sortable width="140" />
|
||||||
</el-table>
|
<el-table-column prop="returnYogurt" label="爱特退回酸奶" sortable width="140" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
@@ -221,4 +223,32 @@ onMounted(() => {
|
|||||||
.mb-4 {
|
.mb-4 {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -93,29 +93,31 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table :data="tableData" v-loading="loading">
|
<div class="table-wrapper">
|
||||||
<el-table-column prop="datetime" label="日期" width="110" sortable>
|
<el-table :data="tableData" v-loading="loading" height="100%">
|
||||||
<template #default="{ row }">
|
<el-table-column prop="datetime" label="日期" width="110" sortable>
|
||||||
{{ parseTime(row.datetime, '{y}-{m}-{d}') }}
|
<template #default="{ row }">
|
||||||
</template>
|
{{ parseTime(row.datetime, '{y}-{m}-{d}') }}
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column prop="manageEarNo" label="管理耳号" />
|
</el-table-column>
|
||||||
<el-table-column prop="electronicEarNo" label="电子耳号" />
|
<el-table-column prop="manageEarNo" label="管理耳号" />
|
||||||
<el-table-column prop="parity" label="胎次" sortable />
|
<el-table-column prop="electronicEarNo" label="电子耳号" />
|
||||||
<el-table-column prop="factory" label="厂区" />
|
<el-table-column prop="parity" label="胎次" sortable />
|
||||||
<el-table-column prop="classes" label="班次" sortable />
|
<el-table-column prop="factory" label="厂区" />
|
||||||
|
<el-table-column prop="classes" label="班次" sortable />
|
||||||
<el-table-column prop="milk" label="班次产奶量" sortable>
|
|
||||||
<template #default="{ row }">
|
<el-table-column prop="milk" label="班次产奶量" sortable>
|
||||||
{{ row.milk ? Number(row.milk).toFixed(2) : '-' }}
|
<template #default="{ row }">
|
||||||
</template>
|
{{ row.milk ? Number(row.milk).toFixed(2) : '-' }}
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column prop="correctedMilk" label="班次校正奶量" sortable>
|
</el-table-column>
|
||||||
<template #default="{ row }">
|
<el-table-column prop="correctedMilk" label="班次校正奶量" sortable>
|
||||||
{{ row.correctedMilk ? Number(row.correctedMilk).toFixed(2) : '-' }}
|
<template #default="{ row }">
|
||||||
</template>
|
{{ row.correctedMilk ? Number(row.correctedMilk).toFixed(2) : '-' }}
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination v-show="total>0" :total="total"
|
<pagination v-show="total>0" :total="total"
|
||||||
v-model:page="queryParams.pageNum"
|
v-model:page="queryParams.pageNum"
|
||||||
@@ -315,4 +317,32 @@ getList();
|
|||||||
background-color: #f5f7fa;
|
background-color: #f5f7fa;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -48,20 +48,22 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="parityCorrectionList" @selection-change="handleSelectionChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="parityCorrectionList" @selection-change="handleSelectionChange" height="100%">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="胎次" align="center" prop="parity" sortable />
|
|
||||||
<el-table-column label="系数" align="center" prop="coef" sortable />
|
<el-table-column label="胎次" align="center" prop="parity" sortable />
|
||||||
|
<el-table-column label="系数" align="center" prop="coef" sortable />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
||||||
<template #default="scope">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['parityCorrection:parityCorrection:edit']">修改</el-button>
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['parityCorrection:parityCorrection:remove']">删除</el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['parityCorrection:parityCorrection:edit']">修改</el-button>
|
||||||
</template>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['parityCorrection:parityCorrection:remove']">删除</el-button>
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
@@ -214,4 +216,33 @@ function handleDelete(row) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getList()
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -75,48 +75,50 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="rawMilkTestList" @selection-change="handleSelectionChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="rawMilkTestList" @selection-change="handleSelectionChange" height="100%">
|
||||||
<el-table-column label="检测日期" align="center" prop="datetime" width="180" v-if="visibleColumns.datetime" sortable>
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<template #default="scope">
|
<el-table-column label="检测日期" align="center" prop="datetime" width="180" v-if="visibleColumns.datetime" sortable>
|
||||||
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="来源" align="center" prop="source" v-if="visibleColumns.source" />
|
</el-table-column>
|
||||||
|
<el-table-column label="来源" align="center" prop="source" v-if="visibleColumns.source" />
|
||||||
<el-table-column label="冰点" align="center" prop="freeze" v-if="visibleColumns.freeze" sortable />
|
|
||||||
<el-table-column label="相对密度" align="center" prop="density" v-if="visibleColumns.density" sortable />
|
<el-table-column label="冰点" align="center" prop="freeze" v-if="visibleColumns.freeze" sortable />
|
||||||
<el-table-column label="脂肪g/100g" align="center" prop="fat" v-if="visibleColumns.fat" sortable />
|
<el-table-column label="相对密度" align="center" prop="density" v-if="visibleColumns.density" sortable />
|
||||||
<el-table-column label="蛋白质g/100g" align="center" prop="protein" v-if="visibleColumns.protein" sortable />
|
<el-table-column label="脂肪g/100g" align="center" prop="fat" v-if="visibleColumns.fat" sortable />
|
||||||
<el-table-column label="非脂g/100g" align="center" prop="nonFat" v-if="visibleColumns.nonFat" sortable />
|
<el-table-column label="蛋白质g/100g" align="center" prop="protein" v-if="visibleColumns.protein" sortable />
|
||||||
<el-table-column label="干物质mg/100g" align="center" prop="dryMatter" v-if="visibleColumns.dryMatter" sortable />
|
<el-table-column label="非脂g/100g" align="center" prop="nonFat" v-if="visibleColumns.nonFat" sortable />
|
||||||
<el-table-column label="杂质度mg/100g" align="center" prop="impurityDegree" v-if="visibleColumns.impurityDegree" sortable />
|
<el-table-column label="干物质mg/100g" align="center" prop="dryMatter" v-if="visibleColumns.dryMatter" sortable />
|
||||||
<el-table-column label="乳糖g/100g" align="center" prop="lactose" v-if="visibleColumns.lactose" sortable />
|
<el-table-column label="杂质度mg/100g" align="center" prop="impurityDegree" v-if="visibleColumns.impurityDegree" sortable />
|
||||||
<el-table-column label="灰度g/100g" align="center" prop="ashContent" v-if="visibleColumns.ashContent" sortable />
|
<el-table-column label="乳糖g/100g" align="center" prop="lactose" v-if="visibleColumns.lactose" sortable />
|
||||||
<el-table-column label="酸度" align="center" prop="acidity" v-if="visibleColumns.acidity" sortable />
|
<el-table-column label="灰度g/100g" align="center" prop="ashContent" v-if="visibleColumns.ashContent" sortable />
|
||||||
<el-table-column label="ph" align="center" prop="ph" v-if="visibleColumns.ph" sortable />
|
<el-table-column label="酸度" align="center" prop="acidity" v-if="visibleColumns.acidity" sortable />
|
||||||
<el-table-column label="菌落总数" align="center" prop="bacterialColony" v-if="visibleColumns.bacterialColony" sortable />
|
<el-table-column label="ph" align="center" prop="ph" v-if="visibleColumns.ph" sortable />
|
||||||
<el-table-column label="乳铁蛋白" align="center" prop="lactoferrin" v-if="visibleColumns.lactoferrin" sortable />
|
<el-table-column label="菌落总数" align="center" prop="bacterialColony" v-if="visibleColumns.bacterialColony" sortable />
|
||||||
<el-table-column label="免疫球蛋白" align="center" prop="ig" v-if="visibleColumns.ig" sortable />
|
<el-table-column label="乳铁蛋白" align="center" prop="lactoferrin" v-if="visibleColumns.lactoferrin" sortable />
|
||||||
<el-table-column label="体细胞" align="center" prop="somaticCell" v-if="visibleColumns.somaticCell" sortable />
|
<el-table-column label="免疫球蛋白" align="center" prop="ig" v-if="visibleColumns.ig" sortable />
|
||||||
<el-table-column label="尿素氮" align="center" prop="usea" v-if="visibleColumns.usea" sortable />
|
<el-table-column label="体细胞" align="center" prop="somaticCell" v-if="visibleColumns.somaticCell" sortable />
|
||||||
<el-table-column label="脂蛋比" align="center" prop="fatRatio" v-if="visibleColumns.fatRatio" sortable />
|
<el-table-column label="尿素氮" align="center" prop="usea" v-if="visibleColumns.usea" sortable />
|
||||||
|
<el-table-column label="脂蛋比" align="center" prop="fatRatio" v-if="visibleColumns.fatRatio" sortable />
|
||||||
<el-table-column label="备注" align="center" prop="comment" v-if="visibleColumns.comment" />
|
|
||||||
<el-table-column label="创建人" align="center" prop="createBy" v-if="visibleColumns.createBy" />
|
<el-table-column label="备注" align="center" prop="comment" v-if="visibleColumns.comment" />
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180" v-if="visibleColumns.createTime" sortable>
|
<el-table-column label="创建人" align="center" prop="createBy" v-if="visibleColumns.createBy" />
|
||||||
<template #default="scope">
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180" v-if="visibleColumns.createTime" sortable>
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
</el-table-column>
|
||||||
<template #default="scope">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rawMilkTest:rawMilkTest:edit']">修改</el-button>
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rawMilkTest:rawMilkTest:remove']">删除</el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rawMilkTest:rawMilkTest:edit']">修改</el-button>
|
||||||
</template>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rawMilkTest:rawMilkTest:remove']">删除</el-button>
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
@@ -520,4 +522,33 @@ onMounted(() => {
|
|||||||
initVisibleColumns()
|
initVisibleColumns()
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -67,17 +67,19 @@
|
|||||||
<el-button type="success" icon="Download" @click="handleExport">导出</el-button>
|
<el-button type="success" icon="Download" @click="handleExport">导出</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-table :data="list" border style="width: 100%" v-loading="loading" :row-key="row => row.sheepId">
|
<div class="table-wrapper">
|
||||||
<el-table-column
|
<el-table :data="list" border style="width: 100%" v-loading="loading" :row-key="row => row.sheepId" height="100%">
|
||||||
v-for="col in visibleColumns"
|
<el-table-column
|
||||||
:key="col.prop"
|
v-for="col in visibleColumns"
|
||||||
:label="col.label"
|
:key="col.prop"
|
||||||
:prop="col.prop"
|
:label="col.label"
|
||||||
:min-width="col.minWidth || 120"
|
:prop="col.prop"
|
||||||
:sortable="col.sortable || false"
|
:min-width="col.minWidth || 120"
|
||||||
:formatter="col.formatter || undefined"
|
:sortable="col.sortable || false"
|
||||||
/>
|
:formatter="col.formatter || undefined"
|
||||||
</el-table>
|
/>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-pagination
|
<el-pagination
|
||||||
v-show="total > 0"
|
v-show="total > 0"
|
||||||
@@ -288,4 +290,31 @@ export default {
|
|||||||
background-color: #f5f7fa;
|
background-color: #f5f7fa;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -69,33 +69,35 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="weightCorrectionList" @selection-change="handleSelectionChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="weightCorrectionList" @selection-change="handleSelectionChange" height="100%">
|
||||||
<el-table-column label="日期" align="center" prop="datetime" width="180" sortable>
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<template #default="scope">
|
<el-table-column label="日期" align="center" prop="datetime" width="180" sortable>
|
||||||
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="厂区" align="center" prop="factory">
|
</el-table-column>
|
||||||
<template #default="scope">
|
<el-table-column label="厂区" align="center" prop="factory">
|
||||||
<dict-tag :options="da_ranch" :value="scope.row.factory"/>
|
<template #default="scope">
|
||||||
</template>
|
<dict-tag :options="da_ranch" :value="scope.row.factory"/>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="实际奶量" align="center" prop="actual" sortable />
|
</el-table-column>
|
||||||
<el-table-column label="系统奶量" align="center" prop="systemMilk" sortable />
|
<el-table-column label="实际奶量" align="center" prop="actual" sortable />
|
||||||
<el-table-column label="称重系数" align="center" prop="coefficient" sortable>
|
<el-table-column label="系统奶量" align="center" prop="systemMilk" sortable />
|
||||||
<template #default="scope">
|
<el-table-column label="称重系数" align="center" prop="coefficient" sortable>
|
||||||
<span>{{ scope.row.coefficient ? scope.row.coefficient.toFixed(2) : '' }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ scope.row.coefficient ? scope.row.coefficient.toFixed(2) : '' }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
</el-table-column>
|
||||||
<template #default="scope">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['weightCorrection:weightCorrection:edit']">修改</el-button>
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['weightCorrection:weightCorrection:remove']">删除</el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['weightCorrection:weightCorrection:edit']">修改</el-button>
|
||||||
</template>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['weightCorrection:weightCorrection:remove']">删除</el-button>
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
@@ -324,4 +326,32 @@ getList()
|
|||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -75,126 +75,128 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="yogurtTestList" @selection-change="handleSelectionChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="yogurtTestList" @selection-change="handleSelectionChange" height="100%">
|
||||||
<el-table-column
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
label="来源"
|
<el-table-column
|
||||||
align="center"
|
label="来源"
|
||||||
prop="source"
|
align="center"
|
||||||
v-if="selectedColumns.includes('source')" />
|
prop="source"
|
||||||
<el-table-column
|
v-if="selectedColumns.includes('source')" />
|
||||||
label="检测日期"
|
<el-table-column
|
||||||
align="center"
|
label="检测日期"
|
||||||
prop="datetime"
|
align="center"
|
||||||
width="180"
|
prop="datetime"
|
||||||
v-if="selectedColumns.includes('datetime')"
|
width="180"
|
||||||
sortable>
|
v-if="selectedColumns.includes('datetime')"
|
||||||
<template #default="scope">
|
sortable>
|
||||||
<span>{{ formatDate(scope.row.datetime) }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ formatDate(scope.row.datetime) }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
label="脂肪g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="fat"
|
|
||||||
v-if="selectedColumns.includes('fat')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="蛋白质g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="protein"
|
|
||||||
v-if="selectedColumns.includes('protein')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="非脂g/100g"
|
|
||||||
align="center"
|
|
||||||
prop="nonFat"
|
|
||||||
v-if="selectedColumns.includes('nonFat')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="酸度oT"
|
|
||||||
align="center"
|
|
||||||
prop="acidity"
|
|
||||||
v-if="selectedColumns.includes('acidity')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数1"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialColony1"
|
|
||||||
v-if="selectedColumns.includes('bacterialColony1')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数2"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialClony2"
|
|
||||||
v-if="selectedColumns.includes('bacterialClony2')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数3"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialClony3"
|
|
||||||
v-if="selectedColumns.includes('bacterialClony3')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数4"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialClony4"
|
|
||||||
v-if="selectedColumns.includes('bacterialClony4')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="菌落总数5"
|
|
||||||
align="center"
|
|
||||||
prop="bacterialClony5"
|
|
||||||
v-if="selectedColumns.includes('bacterialClony5')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="酵母菌(CFU/g)"
|
|
||||||
align="center"
|
|
||||||
prop="yeast"
|
|
||||||
v-if="selectedColumns.includes('yeast')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="霉菌(CFU/g)"
|
|
||||||
align="center"
|
|
||||||
prop="mould"
|
|
||||||
v-if="selectedColumns.includes('mould')"
|
|
||||||
sortable />
|
|
||||||
<el-table-column
|
|
||||||
label="乳酸菌(CFU/g)"
|
|
||||||
align="center"
|
|
||||||
prop="lacto"
|
|
||||||
v-if="selectedColumns.includes('lacto')"
|
|
||||||
sortable />
|
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="备注"
|
label="脂肪g/100g"
|
||||||
align="center"
|
align="center"
|
||||||
prop="comment"
|
prop="fat"
|
||||||
v-if="selectedColumns.includes('comment')" />
|
v-if="selectedColumns.includes('fat')"
|
||||||
<el-table-column
|
sortable />
|
||||||
label="创建人"
|
<el-table-column
|
||||||
align="center"
|
label="蛋白质g/100g"
|
||||||
prop="createBy"
|
align="center"
|
||||||
v-if="selectedColumns.includes('createBy')" />
|
prop="protein"
|
||||||
<el-table-column
|
v-if="selectedColumns.includes('protein')"
|
||||||
label="创建时间"
|
sortable />
|
||||||
align="center"
|
<el-table-column
|
||||||
prop="createTime"
|
label="非脂g/100g"
|
||||||
width="180"
|
align="center"
|
||||||
v-if="selectedColumns.includes('createTime')"
|
prop="nonFat"
|
||||||
sortable>
|
v-if="selectedColumns.includes('nonFat')"
|
||||||
<template #default="scope">
|
sortable />
|
||||||
<span>{{ formatDateTime(scope.row.createTime) }}</span>
|
<el-table-column
|
||||||
</template>
|
label="酸度oT"
|
||||||
</el-table-column>
|
align="center"
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
prop="acidity"
|
||||||
<template #default="scope">
|
v-if="selectedColumns.includes('acidity')"
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['yogurtTest:yogurtTest:edit']">修改</el-button>
|
sortable />
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['yogurtTest:yogurtTest:remove']">删除</el-button>
|
<el-table-column
|
||||||
</template>
|
label="菌落总数1"
|
||||||
</el-table-column>
|
align="center"
|
||||||
</el-table>
|
prop="bacterialColony1"
|
||||||
|
v-if="selectedColumns.includes('bacterialColony1')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数2"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialClony2"
|
||||||
|
v-if="selectedColumns.includes('bacterialClony2')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数3"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialClony3"
|
||||||
|
v-if="selectedColumns.includes('bacterialClony3')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数4"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialClony4"
|
||||||
|
v-if="selectedColumns.includes('bacterialClony4')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="菌落总数5"
|
||||||
|
align="center"
|
||||||
|
prop="bacterialClony5"
|
||||||
|
v-if="selectedColumns.includes('bacterialClony5')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="酵母菌(CFU/g)"
|
||||||
|
align="center"
|
||||||
|
prop="yeast"
|
||||||
|
v-if="selectedColumns.includes('yeast')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="霉菌(CFU/g)"
|
||||||
|
align="center"
|
||||||
|
prop="mould"
|
||||||
|
v-if="selectedColumns.includes('mould')"
|
||||||
|
sortable />
|
||||||
|
<el-table-column
|
||||||
|
label="乳酸菌(CFU/g)"
|
||||||
|
align="center"
|
||||||
|
prop="lacto"
|
||||||
|
v-if="selectedColumns.includes('lacto')"
|
||||||
|
sortable />
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
label="备注"
|
||||||
|
align="center"
|
||||||
|
prop="comment"
|
||||||
|
v-if="selectedColumns.includes('comment')" />
|
||||||
|
<el-table-column
|
||||||
|
label="创建人"
|
||||||
|
align="center"
|
||||||
|
prop="createBy"
|
||||||
|
v-if="selectedColumns.includes('createBy')" />
|
||||||
|
<el-table-column
|
||||||
|
label="创建时间"
|
||||||
|
align="center"
|
||||||
|
prop="createTime"
|
||||||
|
width="180"
|
||||||
|
v-if="selectedColumns.includes('createTime')"
|
||||||
|
sortable>
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ formatDateTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['yogurtTest:yogurtTest:edit']">修改</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['yogurtTest:yogurtTest:remove']">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
@@ -644,4 +646,31 @@ onMounted(() => {
|
|||||||
.el-dialog__body {
|
.el-dialog__body {
|
||||||
padding: 15px 20px;
|
padding: 15px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1271,16 +1271,31 @@ function handleDelete(row) {
|
|||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 8. 修改 handleExport 函数,导出时也包含自定义筛选条件
|
// 8. 修复:精确读取表格实际显示的列进行导出
|
||||||
function handleExport() {
|
function handleExport() {
|
||||||
const exportParams = { ...queryParams.value }
|
const exportParams = { ...queryParams.value }
|
||||||
|
|
||||||
// 如果有自定义筛选条件,合并到导出参数中
|
// 1. 处理勾选的行
|
||||||
|
if (ids.value.length > 0) {
|
||||||
|
exportParams.exportIds = ids.value.join(',')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 【核心修复】直接遍历 columns,只有 visible 为 true 的才允许导出!绝对防漏
|
||||||
|
const actualVisibleCols = Object.keys(columns).filter(key => columns[key].visible);
|
||||||
|
if (actualVisibleCols.length > 0) {
|
||||||
|
exportParams.visibleColumns = actualVisibleCols.join(',')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 合并自定义筛选
|
||||||
if (isCustomFilterActive.value && Object.keys(customFilterParams.value).length > 0) {
|
if (isCustomFilterActive.value && Object.keys(customFilterParams.value).length > 0) {
|
||||||
Object.assign(exportParams, customFilterParams.value)
|
Object.assign(exportParams, customFilterParams.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy.download('sheep_file/sheep_file/export', exportParams, `sheep_file_${new Date().getTime()}.xlsx`)
|
const tipMsg = ids.value.length > 0 ? "是否确认导出选中的数据项?" : "未勾选具体行,是否确认导出当前条件下的所有数据?";
|
||||||
|
|
||||||
|
proxy.$modal.confirm(tipMsg).then(function() {
|
||||||
|
proxy.download('sheep_file/sheep_file/export', exportParams, `sheep_file_${new Date().getTime()}.xlsx`)
|
||||||
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 打开列设置对话框
|
// 打开列设置对话框
|
||||||
|
|||||||
@@ -99,7 +99,11 @@
|
|||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="客户名称" prop="custName">
|
<el-form-item label="客户名称" prop="custName">
|
||||||
<el-input v-model="form.custName" placeholder="请输入客户名称" />
|
<!-- <el-input v-model="form.custName" placeholder="请输入客户名称" /> -->
|
||||||
|
<el-select v-model="form.custName" placeholder="请选择客户" filterable clearable style="width: 100%"
|
||||||
|
@change="handleCustomerChange">
|
||||||
|
<el-option v-for="item in userDict" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@@ -239,14 +243,14 @@
|
|||||||
|
|
||||||
<script setup name="Sale">
|
<script setup name="Sale">
|
||||||
import { listSale, getSale, delSale, addSale, updateSale } from "@/api/frozen/sale"
|
import { listSale, getSale, delSale, addSale, updateSale } from "@/api/frozen/sale"
|
||||||
import { reactive } from "vue"
|
import { onMounted, reactive } from "vue"
|
||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
import { getSaleCodeDict } from "../../../api/frozen/sale"
|
import { getSaleCodeDict } from "../../../api/frozen/sale"
|
||||||
import { computed } from "vue"
|
import { listCustomer } from "../../../api/sale/customer/customer"
|
||||||
|
import { computed } from 'vue'
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
const { frozen_sale_item_type } = proxy.useDict('frozen_sale_item_type')
|
const { frozen_sale_item_type } = proxy.useDict('frozen_sale_item_type')
|
||||||
|
|
||||||
const saleList = ref([])
|
const saleList = ref([])
|
||||||
const ddSaleItemList = ref([])
|
const ddSaleItemList = ref([])
|
||||||
const open = ref(false)
|
const open = ref(false)
|
||||||
@@ -316,6 +320,26 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// =============== 用户字典数据 =================
|
||||||
|
const userDict = ref([])
|
||||||
|
|
||||||
|
const userMap = computed(() => {
|
||||||
|
return new Map(userDict.value.map(u => [u.id, u]))
|
||||||
|
})
|
||||||
|
|
||||||
|
const handleCustomerChange = (val) => {
|
||||||
|
const user = userMap.value.get(val)
|
||||||
|
|
||||||
|
if (user) {
|
||||||
|
form.value.custPhone = user.phone || ''
|
||||||
|
form.value.custAddr = (user.province + user.city + user.district + user.address) || ''
|
||||||
|
} else {
|
||||||
|
form.value.custPhone = ''
|
||||||
|
form.value.custAddr = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// =============== End =================
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
function cancel() {
|
function cancel() {
|
||||||
open.value = false
|
open.value = false
|
||||||
@@ -465,4 +489,10 @@
|
|||||||
}, `sale_${new Date().getTime()}.xlsx`)
|
}, `sale_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
getList()
|
getList()
|
||||||
|
onMounted(() => {
|
||||||
|
// 加载客户列表
|
||||||
|
listCustomer({ pageNum: 1, pageSize: 1000 }).then(r => {
|
||||||
|
userDict.value = r.rows
|
||||||
|
})
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -70,37 +70,39 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="customerList" @selection-change="handleSelectionChange" @sort-change="handleSortChange">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table v-loading="loading" :data="customerList" @selection-change="handleSelectionChange" @sort-change="handleSortChange" height="100%">
|
||||||
<el-table-column label="客户名称" align="center" prop="name" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="客户电话" align="center" prop="phone" sortable="custom" />
|
<el-table-column label="客户名称" align="center" prop="name" />
|
||||||
|
<el-table-column label="客户电话" align="center" prop="phone" sortable="custom" />
|
||||||
<el-table-column label="所在地区" align="center" width="150" show-overflow-tooltip>
|
|
||||||
<template #default="scope">
|
<el-table-column label="所在地区" align="center" width="150" show-overflow-tooltip>
|
||||||
{{ (scope.row.province || '') + (scope.row.city || '') + (scope.row.district || '') }}
|
<template #default="scope">
|
||||||
</template>
|
{{ (scope.row.province || '') + (scope.row.city || '') + (scope.row.district || '') }}
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="详细地址" align="center" prop="address" show-overflow-tooltip />
|
|
||||||
|
<el-table-column label="详细地址" align="center" prop="address" show-overflow-tooltip />
|
||||||
<el-table-column label="创建人" align="center" prop="createBy" width="100" />
|
|
||||||
|
<el-table-column label="创建人" align="center" prop="createBy" width="100" />
|
||||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
|
||||||
<template #default="scope">
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<template #default="scope">
|
||||||
</template>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||||
|
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['customer:customer:edit']">修改</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['customer:customer:remove']">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['customer:customer:edit']">修改</el-button>
|
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['customer:customer:remove']">删除</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
@@ -345,4 +347,33 @@ function handleExport() {
|
|||||||
...queryParams.value
|
...queryParams.value
|
||||||
}, `customer_${new Date().getTime()}.xlsx`)
|
}, `customer_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -180,63 +180,65 @@
|
|||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" />
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" />
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="saleRecordList" @selection-change="handleSelectionChange" style="width: 100%">
|
<div class="table-wrapper">
|
||||||
<el-table-column type="selection" width="55" align="center" fixed="left"/>
|
<el-table v-loading="loading" :data="saleRecordList" @selection-change="handleSelectionChange" style="width: 100%" height="100%">
|
||||||
<el-table-column label="耳号" align="center" prop="bsManageTags" width="120" fixed="left" show-overflow-tooltip />
|
<el-table-column type="selection" width="55" align="center" fixed="left"/>
|
||||||
<el-table-column label="品种" align="center" prop="variety" width="100" show-overflow-tooltip />
|
<el-table-column label="耳号" align="center" prop="bsManageTags" width="120" fixed="left" show-overflow-tooltip />
|
||||||
<el-table-column label="事件类型" align="center" prop="eventType" width="80" />
|
<el-table-column label="品种" align="center" prop="variety" width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="销售日期" align="center" prop="saleDate" width="100">
|
<el-table-column label="事件类型" align="center" prop="eventType" width="80" />
|
||||||
<template #default="scope"><span>{{ parseTime(scope.row.saleDate, '{y}-{m}-{d}') }}</span></template>
|
<el-table-column label="销售日期" align="center" prop="saleDate" width="100">
|
||||||
</el-table-column>
|
<template #default="scope"><span>{{ parseTime(scope.row.saleDate, '{y}-{m}-{d}') }}</span></template>
|
||||||
<el-table-column label="羊只类型" align="center" prop="sheepName" width="100" show-overflow-tooltip />
|
</el-table-column>
|
||||||
<el-table-column label="性别" align="center" prop="gender" width="60" />
|
<el-table-column label="羊只类型" align="center" prop="sheepName" width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="月龄" align="center" prop="monthAge" width="60" />
|
<el-table-column label="性别" align="center" prop="gender" width="60" />
|
||||||
<el-table-column label="胎次" align="center" prop="parity" width="60" />
|
<el-table-column label="月龄" align="center" prop="monthAge" width="60" />
|
||||||
|
<el-table-column label="胎次" align="center" prop="parity" width="60" />
|
||||||
<el-table-column label="当前重量(kg)" align="center" prop="currentWeight" width="110" />
|
|
||||||
|
<el-table-column label="当前重量(kg)" align="center" prop="currentWeight" width="110" />
|
||||||
<el-table-column label="计价方式" align="center" prop="pricingMethod" width="100" />
|
|
||||||
<el-table-column label="单价" align="center" prop="unitPrice" width="100">
|
<el-table-column label="计价方式" align="center" prop="pricingMethod" width="100" />
|
||||||
<template #default="scope">
|
<el-table-column label="单价" align="center" prop="unitPrice" width="100">
|
||||||
{{ scope.row.unitPrice }}
|
<template #default="scope">
|
||||||
<span v-if="scope.row.pricingMethod=='按体重'">元/kg</span>
|
{{ scope.row.unitPrice }}
|
||||||
<span v-else-if="scope.row.unitPrice">元</span>
|
<span v-if="scope.row.pricingMethod=='按体重'">元/kg</span>
|
||||||
</template>
|
<span v-else-if="scope.row.unitPrice">元</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="重量(kg)" align="center" prop="avgWeight" width="100" />
|
</el-table-column>
|
||||||
<el-table-column label="单只羊价格(元)" align="center" prop="avgPricePerSheep" width="120" />
|
<el-table-column label="重量(kg)" align="center" prop="avgWeight" width="100" />
|
||||||
|
<el-table-column label="单只羊价格(元)" align="center" prop="avgPricePerSheep" width="120" />
|
||||||
<el-table-column label="销售类别" align="center" prop="saleType" width="100" show-overflow-tooltip />
|
|
||||||
<el-table-column label="客户名称" align="center" prop="customerName" width="120" show-overflow-tooltip />
|
<el-table-column label="销售类别" align="center" prop="saleType" width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="客户电话" align="center" prop="customerPhone" width="120" show-overflow-tooltip />
|
<el-table-column label="客户名称" align="center" prop="customerName" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="所在地区" align="center" prop="customerArea" width="150" show-overflow-tooltip />
|
<el-table-column label="客户电话" align="center" prop="customerPhone" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="详细地址" align="center" prop="customerAddress" width="180" show-overflow-tooltip />
|
<el-table-column label="所在地区" align="center" prop="customerArea" width="150" show-overflow-tooltip />
|
||||||
<el-table-column label="销售人员" align="center" prop="salesPersonName" width="100" />
|
<el-table-column label="详细地址" align="center" prop="customerAddress" width="180" show-overflow-tooltip />
|
||||||
<el-table-column label="检疫证号" align="center" prop="quarantineNo" width="120" show-overflow-tooltip />
|
<el-table-column label="销售人员" align="center" prop="salesPersonName" width="100" />
|
||||||
<el-table-column label="审批编号" align="center" prop="approvalNo" width="120" show-overflow-tooltip />
|
<el-table-column label="检疫证号" align="center" prop="quarantineNo" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="疾病类型" align="center" prop="diseaseType" :formatter="diseaseTypeFormat" width="100" show-overflow-tooltip />
|
<el-table-column label="审批编号" align="center" prop="approvalNo" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="次要原因" align="center" prop="secondaryReason" width="120" show-overflow-tooltip />
|
<el-table-column label="疾病类型" align="center" prop="diseaseType" :formatter="diseaseTypeFormat" width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="羊舍" align="center" prop="sheepfoldName" width="120" show-overflow-tooltip />
|
<el-table-column label="次要原因" align="center" prop="secondaryReason" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="班组" align="center" prop="groupCode" width="100" />
|
<el-table-column label="羊舍" align="center" prop="sheepfoldName" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="繁育状态" align="center" prop="breed" width="80" />
|
<el-table-column label="班组" align="center" prop="groupCode" width="100" />
|
||||||
<el-table-column label="产后天数" align="center" prop="postLambingDay" width="80" />
|
<el-table-column label="繁育状态" align="center" prop="breed" width="80" />
|
||||||
<el-table-column label="泌乳天数" align="center" prop="lactationDay" width="80" />
|
<el-table-column label="产后天数" align="center" prop="postLambingDay" width="80" />
|
||||||
<el-table-column label="怀孕天数" align="center" prop="lambingDay" width="80" />
|
<el-table-column label="泌乳天数" align="center" prop="lactationDay" width="80" />
|
||||||
<el-table-column label="技术员" align="center" prop="technicianName" width="100" />
|
<el-table-column label="怀孕天数" align="center" prop="lambingDay" width="80" />
|
||||||
<el-table-column label="处理人" align="center" prop="handlerName" width="100" />
|
<el-table-column label="技术员" align="center" prop="technicianName" width="100" />
|
||||||
<el-table-column label="创建人" align="center" prop="createdByName" width="100" />
|
<el-table-column label="处理人" align="center" prop="handlerName" width="100" />
|
||||||
<el-table-column label="创建日期" align="center" prop="createdAt" width="100">
|
<el-table-column label="创建人" align="center" prop="createdByName" width="100" />
|
||||||
<template #default="scope"><span>{{ parseTime(scope.row.createdAt, '{y}-{m}-{d}') }}</span></template>
|
<el-table-column label="创建日期" align="center" prop="createdAt" width="100">
|
||||||
</el-table-column>
|
<template #default="scope"><span>{{ parseTime(scope.row.createdAt, '{y}-{m}-{d}') }}</span></template>
|
||||||
<el-table-column label="备注" align="center" prop="remark" width="150" show-overflow-tooltip />
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" width="150" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
|
|
||||||
<template #default="scope">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['saleRecord:saleRecord:edit']">修改</el-button>
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['saleRecord:saleRecord:remove']">删除</el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['saleRecord:saleRecord:edit']">修改</el-button>
|
||||||
</template>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['saleRecord:saleRecord:remove']">删除</el-button>
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<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" @pagination="getList" />
|
||||||
|
|
||||||
@@ -815,4 +817,31 @@ function diseaseTypeFormat(row) {
|
|||||||
background-color: #f5f7fa;
|
background-color: #f5f7fa;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 1. 将整个页面容器变为弹性布局,并固定总高度 */
|
||||||
|
.app-container {
|
||||||
|
/* calc(100vh - 84px) 中的 84px 是顶部导航栏和标签栏的大致高度,
|
||||||
|
如果你的系统顶部更高或更低,可以适当调整这个数值(例如 100px 或 120px) */
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. 让搜索表单、操作按钮、应用筛选提示、分页组件 不被挤压变形 */
|
||||||
|
.el-form,
|
||||||
|
.mb8,
|
||||||
|
.applied-filters,
|
||||||
|
.pagination-container {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. 让刚刚新增的表格包裹层自动撑满中间的所有剩余空间 */
|
||||||
|
.table-wrapper {
|
||||||
|
flex: 1; /* 占据所有剩余空间 */
|
||||||
|
min-height: 0; /* 🌟 关键:防止 flex 子项高度无限撑开导致页面出现滚动条 */
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user