From 4169400bf2641fcbc8a7ca1426db732116d55a23 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 12 Jul 2022 12:00:07 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhny-dsjdp
---
src/components/date-select/index.vue | 122 ++++++++----
src/views/home/index.vue | 4
src/views/manage/index.vue | 382 +++++++++++++++++++++----------------
src/router/axios.js | 2
src/api/farm/farmingrecord.js | 37 +++
5 files changed, 335 insertions(+), 212 deletions(-)
diff --git a/src/api/farm/farmingrecord.js b/src/api/farm/farmingrecord.js
index 36aef08..5267fd9 100644
--- a/src/api/farm/farmingrecord.js
+++ b/src/api/farm/farmingrecord.js
@@ -115,6 +115,24 @@
}
})
}
+export const statisticsStockMonth = (params) => {
+ return request({
+ url: '/farmProductStock/statisticsStockMonth',
+ method: 'get',
+ params: {
+ ...params
+ }
+ })
+}
+export const productsSupervise = (params) => {
+ return request({
+ url: '/farmProductStock/productsSupervise',
+ method: 'get',
+ params: {
+ ...params
+ }
+ })
+}
export const pageCount = (params) => {
return request({
@@ -129,6 +147,15 @@
export const pageCountNz = (params) => {
return request({
url: '/stock/stock/page',
+ method: 'get',
+ params: {
+ ...params
+ }
+ })
+}
+export const pageCountNzCrk = (params) => {
+ return request({
+ url: '/stockrecord/stockrecord/page',
method: 'get',
params: {
...params
@@ -191,3 +218,13 @@
}
})
}
+
+export const getSweepRecordStatistics = (params) => {
+ return request({
+ url: '/sweepRecord/getSweepRecordStatistics',
+ method: 'get',
+ params: {
+ ...params
+ }
+ })
+}
diff --git a/src/components/date-select/index.vue b/src/components/date-select/index.vue
index 91069cc..10da1b1 100644
--- a/src/components/date-select/index.vue
+++ b/src/components/date-select/index.vue
@@ -13,66 +13,104 @@
</div>
<el-date-picker
- class="emit-el-date-picker"
- size="small"
- v-model="currentDate"
- :type="dateType"
- :placeholder="datePlaceHolder"
+ class="emit-el-date-picker"
+ size="small"
+ v-model="currentDate"
+ @change="selectChange"
+ :type="dateType"
+ :placeholder="datePlaceHolder"
></el-date-picker>
</div>
</template>
<script>
-export default {
- name: 'DateSelect',
- data () {
- return {
- dateType: 'month',
- datePlaceHolder: '选择月',
- currentDate: ''
- }
- },
+ export default {
+ name: 'DateSelect',
- methods: {
- select (e) {
- console.log(e.target.dataset.holder)
- this.dateType = e.target.dataset.type
- this.datePlaceHolder = e.target.dataset.holder
+ props: ['type'],
+
+ data () {
+ return {
+ dateType: 'month',
+ datePlaceHolder: '选择月',
+ currentDate: ''
+ }
+ },
+
+ methods: {
+ select (e) {
+ console.log(e.target.dataset.holder)
+ this.dateType = e.target.dataset.type
+ this.datePlaceHolder = e.target.dataset.holder
+ },
+ selectChange (e) {
+ const currentTime = this.gettime(e)
+ if (this.type == 'taskSelect') {
+ this.$parent.getTaskTime(currentTime)
+ } else if (this.type == 'ncptrSelect') {
+ this.$parent.getNcptrTime(currentTime)
+ } else if (this.type == 'nztrSelect') {
+ this.$parent.getNztrTime(currentTime)
+ } else if (this.type == 'cltjSelect') {
+ this.$parent.getCltjTime(currentTime)
+ } else if (this.type == 'symSelect') {
+ this.$parent.getSymTime(currentTime)
+ }
+ },
+ gettime (data) {
+ let dateValue = data.getFullYear()
+ if (this.dateType == 'date') {
+ dateValue += '-'
+ dateValue += this.checkTime(data.getMonth() + 1)
+ dateValue += '-'
+ dateValue += this.checkTime(data.getDate())
+ } else if (this.dateType == 'month') {
+ dateValue += '-'
+ dateValue += this.checkTime(data.getMonth() + 1)
+ }
+
+ return dateValue
+ },
+ checkTime (i) {
+ if (i < 10) {
+ i = '0' + i
+ }
+ return i
+ }
}
}
-}
</script>
<style scoped lang="scss">
-.time-select {
- margin-top: 20px;
- padding: 0 4px;
- display: flex;
- align-items: center;
- height: 34px;
-
- .date-box {
- margin-right: 20px;
+ .time-select {
+ margin-top: 20px;
+ padding: 0 4px;
display: flex;
- box-sizing: border-box;
align-items: center;
- height: 100%;
- background: rgba(33, 186, 196, 0.1);
- color: #a9d1d7;
+ height: 34px;
- & > div {
+ .date-box {
+ margin-right: 20px;
display: flex;
+ box-sizing: border-box;
align-items: center;
- justify-content: center;
- width: 50px;
height: 100%;
- cursor: pointer;
- }
+ background: rgba(33, 186, 196, 0.1);
+ color: #a9d1d7;
- .on {
- background: rgba(33, 186, 196, 0.5);
- border: 1px solid #66dde9;
+ & > div {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 50px;
+ height: 100%;
+ cursor: pointer;
+ }
+
+ .on {
+ background: rgba(33, 186, 196, 0.5);
+ border: 1px solid #66dde9;
+ }
}
}
-}
</style>
diff --git a/src/router/axios.js b/src/router/axios.js
index 2ac6c54..0cbda50 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -12,7 +12,7 @@
// console.log(window.location);
// console.log(url);
// }, 3000);
- window.$apiUrls = 'http://182.106.212.58:8013/api'
+window.$apiUrls = 'http://182.106.212.58:8013/api'
// window.$apiUrls = 'http://localhost:89'
const service = axios.create({
// baseURL: 'http://192.168.0.107:83',
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 29851f1..d4ce835 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -65,7 +65,7 @@
<div class="state">在使用</div>
<div class="text">
- <div class="num">{{ landsnum.toFixed(2) }}</div>
+ <div class="num">{{ landsnum.toFixed(0) }}</div>
<div class="unit">亩</div>
</div>
</div>
@@ -75,7 +75,7 @@
<div class="state">空闲中</div>
<div class="text">
- <div class="num">{{ landwnum }}</div>
+ <div class="num">{{ landwnum.toFixed(0) }}</div>
<div class="unit">亩</div>
</div>
</div>
diff --git a/src/views/manage/index.vue b/src/views/manage/index.vue
index bd593a6..33d9496 100644
--- a/src/views/manage/index.vue
+++ b/src/views/manage/index.vue
@@ -74,32 +74,32 @@
<time-box
:imgUrl="'/img/icon/current.png'"
:title="'溯源次数'"
- :currentNum="34"
+ :currentNum="sweepList['todayNum']"
:subTitle="'昨日溯源次数对比'"
- :contrast="28"
- :upDown="'up'"
+ :contrast="sweepList['yesterdayNum']"
+ :upDown="sweepList['todayNum'] > sweepList['yesterdayNum'] ? 'up' : 'down'"
></time-box>
<time-box
:imgUrl="'/img/icon/week.png'"
:title="'溯源次数'"
- :currentNum="61"
+ :currentNum="sweepList['thisWeekNum']"
:subTitle="'上周溯源次数对比'"
- :contrast="36"
- :upDown="'up'"
+ :contrast="sweepList['lastWeekNum']"
+ :upDown="sweepList['thisWeekNum'] > sweepList['lastWeekNum'] ? 'up' : 'down'"
></time-box>
<time-box
:imgUrl="'/img/icon/month.png'"
:title="'溯源次数'"
- :currentNum="88"
+ :currentNum="sweepList['thisMonthNum']"
:subTitle="'上月溯源次数对比'"
- :contrast="96"
- :upDown="'down'"
+ :contrast="sweepList['lastMonthNum']"
+ :upDown="sweepList['thisMonthNum'] > sweepList['lastMonthNum'] ? 'up' : 'down'"
></time-box>
</div>
<div class="task-box">
<div class="title">任务总数</div>
- <date-select></date-select>
+ <date-select :type="'taskSelect'"></date-select>
<div class="echarts-box" id="TaskNumEcharts"></div>
</div>
@@ -118,9 +118,10 @@
</div>
</div>
</div>
- <date-select></date-select>
+ <date-select :type="'ncptrSelect'" v-if="nzOrNcp == 'ncp'"></date-select>
+ <date-select :type="'nztrSelect'" v-if="nzOrNcp == 'nz'"></date-select>
<div v-if="nzOrNcp == 'ncp'" class="lists-box">
- <div v-for="(item,index) in ncptr" :key="index" >
+ <div v-for="(item,index) in ncptr" :key="index">
<div>{{index + 1}}</div>
<div>{{item.strainName}}</div>
<div>{{item.area}}亩</div>
@@ -132,29 +133,29 @@
<!-- </div>-->
</div>
<div v-if="nzOrNcp == 'nz'" class="lists-box">
- <div v-for="(item,index) in nztr" :key="index" >
+ <div v-for="(item,index) in nztr" :key="index">
<div>{{index + 1}}</div>
<div>{{item.agrname}}</div>
<div>{{item.cnum}}公斤</div>
</div>
-<!-- <div>-->
-<!-- <div>2</div>-->
-<!-- <div>复合肥料</div>-->
-<!-- <div>68公斤</div>-->
-<!-- </div>-->
+ <!-- <div>-->
+ <!-- <div>2</div>-->
+ <!-- <div>复合肥料</div>-->
+ <!-- <div>68公斤</div>-->
+ <!-- </div>-->
</div>
</div>
<div class="trp-ncp">
<div class="title-box">
<div>
<div class="item" :class="{on: trpOrNcp == 'trp'}">
- <div @click="trpOrNcp = 'trp'" class="title">投入品监管</div>
+ <div @click="trpOrNcpChange('trp')" class="title">投入品监管</div>
<span></span>
</div>
</div>
<div>
<div class="item" :class="{on: trpOrNcp == 'ncp'}">
- <div @click="trpOrNcp = 'ncp'" class="title">农产品监管</div>
+ <div @click="trpOrNcpChange('ncp')" class="title">农产品监管</div>
<span></span>
</div>
</div>
@@ -165,28 +166,29 @@
</div>
</div>
- <div v-if="trpOrNcp == 'trp'" class="echarts-box" id="TrpEcharts"></div>
- <div v-if="trpOrNcp == 'ncp'" class="echarts-box" id="NcpEcharts"></div>
+ <div class="echarts-box" id="TrpEcharts"></div>
+ <!-- <div v-show="trpOrNcp == 'ncp'" class="echarts-box" id="NcpEcharts"></div>-->
</div>
</div>
<div class="b">
<div class="cl-sy">
<div class="title-box">
<div>
- <div class="item on">
- <div class="title">产量统计</div>
+ <div class="item" :class="{on : cltjOrsym == 'cltj'}">
+ <div @click="cltjOrsym='cltj'" class="title">产量统计</div>
<span></span>
</div>
</div>
<div>
- <div class="item">
- <div class="title">溯源查询趋势图</div>
+ <div class="item" :class="{on : cltjOrsym == 'sym'}">
+ <div @click="cltjOrsym='sym'" class="title">溯源查询趋势图</div>
<span></span>
</div>
</div>
<div class="date">
- <date-select></date-select>
+ <date-select :type="'cltjSelect'" v-if="cltjOrsym == 'cltj'"></date-select>
+ <date-select :type="'symSelect'" v-if="cltjOrsym == 'sym'"></date-select>
</div>
</div>
@@ -195,14 +197,14 @@
<div class="ns-nz">
<div class="title-box">
<div>
- <div class="item on">
- <div class="title">农事记录</div>
+ <div class="item" :class="{on : nsjlOrnz == 'nsjl'}">
+ <div @click="nsjlOrnz='nsjl'" class="title">农事记录</div>
<span></span>
</div>
</div>
<div>
- <div class="item">
- <div class="title">农资出入库记录</div>
+ <div class="item" :class="{on : nsjlOrnz == 'nzcr'}">
+ <div @click="nsjlOrnz='nzcr'" class="title">农资出入库记录</div>
<span></span>
</div>
</div>
@@ -213,17 +215,32 @@
</div>
</div>
- <div class="lists-box">
- <div v-for="(item,index) in farminList" :key="index">
+ <div v-if="nsjlOrnz == 'nsjl'" class="lists-box">
+ <div v-for="(item,index) in farminList" :key="index">
<div class="t-border"></div>
<div class="t-item">
<div>{{item.typeName}}</div>
<div>{{item.time}}</div>
</div>
<div class="b-item">
- <div>水稻</div>
- <div>管理员</div>
+ <div>{{item.strainName}}</div>
+ <div>{{item.realName}}</div>
<div>{{item.landName}}</div>
+ </div>
+ <div class="b-border"></div>
+ </div>
+ </div>
+ <div v-if="nsjlOrnz == 'nzcr'" class="lists-box">
+ <div v-for="(item,index) in stockrecordList" :key="index">
+ <div class="t-border"></div>
+ <div class="t-item">
+ <div>{{item.agrname}}</div>
+ <div>{{item.time1}}</div>
+ </div>
+ <div class="b-item">
+ <div>{{item.spn}}</div>
+ <div>{{item.type1}}</div>
+ <div>{{item.czr}}</div>
</div>
<div class="b-border"></div>
</div>
@@ -237,7 +254,21 @@
<script>
import { selectXCount } from '@/api/land/land'
// eslint-disable-next-line no-unused-vars
- import { page, getStockCount, pagePalnt, statisticsStockAndYield, pageCount, pageCountNz, selectMarketCirculate, countTaskNum, farmingRecords } from '@/api/farm/farmingrecord'
+ import {
+ page,
+ getStockCount,
+ pagePalnt,
+ statisticsStockAndYield,
+ pageCount,
+ pageCountNz,
+ selectMarketCirculate,
+ countTaskNum,
+ farmingRecords,
+ statisticsStockMonth,
+ productsSupervise,
+ pageCountNzCrk,
+ getSweepRecordStatistics
+ } from '@/api/farm/farmingrecord'
export default {
data () {
@@ -255,6 +286,8 @@
stockNCP: 0,
// 加工产品数量统计
stockJG: 0,
+ // 产量按月统计
+ yieldMonth: [],
// 年产量统计
yieldTj: 0,
// 农产品年产量统计
@@ -272,8 +305,16 @@
taskNum: [],
// 农事记录
farminList: [],
+ // 农资出入库记录
+ stockrecordList: [],
+ // 农产品监管
+ NcpJg: [],
+ // 溯源次数
+ sweepList: {},
nzOrNcp: 'ncp',
- trpOrNcp: 'trp'
+ trpOrNcp: 'trp',
+ nsjlOrnz: 'nsjl',
+ cltjOrsym: 'cltj'
}
},
created () {
@@ -282,31 +323,54 @@
this.page()
// 年产量与库存数量
this.statisticsStockAndYield()
+ // 按月统计产量
+ this.statisticsStockMonth('2022-07')
// 农产品投入
- this.pageCount()
+ this.pageCount('2022-07')
// 农资投入
- this.pageCountNz()
+ this.pageCountNz('2022-07')
// 统计市场流通/去年流通量/本月流通量
this.selectMarketCirculate()
// 统计任务总数
- this.countTaskNum()
+ this.countTaskNum('2022-07')
// 农事操作
this.farmingRecords()
+ // 农产品监管
+ this.productsSupervise()
+ // 农资出入库记录
+ this.pageCountNzCrk()
+ // 溯源次数统计
+ this.getSweepRecordStatistics()
},
mounted () {
- // this.initNcpBar('NcpEcharts')
- this.initClSyBar('ClSyEcharts')
+
},
methods: {
+ // 任务总数时间查询
+ getTaskTime (e) {
+ this.countTaskNum(e)
+ },
+ // 农产品投入时间查询
+ getNcptrTime (e) {
+ this.pageCount(e)
+ },
+ // 农资投入时间查询
+ getNztrTime (e) {
+ this.pageCountNz(e)
+ },
+ // 产量统计时间查询
+ getCltjTime (e) {
+ this.statisticsStockMonth(e)
+ },
+ // 溯源码时间查询
+ getSymTime (e) {
+ },
initBar (dom) {
const that = this
const chartDom = document.getElementById(dom)
const myChart = this.$echarts.init(chartDom)
-
- var x = []
- var y = []
+ var y = []
for (let i = 0; i < that.taskNum.length; i++) {
- x.push(that.taskNum[i].y)
y.push(that.taskNum[i].count)
}
@@ -320,7 +384,7 @@
},
xAxis: {
type: 'category',
- data: x,
+ data: ['已完成', '未完成', '超期完成'],
axisLine: {
lineStyle: {
color: 'rgba(153,153,153,.4)'
@@ -335,7 +399,6 @@
}
},
yAxis: {
- max: 50,
name: '(次)',
nameTextStyle: {
color: 'rgba(255,255,255,.4)'
@@ -516,94 +579,47 @@
const that = this
const chartDom = document.getElementById(dom)
const myChart = this.$echarts.init(chartDom)
+ myChart.clear()
+ var data = that.NcpJg
+ var dj = ['一等品', '二等品', '三等品', '四等品', '五等品']
+ var echartData = []
+ var sum = 0
+ for (var i = 0; i < 5; i++) {
+ sum += Number(data[i])
+ echartData.push({
+ name: dj[i],
+ value: data[i]
+ })
+ }
const option = {
- grid: {
- top: '14%',
- left: '2%',
- right: '2%',
- bottom: '2%',
- containLabel: true
+ tooltip: {
+ trigger: 'item'
},
- xAxis: {
- type: 'category',
- data: [
- '有机肥料',
- '复合肥料'
- ],
- axisLine: {
- lineStyle: {
- color: 'rgba(153,153,153,.4)'
- }
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: 'rgba(255,255,255,.4)',
- rotate: 0
- }
- },
- yAxis: {
- max: 600,
- name: '(公斤)',
- nameTextStyle: {
- color: 'rgba(255,255,255,.4)'
- },
- axisLine: {
- lineStyle: {
- color: '#657CA8'
- }
- },
- axisTick: {
- show: false
- },
- splitLine: {
- show: true,
- lineStyle: {
- color: 'rgba(62,81,97, .5)',
- type: 'dashed'
- }
- },
- axisLabel: {
- color: 'rgba(255,255,255,.4)'
- }
+ legend: {
+ top: '5%',
+ padding: [50, 100, 0, 0],
+ orient: 'vertical',
+ left: 'right'
},
series: [
{
- type: 'bar',
- barWidth: 32,
- data: [500, 60],
+ name: '品质',
+ type: 'pie',
+ radius: ['40%', '70%'],
+ avoidLabelOverlap: false,
label: {
- show: true,
- position: 'top',
- textStyle: {
- color: 'rgba(255,255,255,.4)'
+ normal: {
+ show: true,
+ formatter: '产品总数\n\n' + sum,
+ position: 'center',
+ lineHight: 30
}
},
- itemStyle: {
- normal: {
- color:
-
- new that.$echarts.graphic.LinearGradient(
- // 前四个参数用于配置渐变色的起止位置,这四个参数依次对应 右下左上 四个方位。也就是从右边开始顺时针方向。
- // 通过修改前4个参数,可以实现不同的渐变方向
- /* 第五个参数则是一个数组,用于配置颜色的渐变过程。
- 每项为一个对象,包含offset和color两个参数
- */
- 0, 0, 0, 1, [{ // 代表渐变色从正上方开始
- offset: 0, // offset范围是0~1,用于表示位置,0是指0%处的颜色
- color: '#24A5DF'
- }, // 柱图渐变色
- {
- offset: 1, // 指100%处的颜色
- color: '#01E2D2'
- }
- ]
- )
-
- }
- }
+ labelLine: {
+ show: false
+ },
+ data: echartData
}
]
}
@@ -615,27 +631,14 @@
const chartDom = document.getElementById(dom)
const myChart = this.$echarts.init(chartDom)
- var data = [
- '01',
- '02',
- '03',
- '04',
- '05',
- '06',
- '07',
- '08',
- '09',
- '10',
- '11',
- '12'
- ]
+ var data = []
var data1 = [
- '180',
- '320',
- '400',
- '200',
- '110',
- '180',
+ '0',
+ '0',
+ '0',
+ '0',
+ '0',
+ '0',
'0',
'0',
'0',
@@ -643,20 +646,12 @@
'0',
'0'
]
- var data2 = [
- '0',
- '0',
- '0',
- '260',
- '0',
- '230',
- '0',
- '0',
- '0',
- '0',
- '0',
- '0'
- ]
+ var data2 = []
+ var ncp = this.yieldMonth
+ for (let i = 0; i < ncp.length; i++) {
+ data.push(ncp[i].time)
+ data2.push(ncp[i].num)
+ }
const option = {
grid: {
@@ -802,22 +797,44 @@
this.yieldTj = res.data.data.ncpNcl + res.data.data.jgNcl
})
},
- // 农产品投入
- pageCount () {
+ // 按月统计产量
+ statisticsStockMonth (e) {
+ var params = {}
+ params.tenantId = '000000'
+ params.deptId = '1123598813738675201'
+ params.year = e
+ statisticsStockMonth(Object.assign(params)).then((res) => {
+ this.yieldMonth = res.data.data
+ this.initClSyBar('ClSyEcharts')
+ })
+ },
+ // 农产品监管
+ productsSupervise () {
var params = {}
params.tenantId = '000000'
params.deptId = '1123598813738675201'
params.year = '2022'
+ productsSupervise(Object.assign(params)).then((res) => {
+ this.NcpJg = res.data.data
+ })
+ },
+ // 农产品投入
+ pageCount (e) {
+ var params = {}
+ params.tenantId = '000000'
+ params.deptId = '1123598813738675201'
+ params.year = e
+ params.status = '1'
pageCount(Object.assign(params)).then((res) => {
this.ncptr = res.data.data
})
},
// 农资投入
- pageCountNz () {
+ pageCountNz (e) {
var params = {}
params.codes = '000000'
params.deptId = '1123598813738675201'
- params.year = '2022'
+ params.year = e
pageCountNz(Object.assign(params)).then((res) => {
this.nztr = res.data.data.records
// 投入品监管图表
@@ -837,11 +854,11 @@
})
},
// 统计任务总数
- countTaskNum () {
+ countTaskNum (year) {
var params = {}
params.codes = '000000'
params.deptId = '1123598813738675201'
- params.year = '2022'
+ params.year = year
countTaskNum(Object.assign(params)).then((res) => {
this.taskNum = res.data.data
this.initBar('TaskNumEcharts')
@@ -857,6 +874,37 @@
farmingRecords(Object.assign(params)).then((res) => {
this.farminList = res.data.data.records
})
+ },
+ // 农资出入库记录
+ pageCountNzCrk () {
+ var params = {}
+ params.codes = '000000'
+ params.deptId = '1123598813738675201'
+ params.current = '1'
+ params.size = '3'
+ pageCountNzCrk(Object.assign(params)).then((res) => {
+ this.stockrecordList = res.data.data.records
+ })
+ },
+ // 溯源次数统计
+ getSweepRecordStatistics () {
+ var params = {}
+ // 农场id
+ params.farmId = '1'
+ getSweepRecordStatistics(Object.assign(params)).then((res) => {
+ this.sweepList = res.data.data
+ })
+ },
+ // 监管图表切换
+ trpOrNcpChange (item) {
+ var that = this
+ that.trpOrNcp = item
+ if (item == 'trp') {
+ that.initTrpBar('TrpEcharts')
+ } else {
+ // 农产品监管
+ that.initNcpBar('TrpEcharts')
+ }
}
}
}
--
Gitblit v1.9.3