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