Browse Source

feat:[试验管理][饲养间管理]

master
HanLong 5 days ago
parent
commit
021d698688
14 changed files with 907 additions and 315 deletions
  1. +21
    -0
      src/api/business/public/public.js
  2. +47
    -0
      src/api/business/study/studyRoom.js
  3. +21
    -0
      src/lang/en/business/study/studyRoom.js
  4. +21
    -0
      src/lang/zh/business/study/studyRoom.js
  5. +92
    -0
      src/views/business/comps/select/SelectAnimalSpecies.vue
  6. +104
    -0
      src/views/business/comps/select/SelectCage.vue
  7. +29
    -13
      src/views/business/comps/select/SelectRoom.vue
  8. +1
    -1
      src/views/business/comps/select/SelectTestArea.vue
  9. +159
    -0
      src/views/business/study/comp/syj/Bj.vue
  10. +113
    -0
      src/views/business/study/comp/syj/Jl.vue
  11. +173
    -0
      src/views/business/study/comp/syj/Js.vue
  12. +41
    -107
      src/views/business/study/comp/syj/Xz.vue
  13. +83
    -192
      src/views/business/study/comp/syjList.vue
  14. +2
    -2
      vue.config.js

+ 21
- 0
src/api/business/public/public.js View File

@ -37,3 +37,24 @@ export function public_studyFormPreList(query) {
params: query params: query
}) })
} }
<<<<<<< HEAD
=======
// 试验区域-饲养间列表
export function public_roomList(query) {
return request({
url: '/system/business/public/roomList',
method: 'get',
params: query
})
}
// 动物种属-笼具列表
export function public_animalSpeciesList(query) {
return request({
url: '/system/business/public/animalSpeciesList',
method: 'get',
params: query
})
}
>>>>>>> 980f3ba (feat:[试验管理][饲养间管理])

+ 47
- 0
src/api/business/study/studyRoom.js View File

@ -0,0 +1,47 @@
import request from '@/utils/request'
// 启用饲养间
export function studyRoom_save(data) {
return request({
url: '/system/business/studyRoom/save',
method: 'post',
data: data
})
}
// 更换笼具
export function studyRoom_update(data) {
return request({
url: '/system/business/studyRoom/update',
method: 'post',
data: data
})
}
// 饲养间列表
export function studyRoom_list(query) {
return request({
url: '/system/business/studyRoom/list',
method: 'get',
params: query
})
}
// 笼具更换记录列表
export function studyRoom_historyList(query) {
return request({
url: '/system/business/studyRoom/historyList',
method: 'get',
params: query
})
}
// 饲养间结束使用
export function studyRoom_js(data) {
return request({
url: '/system/business/studyRoom/js',
method: 'post',
data: data
})
}

+ 21
- 0
src/lang/en/business/study/studyRoom.js View File

@ -1,4 +1,25 @@
export default { export default {
qysyj: '启用饲养间', qysyj: '启用饲养间',
xzqy: '新增启用', xzqy: '新增启用',
syqy: '试验区域',
syjh: '饲养间号',
dwzs: '动物种属',
longju: '笼具',
kssyyl: '开始使用原因',
qyr: '启用人',
kssj: '开始时间',
jssyyl: '结束使用原因',
jsr: '结束人',
jssj: '结束时间',
zt: '状态',
syz: '使用中',
yjs: '已结束',
ghlj: '更换笼具',
js: '结束',
ljjl: '笼具记录',
ghr: '更换人',
ghsj: '更换时间',
ghqlj: '更换前笼具',
ghhlj: '更换后笼具',
} }

+ 21
- 0
src/lang/zh/business/study/studyRoom.js View File

@ -1,4 +1,25 @@
export default { export default {
qysyj: '启用饲养间', qysyj: '启用饲养间',
xzqy: '新增启用', xzqy: '新增启用',
syqy: '试验区域',
syjh: '饲养间号',
dwzs: '动物种属',
longju: '笼具',
kssyyl: '开始使用原因',
qyr: '启用人',
kssj: '开始时间',
jssyyl: '结束使用原因',
jsr: '结束人',
jssj: '结束时间',
zt: '状态',
syz: '使用中',
yjs: '已结束',
ghlj: '更换笼具',
js: '结束',
ljjl: '笼具记录',
ghr: '更换人',
ghsj: '更换时间',
ghqlj: '更换前笼具',
ghhlj: '更换后笼具',
} }

+ 92
- 0
src/views/business/comps/select/SelectAnimalSpecies.vue View File

@ -0,0 +1,92 @@
<!-- 试验区域 -->
<template>
<div>
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" :disabled="readonly" :multiple="multiple" @change="handleChange" :filterable="filterable">
<el-option v-for="item in list" :key="item" :label="item" :value="item" />
</el-select>
</div>
</template>
<script>
import { public_animalSpeciesList } from "@/api/business/public/public";
export default {
name: "SelectAnimalSpecies",
components: {},
props: {
value: {
type: [Number, String , Array],
default: '',
},
//
syqy: {
type: String,
default: ''
},
readonly: {
type: Boolean,
default: false
},
multiple: {
type: Boolean,
default: false
},
filterable: {
type: Boolean,
default: true
},
placeholder: {
type: String,
default: ''
}
},
watch: {
value: {
immediate: true,
handler(v) {
if(!this.multiple){
this.selected = v ? v : ''
}else{
if(v){
//,
let arr = v.split(',')
let s = []
_.forEach(arr,a=>{
s.push(a)
})
this.selected = s
}else{
this.selected = []
}
}
}
}
},
data() {
return {
selected: '',
list: [],
queryParam:{
}
};
},
mounted() {
this.getList()
},
methods: {
getList() {
this.list = []
public_animalSpeciesList(this.queryParam).then(response => {
response.data.forEach(item => {
if(this.list.indexOf(item.animalSpecies) < 0) {
this.list.push(item.animalSpecies)
}
})
})
},
handleChange(val) {
this.$emit('input', val)
this.$emit('change', val)
},
}
};
</script>

+ 104
- 0
src/views/business/comps/select/SelectCage.vue View File

@ -0,0 +1,104 @@
<!-- 试验区域-饲养间号 -->
<template>
<div>
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" :disabled="readonly"
:multiple="multiple" @change="handleChange" :filterable="filterable">
<el-option v-for="item in list" :key="item" :label="item" :value="item" />
</el-select>
</div>
</template>
<script>
import { public_animalSpeciesList } from "@/api/business/public/public";
export default {
name: "SelectCage",
components: {},
props: {
value: {
type: [Number, String, Array],
default: '',
},
//
animalSpecies: {
type: String,
default: ''
},
readonly: {
type: Boolean,
default: false
},
multiple: {
type: Boolean,
default: false
},
filterable: {
type: Boolean,
default: true
},
placeholder: {
type: String,
default: ''
}
},
watch: {
animalSpecies: {
immediate: true,
handler(v) {
this.getList();
}
},
value: {
immediate: true,
handler(v) {
if (!this.multiple) {
this.selected = v ? v : ''
} else {
if (v) {
//,
let arr = v.split(',')
let s = []
_.forEach(arr, a => {
s.push(a)
})
this.selected = s
} else {
this.selected = []
}
}
this.getList();
}
}
},
data() {
return {
selected: '',
list: [],
queryParam: {
}
};
},
mounted() {
this.getList()
},
methods: {
getList() {
this.list = []
if (this.animalSpecies) {
public_animalSpeciesList({ animalSpecies: this.animalSpecies }).then(response => {
response.data.forEach(item => {
if (this.list.indexOf(item.cage) < 0) {
this.list.push(item.cage)
}
})
})
}
},
handleChange(val) {
this.$emit('input', val)
this.$emit('change', val)
},
}
};
</script>

+ 29
- 13
src/views/business/comps/select/SelectRoom.vue View File

@ -1,8 +1,9 @@
<!-- 试验区域-饲养间号 --> <!-- 试验区域-饲养间号 -->
<template> <template>
<div> <div>
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" :disabled="readonly" :multiple="multiple" @change="handleChange" :filterable="filterable">
<el-option v-for="item in list" :key="item" :label="item" :value="item" />
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" :disabled="readonly"
:multiple="multiple" @change="handleChange" :filterable="filterable">
<el-option v-for="item in list" :key="item" :label="item" :value="item" />
</el-select> </el-select>
</div> </div>
</template> </template>
@ -14,7 +15,7 @@ export default {
components: {}, components: {},
props: { props: {
value: { value: {
type: [Number, String , Array],
type: [Number, String, Array],
default: '', default: '',
}, },
// //
@ -28,7 +29,7 @@ export default {
}, },
multiple: { multiple: {
type: Boolean, type: Boolean,
default: true
default: false
}, },
filterable: { filterable: {
type: Boolean, type: Boolean,
@ -40,24 +41,31 @@ export default {
} }
}, },
watch: { watch: {
testArea: {
immediate: true,
handler(v) {
this.getList();
}
},
value: { value: {
immediate: true, immediate: true,
handler(v) { handler(v) {
if(!this.multiple){
if (!this.multiple) {
this.selected = v ? v : '' this.selected = v ? v : ''
}else{
if(v){
} else {
if (v) {
//, //,
let arr = v.split(',') let arr = v.split(',')
let s = [] let s = []
_.forEach(arr,a=>{
_.forEach(arr, a => {
s.push(a) s.push(a)
}) })
this.selected = s this.selected = s
}else{
} else {
this.selected = [] this.selected = []
} }
} }
this.getList();
} }
} }
}, },
@ -65,7 +73,7 @@ export default {
return { return {
selected: '', selected: '',
list: [], list: [],
queryParam:{
queryParam: {
} }
}; };
}, },
@ -75,9 +83,17 @@ export default {
methods: { methods: {
getList() { getList() {
this.list = [] this.list = []
public_roomList({syqy: this.testArea}).then(response => {
this.list = response.data || []
})
if (this.testArea) {
public_roomList({ syqy: this.testArea }).then(response => {
response.data.forEach(item => {
if (this.list.indexOf(item.syjh) < 0) {
this.list.push(item.syjh)
}
})
})
}
}, },
handleChange(val) { handleChange(val) {
this.$emit('input', val) this.$emit('input', val)

+ 1
- 1
src/views/business/comps/select/SelectTestArea.vue View File

@ -28,7 +28,7 @@ export default {
}, },
multiple: { multiple: {
type: Boolean, type: Boolean,
default: true
default: false
}, },
filterable: { filterable: {
type: Boolean, type: Boolean,

+ 159
- 0
src/views/business/study/comp/syj/Bj.vue View File

@ -0,0 +1,159 @@
G<template>
<div>
<!-- 试验间-更换笼具弹窗 -->
<el-dialog :title="$t('page.business.study.studyRoom.ghlj')" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<!-- 试验区域 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.syqy')" prop="syqy">
<SelectTestArea v-model="form.syqy" :readonly="true"/>
</el-form-item>
</el-col>
<!-- 饲养间号 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.syjh')" prop="syjh">
<SelectRoom v-model="form.syjh" :testArea="form.syqy" :readonly="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 动物种属 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.dwzs')" prop="dwzs">
<SelectAnimalSpecies v-model="form.dwzs" :readonly="true"/>
</el-form-item>
</el-col>
<!-- 笼具 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.longju')" prop="lj">
<SelectCage v-model="form.lj" :animalSpecies="form.dwzs"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="form.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<el-input type="password" v-model="form.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">{{ $t('form.confirm') }}</el-button>
<el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { studyRoom_update } from "@/api/business/study/studyRoom"
import { mapGetters } from 'vuex'
import BusinessSelect from '@/views/business/comps/select/BusinessSelect';
import SelectTestArea from '@/views/business/comps/select/SelectTestArea';
import SelectRoom from '@/views/business/comps/select/SelectRoom';
import SelectAnimalSpecies from '@/views/business/comps/select/SelectAnimalSpecies';
import SelectCage from '@/views/business/comps/select/SelectCage';
export default {
name: "BjSyj",
components: { BusinessSelect, SelectTestArea, SelectRoom, SelectCage, SelectAnimalSpecies },
data() {
return {
open: false,
form: {},
rules: {
syqy: [{
required: true,
message: ' ',
trigger: 'blur'
}],
syjh: [{
required: true,
message: ' ',
trigger: 'blur'
}],
dwzs: [{
required: true,
message: ' ',
trigger: 'blur'
}],
lj: [{
required: true,
message: ' ',
trigger: 'blur'
}],
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
},
methods: {
cancel() {
this.open = false
},
reset() {
this.form = {
id: null,
syqy: null,
syjh: null,
dwzs: null,
lj: null,
qmrmm: '',
qmyy: '更换笼具',
bjbz: ''
}
this.resetForm("form")
},
show(row) {
this.reset()
this.form.id = row.id
this.form.syqy = row.syqy
this.form.syjh = row.syjh
this.form.dwzs = row.dwzs
this.form.lj = row.lj
this.form.qmyy = '更换笼具'
this.open = true
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
studyRoom_update(this.form).then(response => {
this.open = false
this.$emit('callback')
})
}
})
}
}
}
</script>

+ 113
- 0
src/views/business/study/comp/syj/Jl.vue View File

@ -0,0 +1,113 @@
G<template>
<div>
<!-- 试验间-笼具更换记录弹窗 -->
<el-dialog :title="$t('page.business.study.studyRoom.ljjl')" :visible.sync="open" width="800px" append-to-body
:close-on-click-modal="false">
<el-form :model="searchForm" ref="searchForm" class="search-area" :inline="true" label-width="88px">
<el-row>
<el-col :span="24">
<!-- 更换人 -->
<el-form-item :label="$t('page.business.study.studyRoom.ghr')" prop="ghr">
<el-input v-model="searchForm.ghr" :placeholder="$t('form.placeholderInput')" clearable
@keyup.enter.native="search" />
</el-form-item>
<!-- 更换时间 -->
<el-form-item :label="$t('page.business.study.studyRoom.ghsj') + ':'">
<el-date-picker v-model="daterange" class="chat-histogram-daterange" type="daterange" range-separator="-"
:start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')"
value-format="yyyy-MM-dd" @change="search" style="width: 250px;" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="loading" :data="list">
<el-table-column :label="$t('page.business.study.studyRoom.ghsj')" prop="createTime" />
<el-table-column :label="$t('page.business.study.studyRoom.ghqlj')" prop="ljOld" />
<el-table-column :label="$t('page.business.study.studyRoom.ghhlj')" prop="lj" />
<el-table-column :label="$t('page.business.study.studyRoom.ghr')" align="center" prop="qyrMc" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize"
@pagination="getList" />
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { studyRoom_historyList } from "@/api/business/study/studyRoom"
import { mapGetters } from 'vuex'
import BusinessSelect from '@/views/business/comps/select/BusinessSelect';
import SelectTestArea from '@/views/business/comps/select/SelectTestArea';
import SelectRoom from '@/views/business/comps/select/SelectRoom';
import SelectAnimalSpecies from '@/views/business/comps/select/SelectAnimalSpecies';
import SelectCage from '@/views/business/comps/select/SelectCage';
export default {
name: "JlSyj",
components: { BusinessSelect, SelectTestArea, SelectRoom, SelectCage, SelectAnimalSpecies },
data() {
return {
open: false,
daterange: [],
loading: false,
list: [],
searchForm: {
pageNum: 1,
pageSize: 10,
ghr: '',
startDate: '',
endDate: '',
studyRoomId: '',
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
},
methods: {
cancel() {
this.open = false
},
search() {
this.searchForm.pageNum = 1
this.getList()
},
reset() {
this.resetForm("searchForm")
this.search()
},
getList() {
if (this.daterange != null && this.daterange.length > 0) {
this.searchForm.startDate = this.daterange[0] + " 00:00:00"
this.searchForm.endDate = this.daterange[1] + " 23:59:59"
} else {
this.searchForm.startDate = ''
this.searchForm.endDate = ''
}
this.loading = true
studyRoom_historyList(this.searchForm).then(response => {
this.list = response.rows
this.total = response.total
this.loading = false
})
},
show(row) {
this.searchForm.studyRoomId = row.id
this.getList()
this.open = true
},
}
}
</script>

+ 173
- 0
src/views/business/study/comp/syj/Js.vue View File

@ -0,0 +1,173 @@
G<template>
<div>
<!-- 试验间-结束弹窗 -->
<el-dialog :title="$t('page.business.study.studyRoom.js')" :visible.sync="open" width="800px" append-to-body
:close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<!-- 试验区域 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.syqy')" prop="syqy">
<SelectTestArea v-model="form.syqy" :readonly="true" />
</el-form-item>
</el-col>
<!-- 饲养间号 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.syjh')" prop="syjh">
<SelectRoom v-model="form.syjh" :testArea="form.syqy" :readonly="true" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 动物种属 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.dwzs')" prop="dwzs">
<SelectAnimalSpecies v-model="form.dwzs" :readonly="true" />
</el-form-item>
</el-col>
<!-- 笼具 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.longju')" prop="lj">
<SelectCage v-model="form.lj" :animalSpecies="form.dwzs" :readonly="true" />
</el-form-item>
</el-col>
</el-row>
<!-- 结束使用原因 -->
<el-row>
<el-col :span="12">
<el-form-item :label="$t('page.business.study.studyRoom.jssyyl')" prop="jssyyl">
<el-input type="text" v-model="form.jssyyl" maxlength="500" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="form.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<el-input type="password" v-model="form.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">{{ $t('form.confirm') }}</el-button>
<el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { studyRoom_js } from "@/api/business/study/studyRoom"
import { mapGetters } from 'vuex'
import BusinessSelect from '@/views/business/comps/select/BusinessSelect';
import SelectTestArea from '@/views/business/comps/select/SelectTestArea';
import SelectRoom from '@/views/business/comps/select/SelectRoom';
import SelectAnimalSpecies from '@/views/business/comps/select/SelectAnimalSpecies';
import SelectCage from '@/views/business/comps/select/SelectCage';
export default {
name: "JsSyj",
components: { BusinessSelect, SelectTestArea, SelectRoom, SelectCage, SelectAnimalSpecies },
data() {
return {
open: false,
form: {},
rules: {
syqy: [{
required: true,
message: ' ',
trigger: 'blur'
}],
syjh: [{
required: true,
message: ' ',
trigger: 'blur'
}],
dwzs: [{
required: true,
message: ' ',
trigger: 'blur'
}],
lj: [{
required: true,
message: ' ',
trigger: 'blur'
}],
jssyyl: [{
required: true,
message: ' ',
trigger: 'blur'
}],
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
},
methods: {
cancel() {
this.open = false
},
reset() {
this.form = {
id: null,
syqy: null,
syjh: null,
dwzs: null,
lj: null,
jssyyl: '',
qmrmm: '',
qmyy: '饲养间使用结束',
bjbz: ''
}
this.resetForm("form")
},
show(row) {
this.reset()
this.form.id = row.id
this.form.syqy = row.syqy
this.form.syjh = row.syjh
this.form.dwzs = row.dwzs
this.form.lj = row.lj
this.form.qmyy = '饲养间使用结束'
this.open = true
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
studyRoom_js(this.form).then(response => {
this.open = false
this.$emit('callback')
})
}
})
}
}
}
</script>

+ 41
- 107
src/views/business/study/comp/syj/Xz.vue View File

@ -1,82 +1,41 @@
G<template> G<template>
<div> <div>
<!-- 新增试验间弹窗 --> <!-- 新增试验间弹窗 -->
<el-dialog :title="$t('page.business.study.studyRoom.xzsyj')" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
<el-dialog :title="$t('page.business.study.studyRoom.qysyj')" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<!-- 名称 -->
<!-- 试验区域 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.mc')" prop="mc">
<el-input type="text" v-model="form.mc" maxlength="50" :placeholder="$t('form.placeholderInput')" />
<el-form-item :label="$t('page.business.study.studyRoom.syqy')" prop="syqy">
<SelectTestArea v-model="form.syqy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- -->
<!-- 饲养间 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.bh')" prop="bh">
<el-input type="text" v-model="form.bh" maxlength="50" :placeholder="$t('form.placeholderInput')" />
<el-form-item :label="$t('page.business.study.studyRoom.syjh')" prop="syjh">
<SelectRoom v-model="form.syjh" :testArea="form.syqy"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<!-- 批号 -->
<!-- 动物种属 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.ph')" prop="ph">
<el-input type="text" v-model="form.ph" maxlength="50" :placeholder="$t('form.placeholderInput')" />
<el-form-item :label="$t('page.business.study.studyRoom.dwzs')" prop="dwzs">
<SelectAnimalSpecies v-model="form.dwzs" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 规格 -->
<el-col :span="8">
<el-form-item :label="$t('page.business.resource.gsp.gg')" prop="gg">
<el-input type="text" v-model="form.gg" maxlength="50" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<!-- 规格单位 -->
<el-col :span="4">
<BusinessSelect v-model="form.ggdw"
dictType="system_business_nddw,system_business_zldw,system_business_tjdw"></BusinessSelect>
</el-col>
</el-row>
<el-row>
<!-- 库存量 -->
<el-col :span="8">
<el-form-item :label="$t('page.business.resource.gsp.kcl')" prop="kc">
<el-input type="number" v-model="form.kc" maxlength="50" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<!-- 库存量单位 -->
<el-col :span="4">
<BusinessSelect v-model="form.kcdw"
dictType="system_business_nddw,system_business_zldw,system_business_tjdw"></BusinessSelect>
</el-col>
<!-- 笼具 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.yxq')" prop="yxq">
<el-date-picker v-model="form.yxq" type="datetime" format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('form.placeholderInput')">
</el-date-picker>
<el-form-item :label="$t('page.business.study.studyRoom.longju')" prop="lj">
<SelectCage v-model="form.lj" :animalSpecies="form.dwzs"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 开始使用原因 -->
<el-row> <el-row>
<!-- 存储条件 -->
<el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.cctj')" prop="cctj">
<BusinessSelect v-model="form.cctj" dictType="system_business_cctj"></BusinessSelect>
</el-form-item>
</el-col>
<!-- 接收日期 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('page.business.resource.gsp.jsrq')" prop="jsrq">
<el-date-picker v-model="form.jsrq" type="datetime" format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('form.placeholderInput')">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 注意事项 -->
<el-col :span="24">
<el-form-item :label="$t('page.business.resource.gsp.zysx')" prop="zysx">
<el-input type="textarea" :rows="2" v-model="form.zysx" maxlength="500"
<el-form-item :label="$t('page.business.study.studyRoom.kssyyl')" prop="kssyyl">
<el-input type="text" v-model="form.kssyyl" maxlength="50"
:placeholder="$t('form.placeholderInput')" /> :placeholder="$t('form.placeholderInput')" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -88,6 +47,8 @@ G