From b533c4205cfb3df5f7925450a291e24a281f3a72 Mon Sep 17 00:00:00 2001 From: bicey <bocchi163@163.com> Date: Sun, 23 Jun 2024 15:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E8=A6=81=E6=B1=82=E4=BF=AE=E6=94=B9v1?= =?UTF-8?q?.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ZooAnimalFormDialog.vue | 10 +- src/components/ZooArchiveFormDialog.vue | 104 ++++++++++++++----- src/components/ZooArchiveTimeline.vue | 5 +- src/components/ZooBreedingPlanFormDialog.vue | 10 +- src/components/ZooHealthFormDialog.vue | 41 +++++--- src/pages/ZooBreeding.vue | 8 +- src/store/index.js | 9 ++ src/utils/request.js | 3 + 8 files changed, 137 insertions(+), 53 deletions(-) diff --git a/src/components/ZooAnimalFormDialog.vue b/src/components/ZooAnimalFormDialog.vue index 3f67add..2a16a8b 100644 --- a/src/components/ZooAnimalFormDialog.vue +++ b/src/components/ZooAnimalFormDialog.vue @@ -209,7 +209,7 @@ export default { font-size: 13px; " > - roleId :{{ item.id }} + 用户ID :{{ item.id }} </span> </el-option> </el-select> @@ -222,10 +222,10 @@ export default { </el-form-item> <el-form-item label="生命阶段"> <el-select v-model="form.phase" placeholder="生命阶段" :disabled="detail"> - <el-option label="幼年期" :value="0"/> - <el-option label="成长期" :value="1"/> - <el-option label="成年期" :value="2"/> - <el-option label="老年期" :value="3"/> + <el-option label="幼年期" value="幼年期"/> + <el-option label="成长期" value="成长期"/> + <el-option label="成年期" value="成年期"/> + <el-option label="老年期" value="老年期"/> </el-select> </el-form-item> <div class="right"> diff --git a/src/components/ZooArchiveFormDialog.vue b/src/components/ZooArchiveFormDialog.vue index 5111f15..1f3eea0 100644 --- a/src/components/ZooArchiveFormDialog.vue +++ b/src/components/ZooArchiveFormDialog.vue @@ -1,6 +1,6 @@ <script> import {copy} from "@/utils/common.js"; -import {mapState} from "vuex"; +import {mapState, mapGetters} from "vuex"; export default { name: "ZooArchiveFormDialog", @@ -17,6 +17,7 @@ export default { time: '',//字符,档案记录时间 roleId: null,//负责录入档案的人的id,身份不限 description: '',//字符 档案的描述 + breedingId: null }, } }, @@ -33,16 +34,17 @@ export default { default: false } }, - watch:{ - 'form.animalId':{ - handler(newValue){ + watch: { + 'form.animalId': { + handler(newValue) { // console.log(newValue) - this.form.animalName = this.animals.find(e=>e.id===this.form.animalId).name + this.form.animalName = this.animals.find(e => e.id === this.form.animalId).name } } }, - computed:{ - ...mapState(['loginUser','animals']) + computed: { + ...mapState(['loginUser', 'animals','breedingPlans']), + ...mapGetters(['getKeepersAndVeterinary']) }, mounted() { // 给表单填充传递的数据 @@ -50,8 +52,9 @@ export default { this.form = copy(this.data) } else { const newDate = new Date(); - this.form.date = newDate.getFullYear() + '-' + (newDate.getMonth()+1).toString().padStart(2, '0') + '-' + newDate.getDate().toString().padStart(2, '0') + this.form.date = newDate.getFullYear() + '-' + (newDate.getMonth() + 1).toString().padStart(2, '0') + '-' + newDate.getDate().toString().padStart(2, '0') this.form.time = newDate.getHours().toString().padStart(2, '0') + ':' + newDate.getMinutes().toString().padStart(2, '0') + ':' + newDate.getSeconds().toString().padStart(2, '0') + this.form.roleId = this.loginUser.id } }, beforeUnmount() { @@ -63,10 +66,11 @@ export default { <template> <el-form label-width="auto"> <el-form-item label="记录号"> - <el-input v-model.number="form.id" type="number" placeholder="系统自动生成记录号" :disabled="edit || detail || true"/> + <el-input v-model.number="form.id" type="number" placeholder="系统自动生成记录号" + :disabled="edit || detail || true"/> </el-form-item> <el-form-item label="动物ID"> -<!-- <el-input v-model.number="form.animalId" type="number" placeholder="动物ID" :disabled="detail"/>--> + <!-- <el-input v-model.number="form.animalId" type="number" placeholder="动物ID" :disabled="detail"/>--> <el-select v-model="form.animalId" placeholder="动物ID" clearable :disabled="detail"> <el-option v-for="item in animals" @@ -81,7 +85,7 @@ export default { font-size: 13px; " > - animalId :{{ item.id }} + 动物ID :{{ item.id }} </span> </el-option> </el-select> @@ -91,10 +95,10 @@ export default { </el-form-item> <el-form-item label="生命阶段"> <el-select v-model="form.phase" placeholder="生命阶段" :disabled="detail"> - <el-option label="幼年期" :value="0"/> - <el-option label="成长期" :value="1"/> - <el-option label="成年期" :value="2"/> - <el-option label="老年期" :value="3"/> + <el-option label="幼年期" value="幼年期"/> + <el-option label="成长期" value="成长期"/> + <el-option label="成年期" value="成年期"/> + <el-option label="老年期" value="老年期"/> </el-select> </el-form-item> <el-form-item label="动物状态"> @@ -111,20 +115,68 @@ export default { </el-select> </el-form-item> <el-form-item label="记录日期"> - <el-date-picker - v-model="form.date" - type="date" - placeholder="选择日期" - value-format="YYYY-MM-DD" - :disabled="detail" - /> + <el-col :span="11"> + <el-date-picker + v-model="form.date" + type="date" + placeholder="选择日期" + value-format="YYYY-MM-DD" + :disabled="detail" + style="width: 100%" + /> + </el-col> + <el-col :span="2"> + + </el-col> + <el-col :span="11"> + <el-time-picker v-model="form.time" type="time" placeholder="选择时间" value-format="HH:mm:ss" + :disabled="detail" style="width: 100%"/> + </el-col> + </el-form-item> - <el-form-item label="记录时间"> - <el-time-picker v-model="form.time" type="time" placeholder="选择时间" value-format="HH:mm:ss" - :disabled="detail"/> +<!-- <el-form-item label="记录时间">--> +<!-- --> +<!-- </el-form-item>--> + <el-form-item label="关联计划"> + <el-select v-model="form.breedingId" placeholder="选择关联计划" clearable :disabled="detail"> + <el-option + v-for="item in breedingPlans" + :key="item.id" + :value="item.id" + > + <span style="float: left">{{ item.name }}</span> + <span + style=" + float: right; + color: var(--el-text-color-secondary); + font-size: 13px; + " + > + 计划ID :{{ item.id }} + </span> + </el-option> + </el-select> </el-form-item> <el-form-item label="记录人ID"> - <el-input v-model.number="form.roleId" type="number" placeholder="记录人ID" :disabled="detail"/> + <!-- <el-input v-model.number="form.roleId" type="number" placeholder="记录人ID" :disabled="detail"/>--> + <el-select v-model="form.roleId" placeholder="记录人ID" clearable :disabled="detail"> + <el-option + v-for="item in getKeepersAndVeterinary" + :key="item.id" + :value="item.id" + > + <span style="float: left">{{ item.username }} ({{ item.auth === 1 ? '饲养员' : '兽医' }})</span> + <span + style=" + float: right; + color: var(--el-text-color-secondary); + font-size: 13px; + " + > + 用户ID :{{ item.id }} + </span> + </el-option> + </el-select> </el-form-item> <el-form-item label="记录描述"> <el-input diff --git a/src/components/ZooArchiveTimeline.vue b/src/components/ZooArchiveTimeline.vue index 959d5e9..df7a40a 100644 --- a/src/components/ZooArchiveTimeline.vue +++ b/src/components/ZooArchiveTimeline.vue @@ -132,7 +132,10 @@ export default { {{ a.description }} </el-descriptions-item> </el-descriptions> - <div class="left">记录号:{{ a.id }}</div> + <div class="left"> + 记录号:{{ a.id }} | + 关联计划:{{ a.breedingId }} + </div> <div class="right">{{ a.roleId }} 记录于 {{ a.date }} {{ a.time }}</div> </el-timeline-item> </el-timeline> diff --git a/src/components/ZooBreedingPlanFormDialog.vue b/src/components/ZooBreedingPlanFormDialog.vue index 8894db2..391056e 100644 --- a/src/components/ZooBreedingPlanFormDialog.vue +++ b/src/components/ZooBreedingPlanFormDialog.vue @@ -73,10 +73,10 @@ export default { </el-form-item> <el-form-item label="生命阶段"> <el-select v-model="form.phase" :disabled="detail"> - <el-option label="幼年期" :value="0"/> - <el-option label="成长期" :value="1"/> - <el-option label="成年期" :value="2"/> - <el-option label="老年期" :value="3"/> + <el-option label="幼年期" value="幼年期"/> + <el-option label="成长期" value="成长期"/> + <el-option label="成年期" value="成年期"/> + <el-option label="老年期" value="老年期"/> </el-select> </el-form-item> <el-form-item label="动物状态"> @@ -101,7 +101,7 @@ export default { font-size: 13px; " > - roleId :{{ item.id }} + 用户ID :{{ item.id }} </span> </el-option> </el-select> diff --git a/src/components/ZooHealthFormDialog.vue b/src/components/ZooHealthFormDialog.vue index 87b7390..b4520ef 100644 --- a/src/components/ZooHealthFormDialog.vue +++ b/src/components/ZooHealthFormDialog.vue @@ -82,7 +82,7 @@ export default { font-size: 13px; " > - animalId :{{ item.id }} + 动物ID :{{ item.id }} </span> </el-option> </el-select> @@ -113,18 +113,35 @@ export default { </el-radio-group> </el-form-item> <el-form-item label="记录日期"> - <el-date-picker - v-model="form.date" - type="date" - placeholder="选择日期" - value-format="YYYY-MM-DD" - :disabled="detail" - /> - </el-form-item> - <el-form-item label="记录时间"> - <el-time-picker v-model="form.time" type="time" placeholder="选择时间" value-format="HH:mm:ss" - :disabled="detail"/> +<!-- <el-date-picker--> +<!-- v-model="form.date"--> +<!-- type="date"--> +<!-- placeholder="选择日期"--> +<!-- value-format="YYYY-MM-DD"--> +<!-- :disabled="detail"--> +<!-- />--> + <el-col :span="11"> + <el-date-picker + v-model="form.date" + type="date" + placeholder="选择日期" + value-format="YYYY-MM-DD" + :disabled="detail" + style="width: 100%" + /> + </el-col> + <el-col :span="2"> + + </el-col> + <el-col :span="11"> + <el-time-picker v-model="form.time" type="time" placeholder="选择时间" value-format="HH:mm:ss" + :disabled="detail" style="width: 100%"/> + </el-col> </el-form-item> +<!-- <el-form-item label="记录时间">--> +<!-- <el-time-picker v-model="form.time" type="time" placeholder="选择时间" value-format="HH:mm:ss"--> +<!-- :disabled="detail"/>--> +<!-- </el-form-item>--> <el-form-item label="记录描述"> <el-input v-model="form.description" diff --git a/src/pages/ZooBreeding.vue b/src/pages/ZooBreeding.vue index 6b4e702..9d2d2fb 100644 --- a/src/pages/ZooBreeding.vue +++ b/src/pages/ZooBreeding.vue @@ -81,15 +81,15 @@ export default { this.dialog.dialogData = data //从后端获取需要查询的数据,防止数据前后不一致 - request.queryAnimalRequest(data.id).then(response => { + request.queryBreedingPlanRequest(data.id).then(response => { if (response.data.data===null){ this.refresh(); return ElMessage({ - message: '该动物不存在,请刷新', + message: '该计划不存在,请刷新', type: 'warning', }) } else { - request.queryArchiveRequest(null,data.id).then(response => { + request.queryArchiveByBreedingId(data.id).then(response => { if (response.data.code===1){ this.dialog.timelineData = frontendArchives(response.data.data) //显示弹窗 @@ -458,7 +458,7 @@ export default { </el-dialog> <!--查看动物所有记录--> - <el-dialog v-model="dialog.timelineDialogVisible" :title="'生命周期档案:'+dialog.dialogData.id" width="600" align-center + <el-dialog v-model="dialog.timelineDialogVisible" :title="'计划相关档案:'+dialog.dialogData.id" width="600" align-center draggable overflow destroy-on-close> <ZooArchiveTimeline :data="dialog.timelineData"> <!-- <template #operate="scope">--> diff --git a/src/store/index.js b/src/store/index.js index fd6bb1b..3872fb1 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -164,6 +164,15 @@ const getters = { }) return set }, + getKeepersAndVeterinary() { + const ka = [] + state.users.forEach(user => { + if (user.auth === 1 || user.auth === 2){ + ka.push(copy(user)) + } + }) + return ka + } } export default createStore({ diff --git a/src/utils/request.js b/src/utils/request.js index 71effc2..6e5c8a8 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -67,6 +67,9 @@ export default { queryArchiveRequest(id, animallId) { return instance.get("/archive/info", {params: {id, animallId}}) }, + queryArchiveByBreedingId(breedingId) { + return instance.get("/archive/selectByBreedingId", {params: {breedingId}}) + }, //健康记录请求 addHealthRequest(health) {