From 082613d446e29e4ec1c16bfaa52345106a498b23 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Nov 2022 09:03:49 +0800
Subject: [PATCH] 农事操作隐藏后四个,地图模式2d改为3d
---
src/views/wel/farming.vue | 437 ++++++++++++++++++++++++++++++-----------------------
1 files changed, 247 insertions(+), 190 deletions(-)
diff --git a/src/views/wel/farming.vue b/src/views/wel/farming.vue
index 34994ea..94e69e2 100644
--- a/src/views/wel/farming.vue
+++ b/src/views/wel/farming.vue
@@ -7,142 +7,181 @@
width="60%"
:visible.sync="visible"
>
- <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ <avue-form ref="form" v-if="visible" 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";
+import {mapState} from "vuex";
+import {getLandList} from "@/api/land/land";
+import {getUserList} from "@/api/system/user";
+import {getDetail} from "@/api/soldr/soldr";
+import {selectStockFa} from "@/api/stockfactory/stockfactory";
+import {save} from "@/api/farm/farmingrecord";
+
export default {
data() {
+ const validateNum = (rule, value, callback) => {
+ if (!/^[1-9]\d*$/.test(value)) {
+ callback(new Error("请输入正数"));
+ } else {
+ callback();
+ }
+ };
+
return {
- title:"采收/捕捞",
- form: {},
+ title: "农事操作",
+ form: {
+ num: ''
+ },
option: {
emptyBtn: false,
submitText: "保存",
gutter: 30,
column: [
{
- label: "采收品种",
+ label: "农事类型",
+ prop: "type",
+ type: "select",
+ labelWidth: 110,
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=farmingType",
+ dicFormatter:(res)=>{
+ let typeList = res.data.filter(e=>{
+ return e.dictKey<10
+ })
+ return typeList
+ },
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择农事类型",
+ trigger: ["blur","change"]
+ },
+ ],
+ },
+ {
+ label: "所属地块",
+ prop: "landId",
+ type: "tree",
+ dicData: [],
+ props: {
+ label: "landName",
+ value: "id",
+ },
+ cascader: ["strainId"],
+ labelWidth: 110,
+ rules: [
+ {
+ required: true,
+ message: "请选择所属地块",
+ trigger: ["blur","change"]
+ },
+ ],
+ },
+ {
+ label: "农产品",
prop: "strainId",
- span: 12,
+ span: 7,
type: "tree",
dicData: [],
props: {
label: "strainName",
- value: "id"
+ value: "id",
},
- labelWidth: 145,
+ dicUrl: `/api/farmPlant/strain-tree?landId={{key}}`,
+ labelWidth: 110,
rules: [
{
required: true,
- message: "请输入采收品种",
- trigger: "blur",
+ message: "请选择农产品",
+ trigger: ["blur","change"]
},
],
- disabled:true,
},
{
- label: "采收地块",
- span: 12,
- labelWidth: 145,
- width: 110,
- prop: "landId",
- type:"tree",
+ label: "农资",
+ prop: "stockId",
+ type: "tree",
+ span: 8,
dicData: [],
props: {
- label: "landName",
- value: "id"
+ label: "spn",
+ value: "id",
},
+ labelWidth: 110,
rules: [
{
required: true,
- message: "请选择采收地块",
- trigger: "click",
+ message: "请选择农资",
+ trigger: ["blur","change"]
},
],
+ display: false,
+ change: res => {
+ this.getDe(res)
+ },
},
{
- label: "采收重量",
- prop: "weight",
- tip: '公斤',
- span: 12,
- labelWidth: 145,
- width: 110,
- controls:false,
- type:'number',
- rules: [
- {
- required: true,
- message: "请输入采收重量 公斤",
- trigger: "click",
- },
- ],
+ label: "待使用数量",
+ prop: "num",
+ disabled: true,
+ span: 5,
+ display: false,
+ },
+ {
+ label: "使用数量",
+ type: "number",
+ prop: "snum",
+ span: 6,
+ display: false,
+ rules:[{required: false, validator: validateNum, trigger: 'blur'}]
},
{
label: "作业方式",
prop: "jobWay",
- span: 12,
- labelWidth: 145,
- width: 110,
+ span: 6,
+ labelWidth: 110,
type: "select",
- value:"0",
- dicData:[
+ value: '0',
+ dicData: [
{
- label:"人工",
- value:"0"
+ label: "人工",
+ value: "0",
},
{
- label:"机械",
- value:"1"
+ label: "机械",
+ value: "1",
},
],
rules: [
{
required: true,
- message: "请选择作业方式",
- trigger: "click",
+ message: "请输入作业方式",
+ trigger: ["blur","change"]
},
],
},
{
- label: "采收时间",
+ label: "农事操作时间",
prop: "time",
- span: 12,
- labelWidth: 145,
- width: 110,
- type: "datetime",
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ labelWidth: 110,
rules: [
{
required: true,
- message: "请选择采收时间",
- trigger: "click",
+ message: "请选择农事操作时间",
+ trigger: ["blur","change"]
},
],
},
- // {
- // label: "采收产品",
- // prop: "farmArea",
- // span: 12,
- // labelWidth: 145,
- // width: 110,
- // rules: [
- // {
- // required: true,
- // message: "请输入采收产品",
- // trigger: "click",
- // },
- // ],
- // },
{
label: "操作人",
prop: "operator",
@@ -152,67 +191,47 @@
label: "realName",
value: "id",
},
- span: 12,
- labelWidth: 145,
- width: 110,
+ labelWidth: 110,
rules: [
{
- required: true,
- message: "请输入操作人",
- trigger: "click",
+ required: false,
+ message: "请选择操作人",
+ trigger: ["blur","change"]
},
],
},
{
- 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: "tp",
+ type: "upload",
+ labelWidth: 110,
+ dataType: "string",
+ span: 24,
+ limit: 5,
+ listType: "picture-card",
+ tip: "建议上传手机横屏拍摄的照片,宽高比16:9,最多上传5张",
+ canvasOption: {
+ text: "",
+ ratio: 1.0,
+ },
+ propsHttp: {
+ res: "data",
+ url: "url"
+ },
+ action: "/api/blade-resource/oss/endpoint/put-files"
},
{
label: "备注",
- prop: "remark",
+ prop: "remarks",
+ type: "textarea",
+ maxlength:200,
span: 24,
- type:"textarea",
- labelWidth: 145,
- width: 110,
+ labelWidth: 110,
rules: [
{
required: false,
message: "请输入备注",
- trigger: "click",
+ trigger: ["blur","change"]
},
],
},
@@ -224,61 +243,87 @@
computed: {
...mapState({
userInfo: (state) => state.user.userInfo,
+ $farmId: state => state.user.$farmId,
}),
},
- 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);
+ watch: {
+ "form.type": {
+ handler(val) {
+ var stockIdcolumn = this.findObject(this.option.column, "stockId");
+ var numColumn = this.findObject(this.option.column,"num")
+ var snumColumn = this.findObject(this.option.column,"snum")
+ if(typeof val =="undefined"){
+ stockIdcolumn.display = false
+ numColumn.display =false
+ snumColumn.display = false
+ }
+ else if (val === "0" || val == 4 || val == 5 || val == 8 || val == 9) {
+ stockIdcolumn.display = true;
+ } else {
+ stockIdcolumn.display = false;
+ }
+ },
+ immediate: true,
},
- //小于10的拼接上0字符串
+ },
+ methods: {
+ getDe(val) {
+ if (val.value!='') {
+ getDetail(val.value,this.$farmId).then(res => {
+ var amount1 = res.data.data.amount1;
+ this.form.num = amount1
+ var numz = this.findObject(this.option.column, "num");
+ var numzs = this.findObject(this.option.column, "snum");
+ numz.display = true;
+ numzs.display = true;
+ });
+ }
+ },
+//计算当前时间
+ 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);
+ }
+ ,
+//小于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:''
- };
+ }
+ ,
+//初始化
+ init() {
+ var that = this;
+ this.visible = true;
+ if (this.$refs.form){
+ this.$refs.form.resetForm()
+ }
this.form['operator'] = this.userInfo.user_id;
//计算当前时间
this.getNowTime();
- this.visible = true;
- var that = this;
//获取农地数据
- getLandList(this.userInfo.user_id).then((res) => {
+ getLandList(this.$farmId).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,
@@ -289,34 +334,46 @@
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);
+ //获取农资
+ selectStockFa(this.$farmId).then((res) => {
+ if (res.data.code == 200) {
+ var stockIdcolumn = that.findObject(that.option.column, "stockId");
+ stockIdcolumn.dicData = res.data.data;
}
- );
- },
- },
-};
+ });
+ }
+ ,
+// 表单提交
+ submit(row, done) {
+ var that = this;
+ row['tenantId'] = this.userInfo.tenant_id;
+ row['deptId'] = this.$farmId;
+ if (row.snum > row.num || row.snum <=0) {
+ this.$message.warning("使用数量小于等于0或大于库存数量");
+ done();
+ }
+ else {
+ save(row).then(
+ () => {
+ that.$refs.form.resetFields();
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ that.$emit("refreshOnLoad")
+ done();
+ },
+ (error) => {
+ done();
+ window.console.log(error);
+ }
+ );
+ }
+ }
+ ,
+ }
+ ,
+}
+;
</script>
--
Gitblit v1.9.3