Compare commits
No commits in common. "2ff57d979880a34ee47a87b42fec479233499a1a" and "c9c9ad55acab3bcac985d85008bf48356f71d7a6" have entirely different histories.
2ff57d9798
...
c9c9ad55ac
@ -72,135 +72,36 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
@pagination="getList" />
|
||||||
|
|
||||||
<!-- 新增检疫记录对话框 -->
|
<!-- 添加或修改检疫记录对话框 -->
|
||||||
<el-dialog :title="'新增检疫记录'" v-model="addOpen" width="700px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||||
<el-form ref="addQuarantineRef" :model="addForm" :rules="addRules" label-width="100px">
|
<el-form ref="quarantineRef" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-row :gutter="20">
|
<el-form-item label="羊只" prop="sheepId">
|
||||||
<el-col :span="24">
|
<el-input v-model="form.sheepId" placeholder="请输入羊只" />
|
||||||
<el-form-item label="羊只耳号" prop="sheepIds" required>
|
|
||||||
<div>
|
|
||||||
<el-input v-model="addForm.sheepIdInput" placeholder="请输入羊只耳号,按回车验证" @keyup.enter="validateSheepId"
|
|
||||||
:disabled="isInputDisabled" />
|
|
||||||
<div v-if="invalidSheepId" style="color: red; margin-top: 5px;">
|
|
||||||
该羊只耳号不存在
|
|
||||||
</div>
|
|
||||||
<div v-if="validSheepId" style="color: green; margin-top: 5px;">
|
|
||||||
该羊只耳号已存在
|
|
||||||
</div>
|
|
||||||
<div style="margin-top: 10px;">
|
|
||||||
<el-tag v-for="(id, index) in addForm.sheepIds" :key="index" closable @close="removeSheepId(index)"
|
|
||||||
style="margin-right: 10px; margin-bottom: 10px;">
|
|
||||||
{{ id }}
|
|
||||||
</el-tag>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="检疫日期" prop="datetime">
|
|
||||||
<el-date-picker clearable v-model="addForm.datetime" type="date" value-format="YYYY-MM-DD"
|
|
||||||
placeholder="请选择检疫日期" :default-value="new Date()"></el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="检疫项目" prop="quarantineItems">
|
|
||||||
<el-select v-model="addForm.quarItems" placeholder="请选择检疫项目">
|
|
||||||
<el-option v-for="item in quarantineItems" :key="item.value" :label="item.label"
|
|
||||||
:value="item.value"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="样品类型" prop="sampleType">
|
|
||||||
<el-select v-model="addForm.sampleType" placeholder="请选择样品类型">
|
|
||||||
<el-option v-for="item in sampleTypes" :key="item.value" :label="item.label"
|
|
||||||
:value="item.value"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="采样员" prop="sampler">
|
|
||||||
<el-input v-model="addForm.sampler" placeholder="请输入采样员姓名"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="检疫员" prop="quarantineOfficer">
|
|
||||||
<el-input v-model="addForm.quarantineOfficer" placeholder="请输入检疫员姓名"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="检疫结果" prop="result">
|
|
||||||
<el-select v-model="editForm.result" placeholder="请选择检疫结果" style="width: 200px;">
|
|
||||||
<el-option v-for="items in quar_result" :key="items.id" :label="items.label"
|
|
||||||
:value="items.value"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="选择羊舍" prop="barnIds">
|
|
||||||
<el-select v-model="addForm.barnIds" multiple filterable placeholder="请选择羊舍" @change="handleBarnChange">
|
|
||||||
<el-option v-for="barn in barns" :key="barn.id" :label="barn.label" :value="barn.value"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<div class="dialog-footer">
|
|
||||||
<el-button type="primary" @click="submitAddForm">确 定</el-button>
|
|
||||||
<el-button @click="cancelAdd">取 消</el-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<!-- 修改检疫记录对话框 -->
|
|
||||||
<el-dialog :title="'修改检疫记录'" v-model="editOpen" width="500px" append-to-body>
|
|
||||||
<el-form ref="editQuarantineRef" :model="editForm" :rules="editRules" label-width="100px">
|
|
||||||
<el-form-item label="检疫状态" prop="status">
|
|
||||||
<el-select v-model="editForm.status" placeholder="请选择检疫状态">
|
|
||||||
<el-option label="未检疫" value="未检疫"></el-option>
|
|
||||||
<el-option label="检疫中" value="检疫中"></el-option>
|
|
||||||
<el-option label="检疫完成" value="检疫完成"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="检疫类型" prop="quarantineType">
|
<el-form-item label="检疫日期" prop="datetime">
|
||||||
<el-select v-model="editForm.quarantineType" placeholder="请选择检疫类型">
|
<el-date-picker clearable v-model="form.datetime" type="date" value-format="YYYY-MM-DD" placeholder="请选择检疫日期">
|
||||||
<el-option label="常规检疫" value="常规检疫"></el-option>
|
</el-date-picker>
|
||||||
<el-option label="疫病检疫" value="疫病检疫"></el-option>
|
|
||||||
<el-option label="进出口检疫" value="进出口检疫"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="检疫结果" prop="result">
|
<el-form-item label="检疫结果" prop="result">
|
||||||
<el-select v-model="editForm.result" placeholder="请选择检疫结果">
|
<el-select v-model="form.result" placeholder="请选择检疫结果">
|
||||||
<el-option label="阴性" value="阴性"></el-option>
|
<el-option v-for="dict in quar_result" :key="dict.value" :label="dict.label"
|
||||||
<el-option label="阳性" value="阳性"></el-option>
|
:value="parseInt(dict.value)"></el-option>
|
||||||
<el-option label="待定" value="待定"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-input v-model="editForm.remark" type="textarea" placeholder="请输入备注"></el-input>
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio v-for="dict in quar_status" :key="dict.value"
|
||||||
|
:label="parseInt(dict.value)">{{ dict.label }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitEditForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
<el-button @click="cancelEdit">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -208,110 +109,29 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Quarantine">
|
<script setup name="Quarantine">
|
||||||
import { listQuarantine, getQuarantine, delQuarantine, addQuarantine, updateQuarantine } from "@/api/biosafety/quarantine";
|
import { listQuarantine, getQuarantine, delQuarantine, addQuarantine, updateQuarantine } from "@/api/biosafety/quarantine"
|
||||||
import { listItems } from "@/api/biosafety/items";
|
import { listItems } from "@/api/biosafety/items"
|
||||||
import { listSample } from "@/api/biosafety/sample";
|
import { listSample } from "@/api/biosafety/sample"
|
||||||
import request from '@/utils/request'
|
import { useRoute, useRouter } from "vue-router"
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
import { useRoute, useRouter } from "vue-router";
|
const { proxy } = getCurrentInstance()
|
||||||
const route = useRoute();
|
const { quar_result, quar_status } = proxy.useDict('quar_result', 'quar_status')
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const quarantineList = ref([])
|
||||||
const { quar_result, quar_status } = proxy.useDict('quar_result', 'quar_status');
|
const open = ref(false)
|
||||||
|
const loading = ref(true)
|
||||||
|
const showSearch = ref(true)
|
||||||
|
const ids = ref([])
|
||||||
|
const single = ref(true)
|
||||||
|
const multiple = ref(true)
|
||||||
|
const total = ref(0)
|
||||||
|
const title = ref("")
|
||||||
|
const daterangeDatetime = ref([])
|
||||||
|
|
||||||
const quarantineList = ref([]);
|
|
||||||
const open = ref(false);
|
|
||||||
const loading = ref(true);
|
|
||||||
const showSearch = ref(true);
|
|
||||||
const ids = ref([]);
|
|
||||||
const single = ref(true);
|
|
||||||
const multiple = ref(true);
|
|
||||||
const total = ref(0);
|
|
||||||
const title = ref("");
|
|
||||||
const daterangeDatetime = ref([]);
|
|
||||||
|
|
||||||
// 检疫项目
|
|
||||||
const quarantineItems = ref([]);
|
|
||||||
function getItems() {
|
|
||||||
listItems().then(response => {
|
|
||||||
|
|
||||||
console.log("检疫项目列表获取成功", quarantineItems.value);
|
|
||||||
quarantineItems.value = response.rows.map(item => ({
|
|
||||||
label: item.name,
|
|
||||||
value: item.id
|
|
||||||
}));
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 样品类型
|
|
||||||
const sampleTypes = ref([]);
|
|
||||||
|
|
||||||
function getSample() {
|
|
||||||
listSample().then(response => {
|
|
||||||
sampleTypes.value = response.rows.map(item => ({
|
|
||||||
label: item.name,
|
|
||||||
value: item.id
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 羊舍列表
|
|
||||||
const barns = ref([]);
|
|
||||||
/** 获取羊舍列表 */
|
|
||||||
function getBarns() {
|
|
||||||
request.get("/sheepfold_management/sheepfold_management/list").then(response => {
|
|
||||||
barns.value = response.rows.map(item => ({
|
|
||||||
label: item.sheepfoldName,
|
|
||||||
value: item.id
|
|
||||||
}));
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 新增相关
|
|
||||||
const addOpen = ref(false);
|
|
||||||
const addForm = ref({
|
|
||||||
sheepIds: [], // 存储已验证的羊只耳号列表
|
|
||||||
sheepIdInput: '', // 单行输入框绑定的值
|
|
||||||
datetime: new Date().toISOString().slice(0, 10), // 设置默认日期为今天
|
|
||||||
quarantineType: '',
|
|
||||||
quarItems: "",
|
|
||||||
sampleType: '',
|
|
||||||
sampler: '',
|
|
||||||
quarantineOfficer: '',
|
|
||||||
barnIds: ""
|
|
||||||
});
|
|
||||||
|
|
||||||
const addRules = {
|
|
||||||
sheepIds: [{ required: true, message: "请至少添加一个有效的羊只耳号", trigger: "blur" }],
|
|
||||||
datetime: [{ required: true, message: "请选择检疫日期", trigger: "change" }],
|
|
||||||
quarItem: [{ required: true, message: "请选择检疫类型", trigger: "change" }],
|
|
||||||
sampleType: [{ required: true, message: "请选择样品类型", trigger: "change" }]
|
|
||||||
};
|
|
||||||
const addQuarantineRef = ref(null);
|
|
||||||
const invalidSheepId = ref(false); // 当前输入的耳号是否无效
|
|
||||||
const validSheepId = ref(false); // 当前输入的耳号是否已存在
|
|
||||||
const isInputDisabled = ref(false); // 输入框是否禁用
|
|
||||||
|
|
||||||
// 修改相关
|
|
||||||
const editOpen = ref(false);
|
|
||||||
const editForm = ref({
|
|
||||||
id: null,
|
|
||||||
status: '',
|
|
||||||
quarantineType: '',
|
|
||||||
result: '',
|
|
||||||
remark: ''
|
|
||||||
});
|
|
||||||
const editRules = {
|
|
||||||
status: [{ required: true, message: "请选择检疫状态", trigger: "change" }],
|
|
||||||
quarantineType: [{ required: true, message: "请选择检疫类型", trigger: "change" }]
|
|
||||||
};
|
|
||||||
const editQuarantineRef = ref(null);
|
|
||||||
|
|
||||||
// 查询相关
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@ -323,246 +143,144 @@ const data = reactive({
|
|||||||
quarOfficer: null,
|
quarOfficer: null,
|
||||||
result: null,
|
result: null,
|
||||||
status: null,
|
status: null,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
sheepId: [
|
||||||
|
{ required: true, message: "羊只不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
quarItem: [
|
||||||
|
{ required: true, message: "检疫项目不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
sampleType: [
|
||||||
|
{ required: true, message: "样品类型不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
const { queryParams } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
/** 查询检疫记录列表 */
|
/** 查询检疫记录列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true;
|
loading.value = true
|
||||||
queryParams.value.params = {};
|
queryParams.value.params = {}
|
||||||
if (null != daterangeDatetime.value && daterangeDatetime.value.length === 2) {
|
if (null != daterangeDatetime && '' != daterangeDatetime) {
|
||||||
queryParams.value.params["beginDatetime"] = daterangeDatetime.value[0];
|
queryParams.value.params["beginDatetime"] = daterangeDatetime.value[0]
|
||||||
queryParams.value.params["endDatetime"] = daterangeDatetime.value[1];
|
queryParams.value.params["endDatetime"] = daterangeDatetime.value[1]
|
||||||
}
|
}
|
||||||
listQuarantine(queryParams.value).then(response => {
|
listQuarantine(queryParams.value).then(response => {
|
||||||
quarantineList.value = response.rows;
|
quarantineList.value = response.rows
|
||||||
total.value = response.total;
|
total.value = response.total
|
||||||
loading.value = false;
|
loading.value = false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
function cancel() {
|
function cancel() {
|
||||||
open.value = false;
|
open.value = false
|
||||||
|
reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 表单重置
|
// 表单重置
|
||||||
function reset() {
|
function reset() {
|
||||||
addForm.value = {
|
form.value = {
|
||||||
sheepIds: [],
|
id: null,
|
||||||
sheepIdInput: '',
|
sheepId: null,
|
||||||
datetime: new Date().toISOString().slice(0, 10), // 重置时也设置默认日期
|
datetime: null,
|
||||||
quarantineType: '',
|
quarItem: null,
|
||||||
quarItems: "",
|
sampleType: null,
|
||||||
sampleType: '',
|
sampler: null,
|
||||||
sampler: '',
|
quarOfficer: null,
|
||||||
quarantineOfficer: '',
|
result: null,
|
||||||
barnIds: []
|
status: null,
|
||||||
};
|
updateBy: null,
|
||||||
invalidSheepId.value = false;
|
updateTime: null,
|
||||||
validSheepId.value = false;
|
createBy: null,
|
||||||
proxy.resetForm("addQuarantineRef");
|
createTime: null
|
||||||
|
}
|
||||||
|
proxy.resetForm("quarantineRef")
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 搜索功能 */
|
/** 搜索按钮操作 */
|
||||||
function handleQuery() {
|
function handleQuery() {
|
||||||
queryParams.value.pageNum = 1;
|
queryParams.value.pageNum = 1
|
||||||
getList();
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
function resetQuery() {
|
function resetQuery() {
|
||||||
daterangeDatetime.value = [];
|
daterangeDatetime.value = []
|
||||||
proxy.resetForm("queryRef");
|
proxy.resetForm("queryRef")
|
||||||
handleQuery();
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
function handleSelectionChange(selection) {
|
function handleSelectionChange(selection) {
|
||||||
ids.value = selection.map(item => item.id);
|
ids.value = selection.map(item => item.id)
|
||||||
single.value = selection.length != 1;
|
single.value = selection.length != 1
|
||||||
multiple.value = !selection.length;
|
multiple.value = !selection.length
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
reset();
|
reset()
|
||||||
addOpen.value = true;
|
open.value = true
|
||||||
}
|
title.value = "添加检疫记录"
|
||||||
|
|
||||||
// 校验单个羊只耳号
|
|
||||||
function validateSheepId() {
|
|
||||||
if (!addForm.value.sheepIdInput.trim()) return;
|
|
||||||
|
|
||||||
invalidSheepId.value = false;
|
|
||||||
validSheepId.value = false;
|
|
||||||
|
|
||||||
// 禁用输入框,防止重复提交
|
|
||||||
isInputDisabled.value = true;
|
|
||||||
|
|
||||||
request.get(`/sheep/sheep/${addForm.value.sheepIdInput.trim()}`).then(response => {
|
|
||||||
if (response.exists) {
|
|
||||||
// 耳号存在,添加到列表
|
|
||||||
if (!addForm.value.sheepIds.includes(addForm.value.sheepIdInput.trim())) {
|
|
||||||
addForm.value.sheepIds.push(addForm.value.sheepIdInput.trim());
|
|
||||||
validSheepId.value = true;
|
|
||||||
} else {
|
|
||||||
proxy.$modal.msgWarning("该羊只耳号已添加");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 耳号不存在
|
|
||||||
invalidSheepId.value = true;
|
|
||||||
}
|
|
||||||
}).finally(() => {
|
|
||||||
// 清空输入框并启用
|
|
||||||
addForm.value.sheepIdInput = '';
|
|
||||||
isInputDisabled.value = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 移除羊只耳号
|
|
||||||
function removeSheepId(index) {
|
|
||||||
addForm.value.sheepIds.splice(index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 处理羊舍变更
|
|
||||||
function handleBarnChange(barnIds) {
|
|
||||||
if (!barnIds || barnIds.length === 0) return;
|
|
||||||
|
|
||||||
// 这里需要调用接口获取选中羊舍中的所有羊只耳号
|
|
||||||
// 并将它们添加到输入框中
|
|
||||||
// 示例代码,实际接口可能不同
|
|
||||||
let allSheepIds = addForm.value.sheepIds;
|
|
||||||
|
|
||||||
barnIds.forEach(barnId => {
|
|
||||||
// 模拟从羊舍获取耳号,实际应替换为真实接口
|
|
||||||
const barnSheepIds = getSheepIdsFromBarn(barnId);
|
|
||||||
barnSheepIds.forEach(sheepId => {
|
|
||||||
if (!allSheepIds.includes(sheepId)) {
|
|
||||||
// 验证耳号有效性
|
|
||||||
request.get(`/sheep/sheep/${sheepId}`).then(response => {
|
|
||||||
if (response.exists && !allSheepIds.includes(sheepId)) {
|
|
||||||
allSheepIds.push(sheepId);
|
|
||||||
addForm.value.sheepIds = [...allSheepIds];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 模拟从羊舍获取耳号(实际应替换为接口调用) */
|
|
||||||
function getSheepIdsFromBarn(barnId) {
|
|
||||||
// 模拟数据,实际应从接口获取
|
|
||||||
const barnSheepMap = {
|
|
||||||
1: ['E001', 'E002', 'E003'],
|
|
||||||
2: ['E004', 'E005'],
|
|
||||||
3: ['E006']
|
|
||||||
};
|
|
||||||
return barnSheepMap[barnId] || [];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 提交新增表单 */
|
|
||||||
function submitAddForm() {
|
|
||||||
addQuarantineRef.value.validate(valid => {
|
|
||||||
if (valid) {
|
|
||||||
if (addForm.value.sheepIds.length === 0) {
|
|
||||||
proxy.$modal.msgError("请至少添加一个有效的羊只耳号");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = {
|
|
||||||
...addForm.value,
|
|
||||||
sheepIds: addForm.value.sheepIds,
|
|
||||||
quarItems: addForm.value.quarItems.join(','),
|
|
||||||
};
|
|
||||||
|
|
||||||
addQuarantine(data).then(response => {
|
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
|
||||||
addOpen.value = false;
|
|
||||||
getList();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 取消新增 */
|
|
||||||
function cancelAdd() {
|
|
||||||
addOpen.value = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
resetEditForm();
|
reset()
|
||||||
const _id = row.id || ids.value;
|
const _id = row.id || ids.value
|
||||||
getQuarantine(_id).then(response => {
|
getQuarantine(_id).then(response => {
|
||||||
editForm.value = {
|
form.value = response.data
|
||||||
...response.data,
|
open.value = true
|
||||||
status: response.data.status,
|
title.value = "修改检疫记录"
|
||||||
quarantineType: response.data.quarantineType,
|
})
|
||||||
result: response.data.result,
|
|
||||||
remark: response.data.remark
|
|
||||||
};
|
|
||||||
editOpen.value = true;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 重置修改表单 */
|
/** 提交按钮 */
|
||||||
function resetEditForm() {
|
function submitForm() {
|
||||||
editForm.value = {
|
proxy.$refs["quarantineRef"].validate(valid => {
|
||||||
id: null,
|
|
||||||
status: '',
|
|
||||||
quarantineType: '',
|
|
||||||
result: '',
|
|
||||||
remark: ''
|
|
||||||
};
|
|
||||||
proxy.resetForm("editQuarantineRef");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 提交修改表单 */
|
|
||||||
function submitEditForm() {
|
|
||||||
editQuarantineRef.value.validate(valid => {
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
updateQuarantine(editForm.value).then(response => {
|
if (form.value.id != null) {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
updateQuarantine(form.value).then(response => {
|
||||||
editOpen.value = false;
|
proxy.$modal.msgSuccess("修改成功")
|
||||||
getList();
|
open.value = false
|
||||||
});
|
getList()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
addQuarantine(form.value).then(response => {
|
||||||
|
proxy.$modal.msgSuccess("新增成功")
|
||||||
|
open.value = false
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
|
||||||
|
|
||||||
/** 取消修改 */
|
|
||||||
function cancelEdit() {
|
|
||||||
editOpen.value = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
function handleDelete(row) {
|
function handleDelete(row) {
|
||||||
const _ids = row.id || ids.value;
|
const _ids = row.id || ids.value
|
||||||
proxy.$modal.confirm('是否确认删除检疫记录编号为"' + _ids + '"的数据项?').then(function () {
|
proxy.$modal.confirm('是否确认删除检疫记录编号为"' + _ids + '"的数据项?').then(function () {
|
||||||
return delQuarantine(_ids);
|
return delQuarantine(_ids)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList();
|
getList()
|
||||||
proxy.$modal.msgSuccess("删除成功");
|
proxy.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => { });
|
}).catch(() => { })
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
function handleExport() {
|
function handleExport() {
|
||||||
proxy.download('bisosafety/quarantine/export', {
|
proxy.download('bisosafety/quarantine/export', {
|
||||||
...queryParams.value
|
...queryParams.value
|
||||||
}, `quarantine_${new Date().getTime()}.xlsx`);
|
}, `quarantine_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
|
|
||||||
function gotoTreatment(row) {
|
function gotoTreatment(row) {
|
||||||
router.push({ path: '/biosafety/treatment/add', query: { qId: row.id, sId: row.sheepId } });
|
router.push({ path: '/biosafety/treatment/add', query: { qId: row.id,sId:row.sheepId } })
|
||||||
}
|
}
|
||||||
|
|
||||||
getList();
|
|
||||||
getItems(); // 获取检疫项目列表
|
getList()
|
||||||
getSample(); // 获取样品类型列表
|
|
||||||
getBarns(); // 获取羊舍列表
|
|
||||||
</script>
|
</script>
|
@ -121,7 +121,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, getCurrentInstance } from 'vue'
|
import { ref, onMounted, getCurrentInstance } from 'vue'
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
import { addSheep, exportSheepForm } from '@/api/produce/manage_sheep/add_sheep'
|
import { addSheep, exportSheepForm } from '@/api/produce/manage_sheep/add_sheep/add_sheep'
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
|
|
||||||
@ -259,10 +259,10 @@ function handleImportError(err) {
|
|||||||
|
|
||||||
|
|
||||||
/* -------------------- 初始化 -------------------- */
|
/* -------------------- 初始化 -------------------- */
|
||||||
|
onMounted(() => {
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
@ -369,8 +369,9 @@ function getVarietyOptions() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------- 初始化 -------------------- */
|
/* -------------------- 初始化 -------------------- */
|
||||||
|
onMounted(() => {
|
||||||
loadSheepfold()
|
loadSheepfold()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
getList()
|
getList()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
@ -351,47 +351,9 @@ function getVarietyOptions() {
|
|||||||
}).then(res => { varietyOptions.value = res.rows || [] })
|
}).then(res => { varietyOptions.value = res.rows || [] })
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 导出按钮操作 */
|
/* -------------------- 入口 -------------------- */
|
||||||
function handleExport() {
|
onMounted(() => {
|
||||||
proxy.download('/produce/manage_sheep/transition_info/export', {
|
getVarietyOptions()
|
||||||
...queryParams.value
|
getList()
|
||||||
}, `transition_info_${new Date().getTime()}.xlsx`)
|
})
|
||||||
}
|
</script>
|
||||||
// 审批记录的对话框
|
|
||||||
const approveDialog = ref(false);
|
|
||||||
const approveForm = ref({});
|
|
||||||
|
|
||||||
// 审批按钮操作
|
|
||||||
function handleApprove(row) {
|
|
||||||
// 打开审批对话框
|
|
||||||
approveForm.value = { ...row };
|
|
||||||
approveDialog.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 同意审批
|
|
||||||
function handleApproveAgree() {
|
|
||||||
approveForm.value.status = 1; // 状态设置为同意
|
|
||||||
updateTransition_info(approveForm.value).then(() => {
|
|
||||||
approveDialog.value = false;
|
|
||||||
proxy.$modal.msgSuccess("审批成功,状态已更新为同意");
|
|
||||||
getList();
|
|
||||||
}).catch((error) => {
|
|
||||||
proxy.$modal.msgError(`审批失败:${error}`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 驳回审批
|
|
||||||
function handleApproveReject() {
|
|
||||||
approveForm.value.status = 2; // 状态设置为驳回
|
|
||||||
updateTransition_info(approveForm.value).then(() => {
|
|
||||||
approveDialog.value = false;
|
|
||||||
proxy.$modal.msgSuccess("审批成功,状态已更新为驳回");
|
|
||||||
getList();
|
|
||||||
}).catch((error) => {
|
|
||||||
proxy.$modal.msgError(`审批失败:${error}`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getList()
|
|
||||||
|
|
||||||
</script>
|
|
@ -110,7 +110,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="castrate">
|
<script setup name="castrate">
|
||||||
import { listCastrate, getCastrate, delCastrate, addCastrate, updateCastrate } from '@/api/produce/other/castrate'
|
import { listCastrate, getCastrate, delCastrate, addCastrate, updateCastrate } from '@/api/produce/other/castrate/castrate'
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
@ -276,9 +276,9 @@ function getVarietyOptions() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
@ -299,10 +299,9 @@ async function validateSheep() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 只保留一个 onMounted */
|
onMounted(() => {
|
||||||
|
|
||||||
getList()
|
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
|
getList()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
@ -97,7 +97,6 @@
|
|||||||
<script setup name="Variety">
|
<script setup name="Variety">
|
||||||
import { listVariety, getVariety, delVariety, addVariety, updateVariety } from "@/api/variety/variety"
|
import { listVariety, getVariety, delVariety, addVariety, updateVariety } from "@/api/variety/variety"
|
||||||
|
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
const varietyList = ref([])
|
const varietyList = ref([])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user