智慧农业大数据平台
shuishen
2022-07-16 de951f2ffc00664a4af840944b9c239a6c5f09f7
Merge branch 'master' of http://192.168.0.105:10010/r/zhny-dsjdp
3 files modified
531 ■■■■ changed files
src/api/farm/farmingrecord.js 24 ●●●● patch | view | raw | blame | history
src/api/land/land.js 4 ●●●● patch | view | raw | blame | history
src/views/manage/index.vue 503 ●●●● patch | view | raw | blame | history
src/api/farm/farmingrecord.js
@@ -126,12 +126,12 @@
    })
}
export const getStockCount = (deptId) => {
export const getStockCount = (farmId) => {
    return request({
        url: '/farmingRecord/getStockCount',
        method: 'get',
        params: {
            deptId
            farmId
        }
    })
}
@@ -168,6 +168,15 @@
export const productsSupervise = (params) => {
    return request({
        url: '/farmProductStock/productsSupervise',
        method: 'get',
        params: {
            ...params
        }
    })
}
export const productsSuperviseList = (params) => {
    return request({
        url: '/recovery/page',
        method: 'get',
        params: {
            ...params
@@ -252,7 +261,7 @@
export const farmingRecords = (params) => {
    return request({
        url: '/farmingRecord/page',
        url: '/farmingRecord/getFarmingRecordList',
        method: 'get',
        params: {
            ...params
@@ -278,3 +287,12 @@
        }
    })
}
export const farmSelectQuery = (params) => {
    return request({
        url: '/farm/page',
        method: 'get',
        params: {
            ...params
        }
    })
}
src/api/land/land.js
@@ -58,12 +58,12 @@
    })
}
export const selectXCount = (deptId) => {
export const selectXCount = (farmId) => {
    return request({
        url: '/land/land/selectXCount',
        method: 'get',
        params: {
            deptId
            farmId
        }
    })
}
src/views/manage/index.vue
@@ -8,8 +8,14 @@
<template>
    <div class="container">
        <div class="toggle-plot">
            选择农场
            <i class="el-icon-arrow-down"></i>
            <el-select v-model="farmValue" @change="farmSelectChange" placeholder="请选择农场">
                <el-option
                        v-for="item in farmSelect"
                        :key="item.id"
                        :label="item.farmName"
                        :value="item.id">
                </el-option>
            </el-select>
        </div>
        <div class="main-content">
            <div class="t">
@@ -209,7 +215,7 @@
                            </div>
                        </div>
                        <div class="more" @click="popDetailedFarming">
                        <div class="more" @click="popDetailedFarming({type: '', landId: ''})">
                            更多
                            <img src="/img/icon/more.png" alt />
                        </div>
@@ -252,7 +258,7 @@
        <public-box
            v-show="trpPopupFlag"
            :closeFlag="'trpPopupFlag'"
            :className="'public-trace-table'"
            :className="'public-farm-oper-table'"
        >
            <template slot="public-box-header">
                <div class="logo"></div>
@@ -292,28 +298,21 @@
                </div>
                <div class="table-list">
                    <div class="t-header">
                        <div class="sym-style">农资</div>
                        <div>农资</div>
                        <div>分类</div>
                        <div>规格</div>
                        <div>库存</div>
                        <div>数量</div>
                        <div>操作</div>
                        <div>厂家</div>
                    </div>
                    <div class="t-body">
                        <div class="table-list"  v-for="(item,index) in nztr" :key="index">
                            <div class="sym-style">
                                <div>{{item.agrname}}</div>
                            </div>
                            <div>{{item.agrname}}</div>
                            <div>{{item.stype}}</div>
                            <div>{{item.spn}}</div>
                            <div>{{item.cnum}}</div>
                            <div>
                                <el-button
                                    @click="openPopup('/img/icon/sym.png')"
                                    size="small"
                                    class="look"
                                    type="info"
                                >查看</el-button>
                            </div>
                            <div>{{item.amount}}{{item.dic2}}</div>
                            <div>{{item.cnum}}{{item.dic1}}</div>
                            <div>{{item.factoryName}}</div>
                        </div>
                    </div>
                </div>
@@ -321,70 +320,221 @@
        </public-box>
        <public-box
            v-show="nsjlPopupFlag"
            :closeFlag="'nsjlPopupFlag'"
            :className="'public-trace-table'"
                v-show="nzcrPopupFlag"
                :closeFlag="'nzcrPopupFlag'"
                :className="'public-farm-oper-table'"
        >
            <template slot="public-box-header">
                <div class="logo"></div>
                <div class="title">农事记录</div>
                <div class="title">农资出入库记录</div>
                <img
                    @click="nsjlPopupFlag = false"
                    src="/img/icon/public-close.png"
                    alt
                    class="close"
                        @click="nzcrPopupFlag = false"
                        src="/img/icon/public-close.png"
                        alt
                        class="close"
                />
            </template>
            <template slot="public-box-content">
                <div class="action-bar">
                    <div class="search">
                        <el-input
                            class="search-input"
                            size="small"
                            prefix-icon="el-icon-search"
                            placeholder="请输入内容"
                            v-model="input1"
                                class="search-input"
                                size="small"
                                prefix-icon="el-icon-search"
                                placeholder="请输入内容"
                                v-model="input1"
                        ></el-input>
                    </div>
                    <div class="btn-grounp">
                        <el-button
                            size="small"
                            class="search"
                            type="primary"
                            icon="el-icon-search"
                                size="small"
                                class="search"
                                type="primary"
                                icon="el-icon-search"
                        >查询</el-button>
                        <el-button
                            size="small"
                            class="reset"
                            type="info"
                            icon="el-icon-refresh-right"
                                size="small"
                                class="reset"
                                type="info"
                                icon="el-icon-refresh-right"
                        >重置</el-button>
                    </div>
                </div>
                <div class="table-list">
                    <div class="t-header">
                        <div class="sym-style">农事类型</div>
                        <div>所属地块</div>
                        <div>农资</div>
                        <div>作业方式</div>
                        <div>操作</div>
                        <div style="width: 225px">农资</div>
                        <div>分类</div>
                        <div>规格</div>
                        <div>类型</div>
                        <div>数量</div>
                        <div>操作时间</div>
                        <div>操作人</div>
                    </div>
                    <div class="t-body">
                        <div class="table-list">
                            <div class="sym-style">
                                <div>施肥</div>
                            </div>
                            <div>1号地块</div>
                            <div>1524217070160453633</div>
                            <div>人工</div>
                            <div>
                                <el-button
                                    @click="openPopup('/img/icon/sym.png')"
                                    size="small"
                                    class="look"
                                    type="info"
                                >查看</el-button>
                            </div>
                        <div class="table-list"  v-for="(item,index) in stockrecordAll" :key="index">
                            <div style="width: 225px">{{item.agrname}}</div>
                            <div>{{item.stype}}</div>
                            <div>{{item.spn}}</div>
                            <div>{{item.type1}}</div>
                            <div>{{item.count}}</div>
                            <div>{{item.createTime}}</div>
                            <div>{{item.czr}}</div>
                        </div>
                    </div>
                </div>
            </template>
        </public-box>
        <public-box
                v-show="ncpPopupFlag"
                :closeFlag="'ncpPopupFlag'"
                :className="'public-farm-oper-table'"
        >
            <template slot="public-box-header">
                <div class="logo"></div>
                <div class="title">农产品监管</div>
                <img
                        @click="ncpPopupFlag = false"
                        src="/img/icon/public-close.png"
                        alt
                        class="close"
                />
            </template>
            <template slot="public-box-content">
                <div class="action-bar">
                    <div class="search">
                        <el-input
                                class="search-input"
                                size="small"
                                prefix-icon="el-icon-search"
                                placeholder="请输入内容"
                                v-model="input1"
                        ></el-input>
                    </div>
                    <div class="btn-grounp">
                        <el-button
                                size="small"
                                class="search"
                                type="primary"
                                icon="el-icon-search"
                        >查询</el-button>
                        <el-button
                                size="small"
                                class="reset"
                                type="info"
                                icon="el-icon-refresh-right"
                        >重置</el-button>
                    </div>
                </div>
                <div class="table-list">
                    <div class="t-header">
                        <div>农资</div>
                        <div>作业方式</div>
                        <div>采收地块</div>
                        <div>类型</div>
                        <div>采收数量</div>
                        <div>操作时间</div>
                        <div>操作人</div>
                    </div>
                    <div class="t-body">
                        <div class="table-list"  v-for="(item,index) in ncpAll" :key="index">
                            <div>{{item.strainName}}</div>
                            <div>{{item.jobWay}}</div>
                            <div>{{item.landName}}</div>
                            <div>{{Number(item.leaves) + 1}}等品</div>
                            <div>{{item.weight}}公斤</div>
                            <div>{{item.createTime}}</div>
                            <div>{{item.operator}}</div>
                        </div>
                    </div>
                </div>
            </template>
        </public-box>
        <public-box
                v-show="nsjlPopupFlag"
                :closeFlag="'nsjlPopupFlag'"
                :className="'public-farm-oper-table'"
        >
            <template slot="public-box-header">
                <div class="logo"></div>
                <div class="title">农事操作</div>
                <img
                        @click="nsjlPopupFlag = false"
                        src="/img/icon/public-close.png"
                        alt
                        class="close"
                />
            </template>
            <template slot="public-box-content">
                <div class="action-bar">
                    <div class="search">
                        <el-select
                                class="select-type"
                                size="small"
                                v-model="farmOperType"
                                placeholder="选择农事类型"
                        >
                            <el-option
                                    v-for="(item, index) in farmingList"
                                    :key="index"
                                    :label="item.name"
                                    :value="item.type"
                            ></el-option>
                        </el-select>
                        <el-select
                                class="select-plot"
                                size="small"
                                v-model="farmPlotId"
                                placeholder="选择地块"
                        >
                            <el-option
                                    v-for="(item, index) in plotNumArray"
                                    :key="index"
                                    :label="item.landName"
                                    :value="item.id"
                            ></el-option>
                        </el-select>
                    </div>
                    <div class="btn-grounp">
                        <el-button
                                size="small"
                                class="search"
                                type="primary"
                                icon="el-icon-search"
                                @click="farmSelectList"
                        >查询</el-button>
                        <el-button
                                size="small"
                                class="reset"
                                type="info"
                                icon="el-icon-refresh-right"
                                @click="farmResetList"
                        >重置</el-button>
                    </div>
                </div>
                <div class="table-list">
                    <div class="t-header">
                        <div>农事类型</div>
                        <div>地块</div>
                        <div>备注</div>
                        <div>农资</div>
                        <div>作业方式</div>
                        <div>农事操作时间</div>
                        <div>创建时间</div>
                        <div>操作人</div>
                    </div>
                    <div class="t-body">
                        <div class="table-list" v-for="(item, index) in farmOperList" :key="index">
                            <div>{{item.typeName}}</div>
                            <div>{{item.landName}}</div>
                            <div>{{item.remarks == '' ? '--' : item.remarks}}</div>
                            <div>{{item.agriculturalName}}</div>
                            <div>{{item.jobWay == 0 ? '人工' : '机械'}}</div>
                            <div>{{item.time}}</div>
                            <div>{{item.createTime.substr(0,10)}}</div>
                            <div>{{item.realName}}</div>
                        </div>
                    </div>
                </div>
@@ -397,9 +547,7 @@
import { selectXCount } from '@/api/land/land'
// eslint-disable-next-line no-unused-vars
import {
    page,
    getStockCount,
    pagePalnt,
    statisticsStockAndYield,
    pageCount,
    pageCountNz,
@@ -410,7 +558,12 @@
    productsSupervise,
    pageCountNzCrk,
    getSweepRecordStatistics,
    getSweepRecordStatisticsByDayOrMonthOrYear
    getSweepRecordStatisticsByDayOrMonthOrYear,
    getFarmingRecordList,
    getFarmingStatis,
    getLandList,
    productsSuperviseList,
    farmSelectQuery
} from '@/api/farm/farmingrecord'
export default {
@@ -422,7 +575,6 @@
            jnStock: 0,
            qnStock: 0,
            byStock: 0,
            farmPlanList: [],
            // 库存数量统计
            stockTj: 0,
            // 农产品数量统计
@@ -462,48 +614,136 @@
            cltjOrsym: 'cltj',
            // 投入品监管窗体控制
            trpPopupFlag: false,
            // 农事记录
            nsjlPopupFlag: false
            // 农事记录窗体控制
            nsjlPopupFlag: false,
            // 农资出入记录窗体控制
            nzcrPopupFlag: false,
            // 农产品监管窗体控制
            ncpPopupFlag: false,
            // 农事操作记录列表
            farmOperList: [],
            // 选择的农事类型
            farmOperType: '',
            // 农场地块id
            farmPlotId: '',
            // 地块下拉
            plotNumArray: [],
            // 农事类型下拉
            farmingList: [],
            // 农资出入库记录弹窗
            stockrecordAll: [],
            // 农产品监管记录弹窗
            ncpAll: [],
            // 农场下拉
            farmSelect: [],
            // 所选值
            farmValue: 1,
            input1: ''
        }
    },
    created () {
        this.selectXCount()
        this.getStockCount()
        this.page()
        // 年产量与库存数量
        this.statisticsStockAndYield()
        // 按月统计产量
        this.statisticsStockMonth('2022-07')
        // 农产品投入
        this.pageCount('2022-07')
        // 农资投入
        this.pageCountNz('2022-07')
        // 统计市场流通/去年流通量/本月流通量
        this.selectMarketCirculate()
        // 统计任务总数
        this.countTaskNum('2022-07')
        // 溯源趋势统计
        this.getSweepRecordStatisticsByDayOrMonthOrYear('2022-07')
        // 农事操作
        this.farmingRecords()
        // 农产品监管
        this.productsSupervise()
        // 农资出入库记录
        this.pageCountNzCrk()
        // 溯源次数统计
        this.getSweepRecordStatistics()
        // 农场下拉列表
        this.farmSelectQuery()
        // 默认查询第一个农场数据
        this.AllDataUpdate()
    },
    mounted () {
    },
    methods: {
        // 农场下拉选中事件
        farmSelectChange (e) {
            this.AllDataUpdate()
        },
        // 全局数据刷新事件
        AllDataUpdate () {
            this.selectXCount()
            this.getStockCount()
            // 年产量与库存数量
            this.statisticsStockAndYield('2022')
            // 按月统计产量
            this.statisticsStockMonth('2022-07')
            // 农产品投入
            this.pageCount('2022-07')
            // 农资投入
            this.pageCountNz('2022-07')
            // 统计市场流通/去年流通量/本月流通量
            this.selectMarketCirculate('2022')
            // 统计任务总数
            this.countTaskNum('2022-07')
            // 溯源趋势统计
            this.getSweepRecordStatisticsByDayOrMonthOrYear('2022-07')
            // 农事操作
            this.farmingRecords()
            // 农产品监管
            this.productsSupervise('2022')
            // 农资出入库记录
            this.pageCountNzCrk()
            // 溯源次数统计
            this.getSweepRecordStatistics()
        },
        // 农场下拉列表
        farmSelectQuery () {
            var params = {}
            params.current = '1'
            params.size = '999'
            farmSelectQuery(Object.assign(params)).then((res) => {
                this.farmSelect = res.data.data.records
            })
        },
        // 投入品监管明细弹窗
        popDetailedSupervise () {
            this.trpPopupFlag = true
            if (this.trpOrNcp == 'trp') {
                this.trpPopupFlag = true
            } else {
                var params = {}
                params.codes = '000000'
                params.deptId = '1123598813738675201'
                params.current = '1'
                params.size = '999'
                productsSuperviseList(Object.assign(params)).then((res) => {
                    this.ncpPopupFlag = true
                    this.ncpAll = res.data.data.records
                })
            }
        },
        // 农事记录明细弹窗
        popDetailedFarming () {
            this.nsjlPopupFlag = true
        popDetailedFarming (item) {
            if (this.nsjlOrnz == 'nsjl') {
                this.getFarmingStatis()
                this.getLandList()
                getFarmingRecordList({ type: item.type, landId: item.landId }).then(res => {
                    this.farmOperList = res.data.data
                    this.nsjlPopupFlag = true
                })
            } else {
                    var params = {}
                    params.codes = '000000'
                    params.farmId = this.farmValue
                    params.current = '1'
                    params.size = '999'
                    pageCountNzCrk(Object.assign(params)).then((res) => {
                        this.nzcrPopupFlag = true
                        this.stockrecordAll = res.data.data.records
                    })
            }
        },
        // 农事操作搜索
        farmSelectList () {
            this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId })
        },
        // 农事操作重置
        farmResetList () {
            this.farmOperType = ''
            this.farmPlotId = ''
            this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId })
        },
        farmOperClick (item) {
            getFarmingRecordList({ type: item.type, landId: item.landId }).then(res => {
                this.farmOperList = res.data.data
                this.farmOperPopup = true
            })
        },
        // 任务总数时间查询
        getTaskTime (e) {
@@ -980,8 +1220,8 @@
        selectXCount () {
            // eslint-disable-next-line no-unused-vars
            var that = this
            var deptId = '1123598813738675201'
            selectXCount(deptId).then((res) => {
            var farmId = that.farmValue
            selectXCount(farmId).then((res) => {
                that.landsnum = res.data.data.snum.toFixed(0)
                that.landwnum = res.data.data.wnum.toFixed(0)
                that.znum = res.data.data.num.toFixed(0)
@@ -990,28 +1230,19 @@
        // 农资使用概况
        getStockCount () {
            var that = this
            var deptId = '1123598813738675201'
            getStockCount(deptId).then((res) => {
            var farmId = that.farmValue
            getStockCount(farmId).then((res) => {
                that.jnStock = res.data.data.jn.toFixed(0)
                that.qnStock = res.data.data.qn.toFixed(0)
                that.byStock = res.data.data.by.toFixed(0)
            })
        },
        // 农事记录
        page () {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            page(1, 10, Object.assign(params)).then((res) => {
                this.farmPlanList = res.data.data.records
            })
        },
        // 大屏经营概况库存数量与年产量
        statisticsStockAndYield () {
        statisticsStockAndYield (year) {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            params.year = '2022'
            params.farmId = this.farmValue
            params.year = year
            statisticsStockAndYield(Object.assign(params)).then((res) => {
                this.stockNCP = res.data.data.sum
                this.stockJG = res.data.data.jgsum
@@ -1026,7 +1257,7 @@
        statisticsStockMonth (e) {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.year = e
            statisticsStockMonth(Object.assign(params)).then((res) => {
                this.yieldMonth = res.data.data
@@ -1034,11 +1265,11 @@
            })
        },
        // 农产品监管
        productsSupervise () {
        productsSupervise (year) {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            params.year = '2022'
            params.farmId = this.farmValue
            params.year = year
            productsSupervise(Object.assign(params)).then((res) => {
                this.NcpJg = res.data.data
            })
@@ -1047,7 +1278,7 @@
        pageCount (e) {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.year = e
            params.status = '1'
            pageCount(Object.assign(params)).then((res) => {
@@ -1058,7 +1289,7 @@
        pageCountNz (e) {
            var params = {}
            params.codes = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.year = e
            pageCountNz(Object.assign(params)).then((res) => {
                this.nztr = res.data.data.records
@@ -1067,11 +1298,11 @@
            })
        },
        // 统计市场流通/去年流通量/本月流通量
        selectMarketCirculate () {
        selectMarketCirculate (year) {
            var params = {}
            params.codes = '000000'
            params.deptId = '1123598813738675201'
            params.year = '2022'
            params.farmId = this.farmValue
            params.year = year
            selectMarketCirculate(Object.assign(params)).then((res) => {
                this.salaNumBN = res.data.data[0].num
                this.salaNumQN = res.data.data[1].num
@@ -1082,7 +1313,7 @@
        countTaskNum (year) {
            var params = {}
            params.codes = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.year = year
            countTaskNum(Object.assign(params)).then((res) => {
                this.taskNum = res.data.data
@@ -1093,18 +1324,25 @@
        farmingRecords () {
            var params = {}
            params.tenantId = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.current = '1'
            params.size = '3'
            farmingRecords(Object.assign(params)).then((res) => {
                this.farminList = res.data.data.records
                var data = []
                for (var i = 0; i < res.data.data.length; i++) {
                    data.push(res.data.data[i])
                    if (i == 3) {
                        break
                    }
                }
                this.farminList = data
            })
        },
        // 农资出入库记录
        pageCountNzCrk () {
            var params = {}
            params.codes = '000000'
            params.deptId = '1123598813738675201'
            params.farmId = this.farmValue
            params.current = '1'
            params.size = '3'
            pageCountNzCrk(Object.assign(params)).then((res) => {
@@ -1115,7 +1353,7 @@
        getSweepRecordStatistics () {
            var params = {}
            // 农场id
            params.farmId = '1'
            params.farmId = this.farmValue
            getSweepRecordStatistics(Object.assign(params)).then((res) => {
                this.sweepList = res.data.data
            })
@@ -1124,7 +1362,7 @@
        getSweepRecordStatisticsByDayOrMonthOrYear (year) {
            var params = {}
            // 农场id
            params.farmId = '1'
            params.farmId = this.farmValue
            params.time = year
            getSweepRecordStatisticsByDayOrMonthOrYear(Object.assign(params)).then((res) => {
                this.sweepTrend = res.data.data
@@ -1154,6 +1392,23 @@
                // 溯源码
                this.initSymyBar('ClSyEcharts')
            }
        },
        // 本年农事操作记录,分组统计
        getFarmingStatis () {
            var that = this
            var farmId = that.farmValue
            getFarmingStatis(farmId).then((res) => {
                that.farmingList = res.data.data
            })
        },
        // 地块下拉
        getLandList () {
            var params = {}
            // 农场id
            params.farmId = this.farmValue
            getLandList(Object.assign(params)).then(res => {
                this.plotNumArray = res.data.data
            })
        }
    }
}