From a61f279100e1447e571a3cd36e7dbbc97e060ce9 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 31 May 2022 14:03:36 +0800
Subject: [PATCH] 产量统计,播种面积统计页面交互实现
---
src/api/farmplant/farmplant.js | 13 +
src/views/statistics/farmproductstockstatistics.vue | 294 ++++++++++++-------------
src/views/statistics/farmplantarea.vue | 320 ++++++++++------------------
3 files changed, 267 insertions(+), 360 deletions(-)
diff --git a/src/api/farmplant/farmplant.js b/src/api/farmplant/farmplant.js
index e06e5da..b2ae443 100644
--- a/src/api/farmplant/farmplant.js
+++ b/src/api/farmplant/farmplant.js
@@ -45,4 +45,17 @@
id
}
})
+}
+
+
+export const getFarmPlantStatistics = (current, size, params) => {
+ return request({
+ url: '/api/farmPlant/getFarmPlantStatistics',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
}
\ No newline at end of file
diff --git a/src/views/statistics/farmplantarea.vue b/src/views/statistics/farmplantarea.vue
index 6b795fb..fcabdd3 100644
--- a/src/views/statistics/farmplantarea.vue
+++ b/src/views/statistics/farmplantarea.vue
@@ -5,33 +5,23 @@
:table-loading="loading"
:data="data"
:page.sync="page"
- :permission="permissionList"
- :before-open="beforeOpen"
+ :summary-method="getSummaries"
v-model="form"
ref="crud"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @row-del="rowDel"
+ :search.sync="search"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
- @on-load="onLoad"
>
</avue-crud>
</basic-container>
</template>
<script>
-import {
- getDetail,
- getList,
- update,
- remove,
- save,
-} from "@/api/farmplant/farmproductstock";
+import { getFarmPlantStatistics } from "@/api/farmplant/farmplant";
import { getStrainList } from "@/api/farmplant/strain";
import { mapGetters } from "vuex";
export default {
@@ -40,6 +30,7 @@
visible: true,
form: {},
query: {},
+ search: {},
loading: true,
excelBox: false,
page: {
@@ -66,24 +57,22 @@
selectionFixed: false,
expandFixed: false,
menuFixed: false,
- menu:false,
+ menu: false,
sumColumnList: [
{
label: "合计",
name: "strainId",
},
{
- name: "weight",
+ name: "areas",
type: "sum",
},
],
column: [
{
- label: "农产品名称",
+ label: "作物",
prop: "strainId",
span: 12,
- search: true,
- searchSpan: 4,
searchLabelWidth: 100,
type: "tree",
dicData: [],
@@ -95,34 +84,15 @@
rules: [
{
required: true,
- message: "请输入农产品名称",
+ message: "请输入作物",
trigger: "blur",
},
],
disabled: true,
},
{
- label: "农产品图片",
- prop: "url",
- span: 12,
- addDisplay: false,
- editDisplay: false,
- type: "upload",
- dataType: "string",
- listType: "picture-card",
- labelWidth: 145,
- rules: [
- {
- required: true,
- message: "请上传农产品图片",
- trigger: "click",
- },
- ],
- },
- {
- label: "库存重量/公斤",
- prop: "weight",
- tip: "公斤",
+ label: "播种面积(亩)",
+ prop: "areas",
span: 12,
labelWidth: 145,
controls: false,
@@ -136,76 +106,22 @@
],
},
{
- label: "采收时间",
- prop: "time",
- addDisplay: false,
- editDisplay: false,
+ label: "筛选时间段",
+ prop: "releaseTimeRange",
span: 12,
- labelWidth: 145,
- type: "datetime",
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
+ hide: true,
+ search: true,
+ searchSpan: 6,
+ searchLabelWidth: 110,
+ searchRange: true,
+ searchValue: [this.getStartTime(), this.getEndTime()],
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
rules: [
{
required: true,
message: "请选择采收时间",
- trigger: "click",
- },
- ],
- },
- // {
- // label: "操作人",
- // prop: "operator",
- // type: "tree",
- // dicData: [],
- // props: {
- // label: "realName",
- // value: "id",
- // },
- // span: 12,
- // labelWidth: 145,
- // rules: [
- // {
- // required: true,
- // message: "请输入操作人",
- // trigger: "click",
- // },
- // ],
- // },
- {
- label: "产品等级",
- prop: "leaves",
- span: 12,
- labelWidth: 145,
- search: true,
- searchSpan: 4,
- type: "select",
- dicData: [
- {
- label: "一等品",
- value: "0",
- },
- {
- label: "二等品",
- value: "1",
- },
- {
- label: "三等品",
- value: "2",
- },
- {
- label: "四等品",
- value: "3",
- },
- {
- label: "五等品",
- value: "4",
- },
- ],
- rules: [
- {
- required: true,
- message: "请输入产品等级",
trigger: "click",
},
],
@@ -220,14 +136,6 @@
},
computed: {
...mapGetters(["permission", "userInfo"]),
- // permissionList() {
- // return {
- // addBtn: this.vaildData(this.permission.social_add, true),
- // viewBtn: this.vaildData(this.permission.social_view, false),
- // delBtn: this.vaildData(this.permission.social_delete, false),
- // editBtn: this.vaildData(this.permission.social_edit, false),
- // };
- // },
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
@@ -236,8 +144,76 @@
return ids.join(",");
},
},
- mounted() {},
+ mounted() {
+ var params = {
+ startTime:this.getStartTime(),
+ endTime:this.getEndTime()
+ }
+ this.onLoad(this.page,params);
+ },
methods: {
+ //合计计算
+ getSummaries(param) {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = "合计";
+ return;
+ }
+ if (index === 1) {
+ const values = data.map((item) => Number(item[column.property]));
+ if (!values.every((value) => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0);
+ sums[index] += " 亩";
+ } else {
+ sums[index] = "N/A";
+ }
+ }
+ });
+ return sums;
+ },
+ getStartTime() {
+ var myDate = new Date();
+ var year = myDate.getFullYear();
+ //获取当前月份(0-11,0代表1月,所以要加1);
+ var month = myDate.getMonth() + 1;
+ //获取当前日(1-31)
+ var day = myDate.getDate();
+ if (month < 10) {
+ month = "0" + month;
+ }
+ if (day >= 0 && day <= 9) {
+ day = "0" + day;
+ }
+ var firstDay = year + "-" + month + "-01";
+ // this.query['startTime'] = firstDay;
+ return firstDay;
+ },
+ getEndTime() {
+ var myDate = new Date();
+ var year = myDate.getFullYear();
+ //获取当前月份(0-11,0代表1月,所以要加1);
+ var month = myDate.getMonth() + 1;
+ //获取当前日(1-31)
+ var day = myDate.getDate();
+ if (month < 10) {
+ month = "0" + month;
+ }
+ if (day >= 0 && day <= 9) {
+ day = "0" + day;
+ }
+ var thisDay = year + "-" + month + "-" + day;
+ // this.query['endTime'] = thisDay;
+ return thisDay;
+ },
initData() {
var that = this;
//获取农产品数据
@@ -247,89 +223,6 @@
strainId.dicData = res.data.data;
}
});
- },
- //新增
- rowSave(row, done, loading) {
- row["strainType"] = 0;
- save(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- loading();
- window.console.log(error);
- }
- );
- },
- //修改
- rowUpdate(row, index, done, loading) {
- update(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- loading();
- console.log(error);
- }
- );
- },
- //删除
- rowDel(row) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(row.id);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- });
- },
- handleDelete() {
- if (this.selectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- this.$refs.crud.toggleSelection();
- });
- },
- beforeOpen(done, type) {
- if (["edit", "view"].includes(type)) {
- getDetail(this.form.id).then((res) => {
- this.form = res.data.data;
- });
- }
- done();
},
searchReset() {
this.query = {};
@@ -359,17 +252,28 @@
},
onLoad(page, params = {}) {
this.loading = true;
- getList(
- page.currentPage,
- page.pageSize,
- Object.assign(params, this.query)
- ).then((res) => {
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
- this.loading = false;
- this.selectionClear();
- });
+ const { releaseTimeRange } = this.query;
+ let values = {
+ ...params,
+ };
+ if (releaseTimeRange) {
+ values = {
+ ...params,
+ startTime: releaseTimeRange[0],
+ endTime: releaseTimeRange[1],
+ ...this.query,
+ };
+ values.releaseTimeRange = null;
+ }
+ getFarmPlantStatistics(page.currentPage, page.pageSize, values).then(
+ (res) => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ }
+ );
},
},
};
diff --git a/src/views/statistics/farmproductstockstatistics.vue b/src/views/statistics/farmproductstockstatistics.vue
index 6b795fb..5d876e7 100644
--- a/src/views/statistics/farmproductstockstatistics.vue
+++ b/src/views/statistics/farmproductstockstatistics.vue
@@ -6,12 +6,9 @@
:data="data"
:page.sync="page"
:permission="permissionList"
- :before-open="beforeOpen"
+ :summary-method="getSummaries"
v-model="form"
ref="crud"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@@ -26,11 +23,7 @@
<script>
import {
- getDetail,
- getList,
- update,
- remove,
- save,
+ getList
} from "@/api/farmplant/farmproductstock";
import { getStrainList } from "@/api/farmplant/strain";
import { mapGetters } from "vuex";
@@ -66,11 +59,12 @@
selectionFixed: false,
expandFixed: false,
menuFixed: false,
- menu:false,
+ menu: false,
sumColumnList: [
{
label: "合计",
name: "strainId",
+ value: "合计",
},
{
name: "weight",
@@ -82,8 +76,6 @@
label: "农产品名称",
prop: "strainId",
span: 12,
- search: true,
- searchSpan: 4,
searchLabelWidth: 100,
type: "tree",
dicData: [],
@@ -135,77 +127,77 @@
},
],
},
- {
- label: "采收时间",
- prop: "time",
- addDisplay: false,
- editDisplay: false,
- span: 12,
- labelWidth: 145,
- type: "datetime",
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
- rules: [
- {
- required: true,
- message: "请选择采收时间",
- trigger: "click",
- },
- ],
- },
// {
- // label: "操作人",
- // prop: "operator",
- // type: "tree",
- // dicData: [],
- // props: {
- // label: "realName",
- // value: "id",
- // },
+ // label: "采收时间",
+ // prop: "time",
+ // addDisplay: false,
+ // editDisplay: false,
// span: 12,
// labelWidth: 145,
+ // type: "datetime",
+ // format: "yyyy-MM-dd HH:mm",
+ // valueFormat: "yyyy-MM-dd HH:mm",
// rules: [
// {
// required: true,
- // message: "请输入操作人",
+ // message: "请选择采收时间",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ // {
+ // label: "产品等级",
+ // prop: "leaves",
+ // span: 12,
+ // labelWidth: 145,
+ // type: "select",
+ // dicData: [
+ // {
+ // label: "一等品",
+ // value: "0",
+ // },
+ // {
+ // label: "二等品",
+ // value: "1",
+ // },
+ // {
+ // label: "三等品",
+ // value: "2",
+ // },
+ // {
+ // label: "四等品",
+ // value: "3",
+ // },
+ // {
+ // label: "五等品",
+ // value: "4",
+ // },
+ // ],
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入产品等级",
// trigger: "click",
// },
// ],
// },
{
- label: "产品等级",
- prop: "leaves",
+ label: "筛选时间段",
+ prop: "releaseTimeRange",
span: 12,
- labelWidth: 145,
+ hide: true,
search: true,
- searchSpan: 4,
- type: "select",
- dicData: [
- {
- label: "一等品",
- value: "0",
- },
- {
- label: "二等品",
- value: "1",
- },
- {
- label: "三等品",
- value: "2",
- },
- {
- label: "四等品",
- value: "3",
- },
- {
- label: "五等品",
- value: "4",
- },
- ],
+ searchSpan: 6,
+ searchLabelWidth: 110,
+ searchRange: true,
+ searchValue: [this.getStartTime(), this.getEndTime()],
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
rules: [
{
required: true,
- message: "请输入产品等级",
+ message: "请选择采收时间",
trigger: "click",
},
],
@@ -236,8 +228,76 @@
return ids.join(",");
},
},
- mounted() {},
+ mounted() {
+ var params = {
+ startTime:this.getStartTime(),
+ endTime:this.getEndTime()
+ }
+ this.onLoad(this.page,params);
+ },
methods: {
+ //合计计算
+ getSummaries(param) {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = "合计";
+ return;
+ }
+ if (index === 2) {
+ const values = data.map((item) => Number(item[column.property]));
+ if (!values.every((value) => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0);
+ sums[index] += " 公斤";
+ } else {
+ sums[index] = "N/A";
+ }
+ }
+ });
+ return sums;
+ },
+ getStartTime() {
+ var myDate = new Date();
+ var year = myDate.getFullYear();
+ //获取当前月份(0-11,0代表1月,所以要加1);
+ var month = myDate.getMonth() + 1;
+ //获取当前日(1-31)
+ var day = myDate.getDate();
+ if (month < 10) {
+ month = "0" + month;
+ }
+ if (day >= 0 && day <= 9) {
+ day = "0" + day;
+ }
+ var firstDay = year + "-" + month + "-01";
+ // this.query['startTime'] = firstDay;
+ return firstDay;
+ },
+ getEndTime() {
+ var myDate = new Date();
+ var year = myDate.getFullYear();
+ //获取当前月份(0-11,0代表1月,所以要加1);
+ var month = myDate.getMonth() + 1;
+ //获取当前日(1-31)
+ var day = myDate.getDate();
+ if (month < 10) {
+ month = "0" + month;
+ }
+ if (day >= 0 && day <= 9) {
+ day = "0" + day;
+ }
+ var thisDay = year + "-" + month + "-" + day;
+ // this.query['endTime'] = thisDay;
+ return thisDay;
+ },
initData() {
var that = this;
//获取农产品数据
@@ -247,89 +307,6 @@
strainId.dicData = res.data.data;
}
});
- },
- //新增
- rowSave(row, done, loading) {
- row["strainType"] = 0;
- save(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- loading();
- window.console.log(error);
- }
- );
- },
- //修改
- rowUpdate(row, index, done, loading) {
- update(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- loading();
- console.log(error);
- }
- );
- },
- //删除
- rowDel(row) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(row.id);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- });
- },
- handleDelete() {
- if (this.selectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- this.$refs.crud.toggleSelection();
- });
- },
- beforeOpen(done, type) {
- if (["edit", "view"].includes(type)) {
- getDetail(this.form.id).then((res) => {
- this.form = res.data.data;
- });
- }
- done();
},
searchReset() {
this.query = {};
@@ -359,10 +336,23 @@
},
onLoad(page, params = {}) {
this.loading = true;
+ const { releaseTimeRange } = this.query;
+ let values = {
+ ...params,
+ };
+ if (releaseTimeRange) {
+ values = {
+ ...params,
+ startTime: releaseTimeRange[0],
+ endTime: releaseTimeRange[1],
+ ...this.query,
+ };
+ values.releaseTimeRange = null;
+ }
getList(
page.currentPage,
page.pageSize,
- Object.assign(params, this.query)
+ values
).then((res) => {
const data = res.data.data;
this.page.total = data.total;
--
Gitblit v1.9.3