From dcd75a9a37d281f8aa5aabbeb76bd544dc08a4da Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 18 May 2022 19:04:34 +0800
Subject: [PATCH] 采收记录完善,结束完成,新增农产品种植,页面样式优化
---
src/views/wel/farming.vue | 322 +++++++++++
src/views/wel/index.vue | 258 ++++----
public/img/wel/plant.png | 0
public/img/wel/xiaosou.png | 0
src/views/wel/land.vue | 322 +++++++++++
public/img/wel/land.png | 0
public/img/wel/nongzi.png | 0
src/views/wel/recovery.vue | 119 +++
src/views/wel/stock.vue | 322 +++++++++++
src/api/farmplant/recovery.js | 48 +
src/views/wel/plant.vue | 324 +++++++++++
public/img/wel/farming.png | 0
12 files changed, 1,560 insertions(+), 155 deletions(-)
diff --git a/public/img/wel/farming.png b/public/img/wel/farming.png
new file mode 100644
index 0000000..3b22c43
--- /dev/null
+++ b/public/img/wel/farming.png
Binary files differ
diff --git a/public/img/wel/land.png b/public/img/wel/land.png
new file mode 100644
index 0000000..4f90c77
--- /dev/null
+++ b/public/img/wel/land.png
Binary files differ
diff --git a/public/img/wel/nongzi.png b/public/img/wel/nongzi.png
new file mode 100644
index 0000000..ce2248a
--- /dev/null
+++ b/public/img/wel/nongzi.png
Binary files differ
diff --git a/public/img/wel/plant.png b/public/img/wel/plant.png
new file mode 100644
index 0000000..befef87
--- /dev/null
+++ b/public/img/wel/plant.png
Binary files differ
diff --git a/public/img/wel/xiaosou.png b/public/img/wel/xiaosou.png
new file mode 100644
index 0000000..8481b49
--- /dev/null
+++ b/public/img/wel/xiaosou.png
Binary files differ
diff --git a/src/api/farmplant/recovery.js b/src/api/farmplant/recovery.js
new file mode 100644
index 0000000..9054f61
--- /dev/null
+++ b/src/api/farmplant/recovery.js
@@ -0,0 +1,48 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/recovery/page',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+export const remove = (ids) => {
+ return request({
+ url: '/api/recovery/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const save = (row) => {
+ return request({
+ url: '/api/recovery/save',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/recovery/update',
+ method: 'post',
+ data: row
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/recovery/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
\ No newline at end of file
diff --git a/src/views/wel/farming.vue b/src/views/wel/farming.vue
new file mode 100644
index 0000000..34994ea
--- /dev/null
+++ b/src/views/wel/farming.vue
@@ -0,0 +1,322 @@
+<template>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ width="60%"
+ :visible.sync="visible"
+ >
+ <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ </avue-form>
+ </el-dialog>
+</template>
+
+<script>
+
+import { mapState } from "vuex";
+import { getLandList } from "@/api/land/land";
+import { getUserList } from "@/api/system/user";
+import { getStrainList } from "@/api/farmplant/strain";
+import { save } from "@/api/farmplant/recovery";
+export default {
+ data() {
+ return {
+ title:"采收/捕捞",
+ form: {},
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ gutter: 30,
+ column: [
+ {
+ label: "采收品种",
+ prop: "strainId",
+ span: 12,
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "strainName",
+ value: "id"
+ },
+ labelWidth: 145,
+ rules: [
+ {
+ required: true,
+ message: "请输入采收品种",
+ trigger: "blur",
+ },
+ ],
+ disabled:true,
+ },
+ {
+ label: "采收地块",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ prop: "landId",
+ type:"tree",
+ dicData: [],
+ props: {
+ label: "landName",
+ value: "id"
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择采收地块",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收重量",
+ prop: "weight",
+ tip: '公斤',
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ controls:false,
+ type:'number',
+ rules: [
+ {
+ required: true,
+ message: "请输入采收重量 公斤",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "作业方式",
+ prop: "jobWay",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "select",
+ value:"0",
+ dicData:[
+ {
+ label:"人工",
+ value:"0"
+ },
+ {
+ label:"机械",
+ value:"1"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请选择作业方式",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收时间",
+ prop: "time",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm",
+ valueFormat: "yyyy-MM-dd HH:mm",
+ rules: [
+ {
+ required: true,
+ message: "请选择采收时间",
+ trigger: "click",
+ },
+ ],
+ },
+ // {
+ // label: "采收产品",
+ // prop: "farmArea",
+ // span: 12,
+ // labelWidth: 145,
+ // width: 110,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入采收产品",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ {
+ label: "操作人",
+ prop: "operator",
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "realName",
+ value: "id",
+ },
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: true,
+ message: "请输入操作人",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "产品等级",
+ prop: "leaves",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ value:"0",
+ 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: "remark",
+ span: 24,
+ type:"textarea",
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: false,
+ message: "请输入备注",
+ trigger: "click",
+ },
+ ],
+ },
+ ],
+ },
+ visible: false,
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ },
+ methods: {
+ //计算当前时间
+ getNowTime(){
+ var date = new Date();
+ //年 getFullYear():四位数字返回年份
+ var year = date.getFullYear(); //getFullYear()代替getYear()
+ //月 getMonth():0 ~ 11
+ var month = date.getMonth() + 1;
+ //日 getDate():(1 ~ 31)
+ var day = date.getDate();
+ //时 getHours():(0 ~ 23)
+ var hour = date.getHours();
+ //分 getMinutes(): (0 ~ 59)
+ var minute = date.getMinutes();
+ //秒 getSeconds():(0 ~ 59)
+ var second = date.getSeconds();
+ //赋值
+ this.form['time'] = year + '-'
+ + this.addZero(month) + '-'
+ + this.addZero(day) + ' '
+ + this.addZero(hour) + ':'
+ + this.addZero(minute);
+ },
+ //小于10的拼接上0字符串
+ addZero(s) {
+ return s < 10 ? ('0' + s) : s;
+ },
+ //初始化
+ init(data) {
+ this.form = {
+ farmPlantId:data.id,
+ strainId:data.strainId,
+ landId:data.landId,
+ weight:data.weight,
+ leaves:'0',
+ jobWay:data.jobWay,
+ operator:data.operator,
+ remark:''
+ };
+ this.form['operator'] = this.userInfo.user_id;
+ //计算当前时间
+ this.getNowTime();
+ this.visible = true;
+ var that = this;
+ //获取农地数据
+ getLandList(this.userInfo.user_id).then((res) => {
+ if (res.data.code == 200) {
+ var landIdcolumn = that.findObject(that.option.column, "landId");
+ that.landList = res.data.data;
+ landIdcolumn.dicData = res.data.data;
+ }
+ });
+
+ //获取操作人
+ const user = {
+ tenantId: this.userInfo.tenant_id,
+ };
+ getUserList(user).then((res) => {
+ if (res.data.code == 200) {
+ var operatorcolumn = that.findObject(that.option.column, "operator");
+ operatorcolumn.dicData = res.data.data;
+ }
+ });
+ //获取农产品数据
+ getStrainList(0).then((res)=>{
+ if(res.data.code==200){
+ var strainId = that.findObject(that.option.column,"strainId");
+ strainId.dicData = res.data.data;
+ }
+ })
+ },
+ // 表单提交
+ submit(row,loading,done) {
+ var that = this;
+ row.time = row.time + ":00";
+ save(row).then(
+ () => {
+ this.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ done();
+ window.console.log(error);
+ }
+ );
+ },
+ },
+};
+</script>
diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue
index 9a71724..5903f13 100644
--- a/src/views/wel/index.vue
+++ b/src/views/wel/index.vue
@@ -5,13 +5,12 @@
<div class="farm-title">农场概览</div>
<div class="statis">
<div class="echarts-statis">
- <div id="alarmTypeProEcharts"></div>
- <div class="alarmTypeTotal">
- <div class="numAlarmType">
- <span>{{ alarmTypeTotal }}</span>
- </div>
- <div class="textAlarmType"><span>地块使用率</span></div>
- </div>
+ <el-progress
+ type="circle"
+ :percentage="100"
+ :stroke-width="15"
+ :width="150"
+ ></el-progress>
</div>
<div class="avue-statis">
<avue-data-display :option="option"></avue-data-display>
@@ -22,12 +21,16 @@
<div class="title">当前种养品种</div>
<div class="content">
<div class="farm" v-for="(item, index) in farmPlanList" :key="index">
- <div class="farm-img"><img :src="item.url" class="img"/></div>
- <div class="cai">{{item.strainName}}</div>
+ <div class="farm-img"><img :src="item.url" class="img" /></div>
+ <div class="cai">{{ item.strainName }}</div>
<div class="area">种植面积:371.13亩</div>
<div class="btn">
- <el-button plain size="small" @click="recovery(item)">采收</el-button>
- <el-button plain size="small">结束</el-button>
+ <el-button plain size="small" @click="recovery(item)"
+ >采收</el-button
+ >
+ <el-button plain size="small" @click="over(item.id)"
+ >结束</el-button
+ >
</div>
</div>
</div>
@@ -38,28 +41,38 @@
<div class="title">生产管理</div>
<div class="btn">
<div class="production-button">
- <div class="button">
- <img src="" class="img" />
+ <div class="button" style="background-color: #f1fae6" @click="land">
+ <div class="btn-img" style="background-color: #91CD4D">
+ <img src="../../../public/img/wel/land.png" class="img" />
+ </div>
<div class="text">圈地</div>
</div>
- <div class="button">
- <img src="" class="img" />
+ <div class="button" style="background-color: #edf9fe" @click="plant">
+ <div class="btn-img" style="background-color: #40C4FF">
+ <img src="../../../public/img/wel/plant.png" class="img" />
+ </div>
<div class="text">添加种养品种</div>
</div>
</div>
<div class="production-button">
- <div class="button">
- <img src="" class="img" />
+ <div class="button" style="background-color: #fbf0e9" @click="farming">
+ <div class="btn-img" style="background-color: #FFAC92">
+ <img src="../../../public/img/wel/farming.png" class="img" />
+ </div>
<div class="text">农事操作</div>
</div>
- <div class="button">
- <img src="" class="img" />
+ <div class="button" style="background-color: #ebf1fd" @click="stock">
+ <div class="btn-img" style="background-color: #80A6FA">
+ <img src="../../../public/img/wel/nongzi.png" class="img" />
+ </div>
<div class="text">农资入库</div>
</div>
</div>
<div class="production-button">
- <div class="button">
- <img src="" class="img" />
+ <div class="button" style="background-color: #eefaf1">
+ <div class="btn-img" style="background-color: #96DBAA">
+ <img src="../../../public/img/wel/xiaosou.png" class="img" />
+ </div>
<div class="text">销售农产品</div>
</div>
</div>
@@ -72,24 +85,44 @@
<div class="title">农资库存</div>
</div>
</div>
- <!-- 弹窗, 新增 / 修改 -->
+ <!-- 弹窗, 采收 -->
<recovery v-if="recoveryVisible" ref="recovery"></recovery>
+ <!-- 圈地 -->
+ <land v-if="landVisible" ref="land"></land>
+ <!-- 种养品 -->
+ <plant v-if="plantVisible" ref="plant" @refreshOnLoad="onLoad"></plant>
+ <!-- 农事操作 -->
+ <farming v-if="farmingVisible" ref="farming"></farming>
+ <!-- 农资入库 -->
+ <stock v-if="stockVisible" ref="stock"></stock>
</div>
</template>
<script>
import { mapGetters } from "vuex";
-import { getList } from "@/api/farmplant/farmplant";
+import { getList, update } from "@/api/farmplant/farmplant";
import recovery from "./recovery.vue";
+import land from "./land.vue";
+import plant from "./plant.vue";
+import farming from "./farming.vue";
+import stock from "./stock.vue";
export default {
components: {
recovery,
+ land,
+ plant,
+ farming,
+ stock
},
name: "wel",
data() {
return {
farmPlanList: [],
recoveryVisible: false,
+ landVisible: false,
+ plantVisible: false,
+ farmingVisible: false,
+ stockVisible: false,
option: {
span: 8,
data: [
@@ -125,7 +158,6 @@
},
created() {
//地块使用率统计
- // this.getAlarmTypeProEcharts();
this.onLoad();
},
methods: {
@@ -143,112 +175,62 @@
});
},
//采收
- recovery(data){
+ recovery(data) {
this.recoveryVisible = true;
this.$nextTick(() => {
this.$refs.recovery.init(data);
});
},
- //预警类型占比统计
- getAlarmTypeProEcharts(data) {
- // selAlarmDayAveragePro(data).then((res) => {
- // var that = this;
- // //计算总和
- // var data = [];
- // var startDate = this.dateTime[0];
- // var endDate = this.dateTime[1];
- // data.push(
- // { value: res.data.data[0], name: "一键求助" },
- // { value: res.data.data[1], name: "违禁品" },
- // { value: res.data.data[2], name: "红色健康码" },
- // { value: res.data.data[3], name: "体温异常" }
- // );
- // let echarts = require("echarts");
- // let myChart = echarts.init(
- // document.getElementById("alarmTypeProEcharts")
- // );
- // myChart.on("click", function (params) {
- // var data = [];
- // if (params.name == "一键求助") {
- // data.push({
- // startTime: startDate,
- // endTime: endDate,
- // waringType: "紧急求救",
- // });
- // window.parent.handleStartAlarm(data);
- // }
- // if (params.name == "违禁品") {
- // data.push({
- // startTime: startDate,
- // endTime: endDate,
- // decisioDiagramResult: "contraband",
- // });
- // window.parent.handleStartParcelKind(data);
- // }
- // if (params.name == "红色健康码") {
- // data.push({
- // startTime: startDate,
- // endTime: endDate,
- // type: 3,
- // });
- // window.parent.handleStartHealthcode(data);
- // }
- // if (params.name == "体温异常") {
- // data.push({
- // startTime: startDate,
- // endTime: endDate,
- // status: 1,
- // });
- // window.parent.handleStartAnimalHeat(data);
- // }
- // });
- // var colors = ["#FF9836", "#3fa1ff", "#F34A4A", "#8058A5"];
- // let option = {
- // color: colors,
- // title: {
- // textStyle: {
- // fontWeight: "normal",
- // fontSize: 16,
- // color: "#000",
- // },
- // left: "1%",
- // top: 25,
- // textAlign: "left",
- // text: "预警类型占比",
- // },
- // tooltip: {
- // trigger: "item",
- // },
- // grid: {
- // left: "1%",
- // right: "10%",
- // bottom: "5%",
- // top: "25%",
- // containLabel: true,
- // },
- // series: [
- // {
- // type: "pie",
- // radius: ["43%", "60%"],
- // center: ["45%", "53%"],
- // avoidLabelOverlap: false,
- // label: {
- // show: false,
- // position: "center",
- // },
- // labelLine: {
- // show: false,
- // },
- // data: data,
- // },
- // ],
- // };
- // myChart.setOption(option);
- // //建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
- // window.addEventListener("resize", function () {
- // myChart.resize();
- // });
- // });
+ //结束种植
+ over(id) {
+ var that = this;
+ this.$confirm("确定结束当前种植的农产品?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ const data = {
+ id: id,
+ status: 2,
+ };
+ return update(data);
+ })
+ .then(() => {
+ that.onLoad();
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ });
+ },
+ //圈地
+ land() {
+ this.landVisible = true;
+ this.$nextTick(() => {
+ this.$refs.land.init();
+ });
+ },
+ //种植
+ plant() {
+ this.plantVisible = true;
+ this.$nextTick(() => {
+ this.$refs.plant.init();
+ });
+ },
+ //农事操作
+ farming() {
+ this.farmingVisible = true;
+ this.$nextTick(() => {
+ this.$refs.farming.init();
+ });
+ },
+ //农资入库
+ stock() {
+ this.stockVisible = true;
+ this.$nextTick(() => {
+ this.$refs.stock.init();
+ });
},
},
};
@@ -294,6 +276,9 @@
height: 170px;
line-height: 170px;
margin: 0 auto;
+ margin-left: 50px;
+ text-align: center;
+ padding-top: 30px;
}
.avue-statis {
@@ -331,7 +316,7 @@
.farm {
width: 150px;
height: 180px;
- background-color: rgb(240, 230, 230);
+ background-color: #F7F9FB;
border-radius: 5px;
margin-left: 20px;
@@ -341,7 +326,7 @@
margin: 0 auto;
text-align: center;
- .img{
+ .img {
width: 50px;
height: 50px;
border-radius: 100px;
@@ -407,16 +392,25 @@
line-height: 50px;
align-content: center;
justify-content: center;
- background-color: aqua;
border-radius: 3px;
cursor: pointer;
- .img {
- width: 20px;
- height: 20px;
- background-color: antiquewhite;
+ .btn-img{
+ height: 25px;
+ line-height: 25px;
+ margin-top: 12px;
+ border-radius: 3px;
+
+
+ .img {
+ width: 25px;
+ height: 25px;
+ z-index: 999;
+ }
}
+
+
.text {
font-size: 14px;
margin-left: 5px;
diff --git a/src/views/wel/land.vue b/src/views/wel/land.vue
new file mode 100644
index 0000000..34994ea
--- /dev/null
+++ b/src/views/wel/land.vue
@@ -0,0 +1,322 @@
+<template>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ width="60%"
+ :visible.sync="visible"
+ >
+ <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ </avue-form>
+ </el-dialog>
+</template>
+
+<script>
+
+import { mapState } from "vuex";
+import { getLandList } from "@/api/land/land";
+import { getUserList } from "@/api/system/user";
+import { getStrainList } from "@/api/farmplant/strain";
+import { save } from "@/api/farmplant/recovery";
+export default {
+ data() {
+ return {
+ title:"采收/捕捞",
+ form: {},
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ gutter: 30,
+ column: [
+ {
+ label: "采收品种",
+ prop: "strainId",
+ span: 12,
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "strainName",
+ value: "id"
+ },
+ labelWidth: 145,
+ rules: [
+ {
+ required: true,
+ message: "请输入采收品种",
+ trigger: "blur",
+ },
+ ],
+ disabled:true,
+ },
+ {
+ label: "采收地块",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ prop: "landId",
+ type:"tree",
+ dicData: [],
+ props: {
+ label: "landName",
+ value: "id"
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择采收地块",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收重量",
+ prop: "weight",
+ tip: '公斤',
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ controls:false,
+ type:'number',
+ rules: [
+ {
+ required: true,
+ message: "请输入采收重量 公斤",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "作业方式",
+ prop: "jobWay",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "select",
+ value:"0",
+ dicData:[
+ {
+ label:"人工",
+ value:"0"
+ },
+ {
+ label:"机械",
+ value:"1"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请选择作业方式",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收时间",
+ prop: "time",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm",
+ valueFormat: "yyyy-MM-dd HH:mm",
+ rules: [
+ {
+ required: true,
+ message: "请选择采收时间",
+ trigger: "click",
+ },
+ ],
+ },
+ // {
+ // label: "采收产品",
+ // prop: "farmArea",
+ // span: 12,
+ // labelWidth: 145,
+ // width: 110,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入采收产品",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ {
+ label: "操作人",
+ prop: "operator",
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "realName",
+ value: "id",
+ },
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: true,
+ message: "请输入操作人",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "产品等级",
+ prop: "leaves",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ value:"0",
+ 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: "remark",
+ span: 24,
+ type:"textarea",
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: false,
+ message: "请输入备注",
+ trigger: "click",
+ },
+ ],
+ },
+ ],
+ },
+ visible: false,
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ },
+ methods: {
+ //计算当前时间
+ getNowTime(){
+ var date = new Date();
+ //年 getFullYear():四位数字返回年份
+ var year = date.getFullYear(); //getFullYear()代替getYear()
+ //月 getMonth():0 ~ 11
+ var month = date.getMonth() + 1;
+ //日 getDate():(1 ~ 31)
+ var day = date.getDate();
+ //时 getHours():(0 ~ 23)
+ var hour = date.getHours();
+ //分 getMinutes(): (0 ~ 59)
+ var minute = date.getMinutes();
+ //秒 getSeconds():(0 ~ 59)
+ var second = date.getSeconds();
+ //赋值
+ this.form['time'] = year + '-'
+ + this.addZero(month) + '-'
+ + this.addZero(day) + ' '
+ + this.addZero(hour) + ':'
+ + this.addZero(minute);
+ },
+ //小于10的拼接上0字符串
+ addZero(s) {
+ return s < 10 ? ('0' + s) : s;
+ },
+ //初始化
+ init(data) {
+ this.form = {
+ farmPlantId:data.id,
+ strainId:data.strainId,
+ landId:data.landId,
+ weight:data.weight,
+ leaves:'0',
+ jobWay:data.jobWay,
+ operator:data.operator,
+ remark:''
+ };
+ this.form['operator'] = this.userInfo.user_id;
+ //计算当前时间
+ this.getNowTime();
+ this.visible = true;
+ var that = this;
+ //获取农地数据
+ getLandList(this.userInfo.user_id).then((res) => {
+ if (res.data.code == 200) {
+ var landIdcolumn = that.findObject(that.option.column, "landId");
+ that.landList = res.data.data;
+ landIdcolumn.dicData = res.data.data;
+ }
+ });
+
+ //获取操作人
+ const user = {
+ tenantId: this.userInfo.tenant_id,
+ };
+ getUserList(user).then((res) => {
+ if (res.data.code == 200) {
+ var operatorcolumn = that.findObject(that.option.column, "operator");
+ operatorcolumn.dicData = res.data.data;
+ }
+ });
+ //获取农产品数据
+ getStrainList(0).then((res)=>{
+ if(res.data.code==200){
+ var strainId = that.findObject(that.option.column,"strainId");
+ strainId.dicData = res.data.data;
+ }
+ })
+ },
+ // 表单提交
+ submit(row,loading,done) {
+ var that = this;
+ row.time = row.time + ":00";
+ save(row).then(
+ () => {
+ this.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ done();
+ window.console.log(error);
+ }
+ );
+ },
+ },
+};
+</script>
diff --git a/src/views/wel/plant.vue b/src/views/wel/plant.vue
new file mode 100644
index 0000000..cd25766
--- /dev/null
+++ b/src/views/wel/plant.vue
@@ -0,0 +1,324 @@
+<template>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ width="60%"
+ :visible.sync="visible"
+ >
+ <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ </avue-form>
+ </el-dialog>
+</template>
+
+<script>
+
+import { mapState } from "vuex";
+import { getLandList } from "@/api/land/land";
+import { getStrainList } from "@/api/farmplant/strain";
+import { save } from "@/api/farmplant/farmplant";
+export default {
+ data() {
+ return {
+ title:"添加种养品种",
+ form: {},
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ gutter: 30,
+ column: [
+ {
+ label: "种养品",
+ prop: "strainId",
+ labelWidth:110,
+ type:"tree",
+ dicData: [],
+ props: {
+ label: "strainName",
+ value: "id"
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择种养品",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "品种",
+ prop: "varieties",
+ labelWidth:110,
+ rules: [
+ {
+ required: true,
+ message: "请输入种养品名称",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "种养品图片",
+ prop: "url",
+ type: "upload",
+ listType: "picture-img",
+ width: 100,
+ labelWidth:110,
+ display:false,
+ },
+ {
+ label: "所属地块",
+ prop: "landId",
+ type:"tree",
+ dicData: [],
+ props: {
+ label: "landName",
+ value: "id"
+ },
+ labelWidth:110,
+ rules: [
+ {
+ required: true,
+ message: "请选择所属地块",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "种植标准",
+ prop: "plant",
+ labelWidth:110,
+ type: "select",
+ value:"3",
+ dicData:[
+ {
+ label:"有机",
+ value:"0"
+ },
+ {
+ label:"绿色",
+ value:"1"
+ },
+ {
+ label:"无公害",
+ value:"2"
+ },
+ {
+ label:"普通",
+ value:"3"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请选择种植标准",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "种植方式",
+ prop: "plantingWay",
+ type: "select",
+ labelWidth:110,
+ value:"0",
+ dicData:[
+ {
+ label:"移栽",
+ value:"0"
+ },
+ {
+ label:"直播",
+ value:"1"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请选择种植方式",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "作业方式",
+ prop: "jobWay",
+ labelWidth:110,
+ value:"0",
+ type: "select",
+ dicData:[
+ {
+ label:"人工",
+ value:"0"
+ },
+ {
+ label:"机械",
+ value:"1"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请输入作业方式",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "移栽时间",
+ prop: "transplanTime",
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ labelWidth:110,
+ rules: [
+ {
+ required: true,
+ message: "请选择移栽时间",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "预计采收时间",
+ prop: "recoveryTime",
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ hide:true,
+ labelWidth:110,
+ rules: [
+ {
+ required: false,
+ message: "请选预计采收时间",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "预计亩产",
+ prop: "per",
+ labelWidth:110,
+ hide:true,
+ type:"number",
+ rules: [
+ {
+ required: false,
+ message: "请输入预计亩产",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "株数",
+ prop: "plantNumber",
+ labelWidth:110,
+ type:"number",
+ hide:true,
+ rules: [
+ {
+ required: false,
+ message: "请输入株数",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "株间距",
+ prop: "plantSpacing",
+ labelWidth:110,
+ type:"number",
+ hide:true,
+ rules: [
+ {
+ required: false,
+ message: "请输入株间距",
+ trigger: "blur",
+ },
+ ],
+ },
+ ],
+ },
+ visible: false,
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ },
+ methods: {
+ //计算当前时间
+ getNowTime(){
+ var date = new Date();
+ //年 getFullYear():四位数字返回年份
+ var year = date.getFullYear(); //getFullYear()代替getYear()
+ //月 getMonth():0 ~ 11
+ var month = date.getMonth() + 1;
+ //日 getDate():(1 ~ 31)
+ var day = date.getDate();
+ //时 getHours():(0 ~ 23)
+ var hour = date.getHours();
+ //分 getMinutes(): (0 ~ 59)
+ var minute = date.getMinutes();
+ //秒 getSeconds():(0 ~ 59)
+ var second = date.getSeconds();
+ //赋值
+ this.form['time'] = year + '-'
+ + this.addZero(month) + '-'
+ + this.addZero(day) + ' '
+ + this.addZero(hour) + ':'
+ + this.addZero(minute);
+ },
+ //小于10的拼接上0字符串
+ addZero(s) {
+ return s < 10 ? ('0' + s) : s;
+ },
+ //初始化
+ init() {
+ this.form['operator'] = this.userInfo.user_id;
+ //计算当前时间
+ this.getNowTime();
+ this.visible = true;
+ var that = this;
+ //获取农地数据
+ getLandList(this.userInfo.user_id).then((res)=>{
+ if(res.data.code==200){
+ var landIdcolumn = that.findObject(that.option.column,"landId");
+ that.landList = res.data.data;
+ landIdcolumn.dicData = res.data.data;
+ }
+ })
+ //获取农产品数据
+ getStrainList(0).then((res)=>{
+ if(res.data.code==200){
+ var strainId = that.findObject(that.option.column,"strainId");
+ strainId.dicData = res.data.data;
+ }
+ })
+ },
+ // 表单提交
+ submit(row,loading) {
+ var that = this;
+ row['farmType'] = 0;
+ row['createUser'] = this.userInfo.user_id;
+ save(row).then(
+ () => {
+ that.$emit("refreshOnLoad")
+ that.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ },
+ (error) => {
+ loading();
+ window.console.log(error);
+ }
+ );
+ },
+ },
+};
+</script>
diff --git a/src/views/wel/recovery.vue b/src/views/wel/recovery.vue
index 81e742a..34994ea 100644
--- a/src/views/wel/recovery.vue
+++ b/src/views/wel/recovery.vue
@@ -17,6 +17,8 @@
import { mapState } from "vuex";
import { getLandList } from "@/api/land/land";
import { getUserList } from "@/api/system/user";
+import { getStrainList } from "@/api/farmplant/strain";
+import { save } from "@/api/farmplant/recovery";
export default {
data() {
return {
@@ -29,8 +31,14 @@
column: [
{
label: "采收品种",
- prop: "farmName",
+ prop: "strainId",
span: 12,
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "strainName",
+ value: "id"
+ },
labelWidth: 145,
rules: [
{
@@ -39,6 +47,7 @@
trigger: "blur",
},
],
+ disabled:true,
},
{
label: "采收地块",
@@ -62,14 +71,17 @@
},
{
label: "采收重量",
- prop: "farmArea",
+ prop: "weight",
+ tip: '公斤',
span: 12,
labelWidth: 145,
width: 110,
+ controls:false,
+ type:'number',
rules: [
{
required: true,
- message: "请输入采收重量",
+ message: "请输入采收重量 公斤",
trigger: "click",
},
],
@@ -117,20 +129,20 @@
},
],
},
- {
- label: "采收产品",
- prop: "farmArea",
- span: 12,
- labelWidth: 145,
- width: 110,
- rules: [
- {
- required: true,
- message: "请输入采收产品",
- trigger: "click",
- },
- ],
- },
+ // {
+ // label: "采收产品",
+ // prop: "farmArea",
+ // span: 12,
+ // labelWidth: 145,
+ // width: 110,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入采收产品",
+ // trigger: "click",
+ // },
+ // ],
+ // },
{
label: "操作人",
prop: "operator",
@@ -153,7 +165,7 @@
},
{
label: "产品等级",
- prop: "leave",
+ prop: "leaves",
span: 12,
labelWidth: 145,
width: 110,
@@ -191,7 +203,7 @@
},
{
label: "备注",
- prop: "farmArea",
+ prop: "remark",
span: 24,
type:"textarea",
labelWidth: 145,
@@ -215,8 +227,47 @@
}),
},
methods: {
+ //计算当前时间
+ getNowTime(){
+ var date = new Date();
+ //年 getFullYear():四位数字返回年份
+ var year = date.getFullYear(); //getFullYear()代替getYear()
+ //月 getMonth():0 ~ 11
+ var month = date.getMonth() + 1;
+ //日 getDate():(1 ~ 31)
+ var day = date.getDate();
+ //时 getHours():(0 ~ 23)
+ var hour = date.getHours();
+ //分 getMinutes(): (0 ~ 59)
+ var minute = date.getMinutes();
+ //秒 getSeconds():(0 ~ 59)
+ var second = date.getSeconds();
+ //赋值
+ this.form['time'] = year + '-'
+ + this.addZero(month) + '-'
+ + this.addZero(day) + ' '
+ + this.addZero(hour) + ':'
+ + this.addZero(minute);
+ },
+ //小于10的拼接上0字符串
+ addZero(s) {
+ return s < 10 ? ('0' + s) : s;
+ },
//初始化
init(data) {
+ this.form = {
+ farmPlantId:data.id,
+ strainId:data.strainId,
+ landId:data.landId,
+ weight:data.weight,
+ leaves:'0',
+ jobWay:data.jobWay,
+ operator:data.operator,
+ remark:''
+ };
+ this.form['operator'] = this.userInfo.user_id;
+ //计算当前时间
+ this.getNowTime();
this.visible = true;
var that = this;
//获取农地数据
@@ -227,6 +278,7 @@
landIdcolumn.dicData = res.data.data;
}
});
+
//获取操作人
const user = {
tenantId: this.userInfo.tenant_id,
@@ -237,12 +289,33 @@
operatorcolumn.dicData = res.data.data;
}
});
+ //获取农产品数据
+ getStrainList(0).then((res)=>{
+ if(res.data.code==200){
+ var strainId = that.findObject(that.option.column,"strainId");
+ strainId.dicData = res.data.data;
+ }
+ })
},
// 表单提交
- dataFormSubmit() {
- this.dataForm["userId"] = this.userInfo.id;
- this.$refs["dataForm"].validate((valid) => {
- });
+ submit(row,loading,done) {
+ var that = this;
+ row.time = row.time + ":00";
+ save(row).then(
+ () => {
+ this.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ done();
+ window.console.log(error);
+ }
+ );
},
},
};
diff --git a/src/views/wel/stock.vue b/src/views/wel/stock.vue
new file mode 100644
index 0000000..34994ea
--- /dev/null
+++ b/src/views/wel/stock.vue
@@ -0,0 +1,322 @@
+<template>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ width="60%"
+ :visible.sync="visible"
+ >
+ <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ </avue-form>
+ </el-dialog>
+</template>
+
+<script>
+
+import { mapState } from "vuex";
+import { getLandList } from "@/api/land/land";
+import { getUserList } from "@/api/system/user";
+import { getStrainList } from "@/api/farmplant/strain";
+import { save } from "@/api/farmplant/recovery";
+export default {
+ data() {
+ return {
+ title:"采收/捕捞",
+ form: {},
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ gutter: 30,
+ column: [
+ {
+ label: "采收品种",
+ prop: "strainId",
+ span: 12,
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "strainName",
+ value: "id"
+ },
+ labelWidth: 145,
+ rules: [
+ {
+ required: true,
+ message: "请输入采收品种",
+ trigger: "blur",
+ },
+ ],
+ disabled:true,
+ },
+ {
+ label: "采收地块",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ prop: "landId",
+ type:"tree",
+ dicData: [],
+ props: {
+ label: "landName",
+ value: "id"
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择采收地块",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收重量",
+ prop: "weight",
+ tip: '公斤',
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ controls:false,
+ type:'number',
+ rules: [
+ {
+ required: true,
+ message: "请输入采收重量 公斤",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "作业方式",
+ prop: "jobWay",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "select",
+ value:"0",
+ dicData:[
+ {
+ label:"人工",
+ value:"0"
+ },
+ {
+ label:"机械",
+ value:"1"
+ },
+ ],
+ rules: [
+ {
+ required: true,
+ message: "请选择作业方式",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "采收时间",
+ prop: "time",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm",
+ valueFormat: "yyyy-MM-dd HH:mm",
+ rules: [
+ {
+ required: true,
+ message: "请选择采收时间",
+ trigger: "click",
+ },
+ ],
+ },
+ // {
+ // label: "采收产品",
+ // prop: "farmArea",
+ // span: 12,
+ // labelWidth: 145,
+ // width: 110,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入采收产品",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ {
+ label: "操作人",
+ prop: "operator",
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "realName",
+ value: "id",
+ },
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: true,
+ message: "请输入操作人",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "产品等级",
+ prop: "leaves",
+ span: 12,
+ labelWidth: 145,
+ width: 110,
+ value:"0",
+ 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: "remark",
+ span: 24,
+ type:"textarea",
+ labelWidth: 145,
+ width: 110,
+ rules: [
+ {
+ required: false,
+ message: "请输入备注",
+ trigger: "click",
+ },
+ ],
+ },
+ ],
+ },
+ visible: false,
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ },
+ methods: {
+ //计算当前时间
+ getNowTime(){
+ var date = new Date();
+ //年 getFullYear():四位数字返回年份
+ var year = date.getFullYear(); //getFullYear()代替getYear()
+ //月 getMonth():0 ~ 11
+ var month = date.getMonth() + 1;
+ //日 getDate():(1 ~ 31)
+ var day = date.getDate();
+ //时 getHours():(0 ~ 23)
+ var hour = date.getHours();
+ //分 getMinutes(): (0 ~ 59)
+ var minute = date.getMinutes();
+ //秒 getSeconds():(0 ~ 59)
+ var second = date.getSeconds();
+ //赋值
+ this.form['time'] = year + '-'
+ + this.addZero(month) + '-'
+ + this.addZero(day) + ' '
+ + this.addZero(hour) + ':'
+ + this.addZero(minute);
+ },
+ //小于10的拼接上0字符串
+ addZero(s) {
+ return s < 10 ? ('0' + s) : s;
+ },
+ //初始化
+ init(data) {
+ this.form = {
+ farmPlantId:data.id,
+ strainId:data.strainId,
+ landId:data.landId,
+ weight:data.weight,
+ leaves:'0',
+ jobWay:data.jobWay,
+ operator:data.operator,
+ remark:''
+ };
+ this.form['operator'] = this.userInfo.user_id;
+ //计算当前时间
+ this.getNowTime();
+ this.visible = true;
+ var that = this;
+ //获取农地数据
+ getLandList(this.userInfo.user_id).then((res) => {
+ if (res.data.code == 200) {
+ var landIdcolumn = that.findObject(that.option.column, "landId");
+ that.landList = res.data.data;
+ landIdcolumn.dicData = res.data.data;
+ }
+ });
+
+ //获取操作人
+ const user = {
+ tenantId: this.userInfo.tenant_id,
+ };
+ getUserList(user).then((res) => {
+ if (res.data.code == 200) {
+ var operatorcolumn = that.findObject(that.option.column, "operator");
+ operatorcolumn.dicData = res.data.data;
+ }
+ });
+ //获取农产品数据
+ getStrainList(0).then((res)=>{
+ if(res.data.code==200){
+ var strainId = that.findObject(that.option.column,"strainId");
+ strainId.dicData = res.data.data;
+ }
+ })
+ },
+ // 表单提交
+ submit(row,loading,done) {
+ var that = this;
+ row.time = row.time + ":00";
+ save(row).then(
+ () => {
+ this.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ done();
+ window.console.log(error);
+ }
+ );
+ },
+ },
+};
+</script>
--
Gitblit v1.9.3