计算机毕业设计基于springboot农作物生长区域分析系统

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

💖🔥作者主页计算机毕设木哥🔥 💖

一、项目的设计与实现

随着农业技术的日益发展,农作物的种植和管理变得愈发复杂,为了提升农作物产量和品质,迫切需要一款高效的农作物分析系统。该系统将通过土壤湿度、温度、降水量、光照强度等,并结合农民手动输入的种植信息,实现全面的数据收集。这些数据将被存储于强大的数据库中,以便后续分析与管理。
系统将借助数据挖掘、统计分析和对采集到的数据进行深入处理与分析,从中萃取有价值的信息。通过图表、图像等可视化手段,系统将分析结果生动呈现,使农民与农业专家能够直观地理解数据背后的含义。而更为重要的是,系统将根据分析结果,为农民提供科学的种植、施肥、防治建议,为决策提供有力支持。
实现这一系统需要先进行前端开发,建立交互式的用户界面,再在后端构建核心逻辑,包括数据的采集、存储、分析和建议生成。数据库设计也至关重要,确保数据的高效存储和检索。系统开发完成后,经过充分的测试,使能够方便管理,推动农业的现代化发展。

二、项目展示

管理员模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
园长模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码展示

<template>
    <div class="page-container">
        <div class="echarts-container" ref="main"></div>
    </div>
</template>

<script>
export default {
    data() {
        return {
            myEcharts: null
        }
    },
    computed:{
        themeStatus(){
            return this.$store.state.theme
        }
    },
    watch:{
        themeStatus(){
            this.myEcharts.dispose()
            this.initEcharts()
            this.getData()
            this.screen()
        }
    },
    mounted() {
        this.initEcharts()
        this.getData()
        window.addEventListener('resize',this.screen)
        this.screen()
    },
    destroyed(){
        window.removeEventListener('reset',this.screen)
    },
    methods: {
        // 适配屏幕
        screen(){
            this.myEcharts.resize()
            // 计算一个文字大小的比例
            let width = this.$refs.main.offsetWidth
            let num = width / 100 * 6
            let options = {
                title:{
                    textStyle:{  // 设置主标题样式
                        fontSize:num
                    }
                }
            }
            // 修改图标样式以后要重绘
            this.myEcharts.setOption(options)
        },
        // 初始化图标
        initEcharts() {
            let main = this.$refs.main
            // 初始化echarts
            this.myEcharts = this.$echarts.init(main,this.themeStatus)
            /** @type EChartsOption */
            let options = {  // 设置图标的属性和样式
                title: {  // 主标题
                    text: '各地区种植面积统计TOP10',
                    left: 10,
                    top: 5
                },
                grid: {
                    left: '10%',
                    right: '10%',
                    top: '10%',
                    bottom: '10%',
                },
                tooltip: {
                    show: true,
                },
                xAxis: {
                    show: true,
                    type: 'value',
                    axisLine: {
                        show: true,
                    },
                },
                toolbox: {  // 工具箱
                    show: true,
                    feature: {
                        saveAsImage: {  // 保存图片
                            type: 'png',
                        },
                        dataView: {
                            show: true,
                        },
                    },
                },
                axisPointer: {
                    show: true
                },
                yAxis: {
                    show: true,
                    type: 'category',
                    // data: nameData
                },
                series: [
                    {
                        type: 'bar',
                        // data: areaData,
                        label: {  // 定义显示数据
                            show: true,
                            position: 'right',
                        },
                        itemStyle: {  // 设置图标颜色
                            opacity: 0.8,  // 设置柱状的透明度
                            borderRadius: [0,15,15,0],
                            color: {
                                type: 'linear',
                                x: 0,
                                y: 0,
                                x1: 1,
                                y1: 0,
                                colorStops: [
                                    {
                                        offset: 0,
                                        color: '#0F3357'
                                    },
                                    {
                                        offset: 1,
                                        color: '#36BFE5'
                                    }
                                ]
                            }
                        },
                    }
                ],
            }
            // 绘制图标
            this.myEcharts.setOption(options)
        },
        // 获取数据
        async getData() {
            let dataList = await this.$http('/api/plantingAreaTop')
            dataList.data.sort((a, b) => {
                return a.area - b.area
            })
            let nameData = dataList.data.map(item => {
                return item.name
            })
            let areaData = dataList.data.map(item => {
                return item.area
            })
            this.setEcharts(nameData,areaData)
        },
        // 绘制图标
        setEcharts(nameData,areaData) {
            let options = {
                yAxis:{
                    data:nameData
                },
                series:[
                    {
                        data:areaData
                    }
                ]
            }
            this.myEcharts.setOption(options)
        }
    }
}
</script>

<style scoped>

</style>
<template>
    <div class="page-container">
        <div class="echarts-container" ref="main"></div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            myEcharts: null
        }
    },
    computed:{
        themeStatus(){
            return this.$store.state.theme
        }
    },
    watch:{
        themeStatus(){
            this.myEcharts.dispose()
            this.initEcharts()
            this.getData()
            this.screen()
        }
    },
    mounted() {
        this.initEcharts()
        this.getData()
    },
    methods: {
        //屏幕自适应
        screen(){
            this.myEcharts.resize()
            let width = this.$refs.main.offsetWidth
            let num = width / 100 * 3
            let innerRadius = num * 2
            let seriesRadius = {
                
                    radius:innerRadius,
                    label:{
                        fontSize:num
                    }
                
            }
            let options = {
                title:{
                    textStyle:{
                        fontSize:num
                    }
                },
                series:seriesRadius
            }
            this.myEcharts.setOption(options)
        },
        initEcharts() {
            let main = this.$refs.main
            this.myEcharts = this.$echarts.init(main,this.themeStatus)
            /** @type EchartsOption */
            let options = {
                title: {
                    text: '种植农作物面积统计',
                    // subtext: '农作物',//副标题
                    left: 'center'
                },
                tooltip: {
                    trigger: 'item'
                },
                legend: {
                    orient: 'horizontal',
                    top: '10%'
                },
                series: [{
                    type: 'pie',
                    radius: '50%',
             

                    emPhasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            ShadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }]
            }
            this.myEcharts.setOption(options)
        },
        async getData() {
            // let centerList = ['50%', '50%']
            let dataList = await this.$http('/api/TotalAreaCropsProportion')
            console.log(dataList);


            let seriesData = dataList.data.map((item) => {
                return {
                    value:item.value,
                    name:item.name
                }

            })
            this.setEcharts(seriesData)
            // this.myEcharts.setOption(options)
        },
        setEcharts(seriesData) {
            let options = {
                series:[{
                    data:seriesData
                }] 
            }
            this.myEcharts.setOption(options)

        }


    },
    
    watch: {},
    computed: {},
    filters: {},
    components: {}
}
</script>
<style scoped></style>

四、总结

在现代农业领域,农作物分析系统的设计与实现是为了满足日益增长的农业需求而必要的一步。通过整合先进的数据采集技术、数据分析方法以及信息展示手段,该系统有助于农民和农业专家更加科学地管理农作物,提高产量和质量。从数据的采集、存储到分析与建议生成,这个系统涉及多个关键环节,需要前后端开发、数据库设计、数据处理算法以及安全性保障等多方面的知识和技术。
通过农作物分析系统,农民能够及时了解农田的状况,获得精准的种植指导,从而更有效地进行农作物管理。农业专家则可以基于系统提供的数据和分析结果,进行更深入的研究和决策。这不仅有助于提升农业的可持续发展,还为解决全球食品安全和农村发展问题提供了有力的支持。
然而,系统的设计与实现并非一蹴而就,需要团队合作,融合多个领域的专业知识。同时,随着技术的不断进步,农作物分析系统也需要不断演进和升级,以适应新的挑战和需求。综合而言,农作物分析系统的成功实施将为农业注入新的活力,推动农业生产方式的优化与提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值