cultivationApp/pages/feedIng/feedDetail.vue

445 lines
9.6 KiB
Vue

<template>
<view class="content" @click.capture="selectAct=false">
<!-- <view class="card">
<view class="tit">
<view class="">
农户名称: 1号土地
</view>
</view>
<view class="card-li">
<view class="">
种养殖类型: 土豆
</view>
<view class="">
养殖头数: 的划分等级
</view>
</view>
<view class="card-li">
<view class="">
土地面积: 20
</view>
<view class="">
公猪: 的划分等级
</view>
</view>
<view class="card-li">
<view class="">
养殖种类: 20
</view>
<view class="">
母猪: 的划分等级
</view>
</view>
<view class="card-li">
<view class="">
具体种类: 20
</view>
<view class="">
幼崽: 的划分等级
</view>
</view>
</view> -->
<farmersCard></farmersCard>
<!-- <view class="serch">
<u-search bgColor='white' height='63.08rpx' :show-action="false" actionText="搜索"
:animation="true"></u-search>
<view class="serch-btn">
搜索
</view>
</view> -->
<view class="title">
<view class="">
编号: {{baseData.animal_code}}
</view>
<view class="more-jt" @click="navgo(`/pages/feedIng/SingleDetail?id=${animal_id}`)">
查看养殖详情 <u--image src="/static/img/CKGD.png" style="margin-left: 5rpx;" width="31.54rpx"
height="31.54rpx"></u--image>
</view>
</view>
<view class="card">
<view class="card-li">
<view class="" @click.capture="selectFoucsFn">
养殖品种: {{baseData.animal_kind}}
</view>
<view class="" style="display: flex;align-items: center;">
具体种类: {{baseData.animal_breed}}
</view>
</view>
<view class="card-li">
<view class="" @click.capture="selectFoucsFn">
养殖类型: {{baseData.animal_gender==1?'公':"母"}}
</view>
<view class="" style="display: flex;align-items: center;">
体重: <up-input style="height: 49.07rpx;width: 215.54rpx;margin-left: 20rpx;" placeholder="请输入内容"
border="surround" v-model="formData.animal_weight"></up-input>
</view>
</view>
<view class="card-li" style="align-items: center;">
<view class="">
年龄: {{baseData.animal_age}}年
</view>
<view class="select">
状态: <up-input readonly style="height: 49.07rpx;width: 215.54rpx;margin-left: 20rpx;"
placeholder="请选择" border="surround" @click.capture="selectFoucsFn" v-model="value">
</up-input>
<view class="JT" :class="{actJT:selectAct}">
<u--image src="/static/img/XLJT.png" width="24.53rpx" height="24.53rpx"></u--image>
</view>
<view class="selectvalue" v-show="selectAct">
<view class="select-li" v-for="(item,index) in selectList" :key="index"
@click="changSelectfn(index)" :style="{color:indexs==index?'black':'#B3B3B3'}">
{{item}}
<view class="" v-show='indexs==index'>
<u--image src="/static/img/XLZZ.png" width="24.53rpx" height="24.53rpx"></u--image>
</view>
</view>
</view>
</view>
</view>
<view class="up-plant-btn" @tap="updataStatusFn">
确认更新
</view>
<imgCard :imgUrl='baseData?.pic_detail?.pic' @click="uplodeImgFn"></imgCard>
</view>
<view class="circumstance" v-for="(item,index) in actionList" :key="index">
<view class="card-tit">
<view class="">
{{index}}
</view>
<view class="updata-btn" @click="navgo('/pages/growRecord/index')">
更新{{index.slice(0,-2)}}
</view>
</view>
<myTable :tit='`查看${index.slice(0,-2)}`' :dataList="item.action_record"
:route='`/pages/feedIng/allRecording?id=${animal_id}`'>
</myTable>
</view>
<view class="ripe-btn" @tap="outBar">
标记状态为出栏
</view>
</view>
<!-- 组件 -->
<u-modal :show="showModel" :showCancelButton="true" @confirm="confirmFn" @cancel="cancelFn" title="提示"
content='确认出栏吗?'></u-modal>
</template>
<script setup>
import farmersCard from "@/components/animal/farmersCard.vue"
import imgCard from "@/components/imgCard.vue"
import myTable from "@/components/myTable/index.vue"
import uplodeImg from "@/utils/uplodeImg.js"
import {
onLoad
} from "@dcloudio/uni-app"
import {
ref,
reactive
} from "vue"
import {
animalInfoAPI,
animalStatusAPI,
animalChangeListAPI,
animalSellAPI,
addAnimalPicAPI
} from "@/api/animal.js"
// import
import {
actionsAPI
} from "@/api/animal.js"
const showModel = ref(false)
const selectList = reactive([
"健康", "怀孕中", "生病隔离中", "可出栏"
])
const actionList = reactive({})
const value = ref("")
const selectAct = ref(false)
const selectFoucsFn = (e) => {
selectAct.value = true
}
const indexs = ref(0)
const changSelectfn = (index) => {
indexs.value = index
value.value = selectList[index]
formData.status = index + 1
}
const animal_id = ref(0)
const baseData = reactive({})
onLoad((options) => {
animal_id.value = options.id
formData.animal_id = options.id
animalInfoAPI({
animal_id: options.id
}).then(res => {
for (let key in res.data) {
baseData[key] = res.data[key]
}
formData.animal_weight = baseData.animal_weight
value.value = selectList[baseData.animal_status - 1]
indexs.value = baseData.animal_status - 1
})
animalChangeListAPI({
animal_id: animal_id.value
}).then(res => {
console.log(res.data)
return
for (let key in res.data) {
actionList[key] = (res.data)[key]
}
})
})
const navgo = (url) => {
uni.navigateTo({
url
})
}
const formData = reactive({
status: '',
animal_id: '',
animal_weight: ""
})
const updataStatusFn = () => {
animalStatusAPI({
...formData
}).then(res => {
uni.showToast({
title: res.msg,
icon: 'none'
})
})
}
const uplodeImgFn = () => {
uplodeImg().then(res => {
// console.log(res.data.image)
baseData.pic_detail.pic = res.data.image
addAnimalPicAPI({
animal_id: animal_id.value,
pic: res.data.image
})
})
}
const cancelFn = () => {
showModel.value = false
}
const confirmFn = () => {
animalSellAPI({
animal_id: animal_id.value,
}).then(res => {
uni.showToast({
title: res.msg,
icon: 'none'
})
setTimeout(() => {
uni.navigateTo({
url: '/pages/index/index'
})
}, 2000)
})
}
const outBar = () => {
showModel.value = true
}
// animalChangeListAPI({
// animal_id: animal_id
// }).then(res => {
// for (let key in res.data) {
// actionList[key] = (res.data)[key]
// }
// })
</script>
<style lang="scss" scoped>
.card {
margin-bottom: 20rpx;
.tit {
display: flex;
justify-content: space-between;
padding-bottom: 20rpx;
border-bottom: 1px solid #EBF1EF;
}
.card-li {
margin-top: 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.title {
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
margin-top: 42rpx;
.updata-btn {
width: 192.76rpx;
height: 57.83rpx;
border: 1px solid #00A15E;
color: #00A15E;
display: flex;
justify-content: center;
align-items: center;
border-radius: 31.54rpx 31.54rpx 31.54rpx 31.54rpx;
font-size: 26.29rpx;
}
}
.serch {
position: relative;
margin-bottom: 20rpx;
.serch-btn {
color: white;
width: 115.65rpx;
height: 63.08rpx;
background-color: #1BAB6F;
text-align: center;
line-height: 63.08rpx;
border-radius: 50rpx;
position: absolute;
top: 0;
right: 0;
}
}
.head-img {
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
margin: 0 auto;
position: relative;
.poisition {
opacity: 0.7;
position: absolute;
width: 380.26rpx;
height: 71rpx;
background-color: #FFFFFF;
left: 20rpx;
bottom: 36rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
display: flex;
align-items: center;
font-size: 29.79rpx;
.dw-cls {
margin: 0 5rpx;
}
}
}
.up-plant-btn {
width: 371.5rpx;
height: 66.59rpx;
color: #00A15E;
margin: 40rpx auto;
border: 1px solid #00A15E;
font-weight: bold;
border-radius: 42.06rpx 42.06rpx 42.06rpx 42.06rpx;
display: flex;
align-items: center;
justify-content: center;
}
.ripe-btn {
width: 588.79rpx;
height: 84.11rpx;
background-color: #00A15E;
color: white;
display: flex;
justify-content: center;
align-items: center;
margin: 85rpx auto;
border-radius: 42.06rpx 42.06rpx 42.06rpx 42.06rpx;
background: linear-gradient(to right, #00A15E, #4CC593);
}
.select {
display: flex;
align-items: center;
position: relative;
.JT {
position: absolute;
right: 20rpx;
z-index: 9999;
transition: .2s;
}
.actJT {
transition: .2s;
transform: rotate(180deg);
}
.selectvalue {
position: absolute;
width: 208.53rpx;
background-color: white;
z-index: 99;
font-size: 26.29rpx;
left: 90rpx;
bottom: -250rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
padding: 0 20rpx;
border: 1px solid #F4F4F4;
.select-li {
margin: 20rpx 0;
display: flex;
justify-content: space-between;
align-items: center;
}
}
}
.circumstance {
width: 693.93rpx;
margin: 0 auto;
margin-bottom: 43rpx;
.card-tit {
display: flex;
justify-content: space-between;
margin-bottom: 28rpx;
}
.updata-btn {
font-size: 26.29rpx;
// width: 192.76rpx;
padding: 0 20rpx;
height: 57.83rpx;
border: 1px solid #00A15E;
color: #00A15E;
display: flex;
justify-content: center;
align-items: center;
border-radius: 31.54rpx 31.54rpx 31.54rpx 31.54rpx;
}
.check {
font-size: 29.79rpx;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
.tab {
height: 500rpx;
background-color: red;
}
}
</style>