add 补料任务添加
This commit is contained in:
parent
9fec9a2edf
commit
1396148d98
@ -110,36 +110,39 @@
|
|||||||
<!-- 补料任务 -->
|
<!-- 补料任务 -->
|
||||||
<el-tab-pane label="补料任务" name="tasks">
|
<el-tab-pane label="补料任务" name="tasks">
|
||||||
<div class="form-section">
|
<div class="form-section">
|
||||||
<div v-for="(task, index) in form.feedingTasks" :key="index" class="task-item">
|
<el-tabs v-model="feedingTaskActiveTab" type="card" v-if="feedingPumpTabs.length">
|
||||||
<el-row :gutter="25">
|
<el-tab-pane
|
||||||
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
v-for="pump in feedingPumpTabs"
|
||||||
<el-form-item :label="index === 0 ? '补料泵编号' : ''"
|
:key="pump.feedingPumpNo"
|
||||||
:prop="'feedingTasks.' + index + '.feedingPumpNo'">
|
:label="pump.feedingPumpName + (pump.mediumName ? '(' + pump.mediumName + ')' : '')"
|
||||||
<el-input-number v-model="task.feedingPumpNo" :min="1" style="width: 100%" placeholder="泵编号" />
|
:name="String(pump.feedingPumpNo)"
|
||||||
</el-form-item>
|
>
|
||||||
</el-col>
|
<el-table :data="getTasksByPumpNo(pump.feedingPumpNo)" border style="width: 100%">
|
||||||
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-table-column label="培养天数" prop="day" width="100">
|
||||||
<el-form-item :label="index === 0 ? '培养天数' : ''" :prop="'feedingTasks.' + index + '.day'">
|
<template #default="scope">
|
||||||
<el-input-number v-model="task.day" :min="1" style="width: 100%" placeholder="天数" />
|
<el-input-number v-model="scope.row.day" :min="1" style="width: 100%" placeholder="天数" />
|
||||||
</el-form-item>
|
</template>
|
||||||
</el-col>
|
</el-table-column>
|
||||||
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<el-table-column label="补料时间" prop="feedingTime" width="120">
|
||||||
<el-form-item :label="index === 0 ? '补料时间' : ''" :prop="'feedingTasks.' + index + '.feedingTime'">
|
<template #default="scope">
|
||||||
<el-time-picker v-model="task.feedingTime" format="HH:mm" style="width: 100%"
|
<el-time-picker v-model="scope.row.feedingTime" format="HH:mm" style="width: 100%" placeholder="补料时间" />
|
||||||
placeholder="补料时间" />
|
</template>
|
||||||
</el-form-item>
|
</el-table-column>
|
||||||
</el-col>
|
<el-table-column label="补料体积" prop="feedingVolume" width="120">
|
||||||
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
<template #default="scope">
|
||||||
<el-form-item :label="index === 0 ? '补料体积' : ''" :prop="'feedingTasks.' + index + '.feedingVolume'">
|
<el-input-number v-model="scope.row.feedingVolume" :min="0" :precision="2" style="width: 100%" placeholder="补料体积" />
|
||||||
<el-input-number v-model="task.feedingVolume" :min="0" :precision="2" style="width: 100%"
|
</template>
|
||||||
placeholder="补料体积" />
|
</el-table-column>
|
||||||
</el-form-item>
|
<el-table-column label="操作" width="80">
|
||||||
</el-col>
|
<template #default="scope">
|
||||||
</el-row>
|
<el-button type="danger" icon="ele-Delete" circle @click="removeTaskByPump(pump.feedingPumpNo, scope.$index)" v-if="getTasksByPumpNo(pump.feedingPumpNo).length > 1" />
|
||||||
<el-button type="danger" icon="ele-Delete" circle @click="removeTask(index)"
|
</template>
|
||||||
v-if="form.feedingTasks.length > 1" />
|
</el-table-column>
|
||||||
</div>
|
</el-table>
|
||||||
<el-button type="primary" icon="ele-Plus" @click="addTask">添加任务</el-button>
|
<el-button type="primary" icon="ele-Plus" class="mt-2" @click="addTaskByPump(pump.feedingPumpNo)">添加任务</el-button>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<div v-else>请先在"固定补料泵"选择补料培养基</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
@ -253,6 +256,61 @@ const state = reactive({
|
|||||||
const { form } = toRefs(state)
|
const { form } = toRefs(state)
|
||||||
const activeTab = ref('basic')
|
const activeTab = ref('basic')
|
||||||
const lastActiveTab = ref('basic')
|
const lastActiveTab = ref('basic')
|
||||||
|
const feedingTaskActiveTab = ref('')
|
||||||
|
|
||||||
|
const feedingPumpTabs = computed(() => {
|
||||||
|
// 只显示已选择补料培养基的泵
|
||||||
|
return state.form.fixedFeedingPumps
|
||||||
|
.filter(pump => pump.itemDefFeedingMediumID)
|
||||||
|
.map(pump => {
|
||||||
|
const medium = state.mediumOptions.find(m => m.id === pump.itemDefFeedingMediumID)
|
||||||
|
return {
|
||||||
|
feedingPumpNo: pump.feedingPumpNo,
|
||||||
|
feedingPumpName: pump.feedingPumpName,
|
||||||
|
mediumName: medium ? medium.name : ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => feedingPumpTabs.value,
|
||||||
|
(tabs) => {
|
||||||
|
// 自动切换到第一个tab
|
||||||
|
if (tabs.length && !feedingTaskActiveTab.value) {
|
||||||
|
feedingTaskActiveTab.value = String(tabs[0].feedingPumpNo)
|
||||||
|
} else if (!tabs.length) {
|
||||||
|
feedingTaskActiveTab.value = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
)
|
||||||
|
|
||||||
|
function getTasksByPumpNo(pumpNo: number) {
|
||||||
|
return state.form.feedingTasks.filter(task => task.feedingPumpNo === pumpNo)
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTaskByPump(pumpNo: number) {
|
||||||
|
state.form.feedingTasks.push({
|
||||||
|
id: 0,
|
||||||
|
cultureProtocolId: 0,
|
||||||
|
feedingPumpNo: pumpNo,
|
||||||
|
day: 0,
|
||||||
|
feedingTime: '',
|
||||||
|
feedingType: 0,
|
||||||
|
feedingVolumePercent: 0,
|
||||||
|
feedingVolume: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeTaskByPump(pumpNo: number, index: number) {
|
||||||
|
// 只移除当前泵下的第index个任务
|
||||||
|
const tasks = getTasksByPumpNo(pumpNo)
|
||||||
|
const task = tasks[index]
|
||||||
|
const globalIndex = state.form.feedingTasks.findIndex(t => t === task)
|
||||||
|
if (globalIndex !== -1) {
|
||||||
|
state.form.feedingTasks.splice(globalIndex, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 监听反应器选择变化
|
// 监听反应器选择变化
|
||||||
watch(() => state.form.equReactorId, (newVal, oldVal) => {
|
watch(() => state.form.equReactorId, (newVal, oldVal) => {
|
||||||
@ -379,25 +437,6 @@ const removeRule = (index: number) => {
|
|||||||
state.form.autoGlucoseFeedingRules.splice(index, 1)
|
state.form.autoGlucoseFeedingRules.splice(index, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加任务
|
|
||||||
const addTask = () => {
|
|
||||||
state.form.feedingTasks.push({
|
|
||||||
id: 0,
|
|
||||||
cultureProtocolId: 0,
|
|
||||||
feedingPumpNo: 0,
|
|
||||||
day: 0,
|
|
||||||
feedingTime: '',
|
|
||||||
feedingType: 0,
|
|
||||||
feedingVolumePercent: 0,
|
|
||||||
feedingVolume: 0
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 移除任务
|
|
||||||
const removeTask = (index: number) => {
|
|
||||||
state.form.feedingTasks.splice(index, 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleTabClick = async (tab: any, event: any) => {
|
const handleTabClick = async (tab: any, event: any) => {
|
||||||
if (lastActiveTab.value == 'pumps') {
|
if (lastActiveTab.value == 'pumps') {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user