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/task/task.vue |  687 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 474 insertions(+), 213 deletions(-)

diff --git a/src/views/task/task.vue b/src/views/task/task.vue
index ab46058..45bc5ec 100644
--- a/src/views/task/task.vue
+++ b/src/views/task/task.vue
@@ -27,10 +27,11 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot-scope="{ type, size, row }" slot="menu">
+      <template slot-scope="{ type, size, row}" slot="menu">
         <el-button
           icon="el-icon-circle-plus-outline"
           @click="chuli(row)"
+          v-show="row.status"
           :size="size"
           :type="type"
         >处理
@@ -64,16 +65,30 @@
 </template>
 
 <script>
-import {getList, getDetail, add, update, remove} from "@/api/task/task";
+import {getList, getDetail, add, update, remove, updatechuli} from "@/api/task/task";
 import {mapGetters} from "vuex";
 import {getLandList} from "@/api/land/land";
+import {selectStockFa} from "@/api/stockfactory/stockfactory";
 
 export default {
   data() {
+    const validateNum = (rule, value, callback) => {
+      if (!/^[1-9]\d*$/.test(value)) {
+        callback(new Error("请输入正整数"));
+      } else {
+        if (value>9999){
+          callback(new Error("限制为9999以内"));
+        }else {
+          callback();
+        }
+      }
+    };
+
     return {
       form: {},
       query: {},
       formchuli: {},
+      formxq: {},
       loading: true,
       page: {
         pageSize: 10,
@@ -95,14 +110,20 @@
         selection: true,
         dialogClickModal: false,
         gradeBoxVisible: false,
+        disabled:false,
+        refreshBtn:false,
+        columnBtn:false,
+        searchShowBtn:false,
+        menuWidth:300,
         column: [
           {
             label: "任务名称",
             prop: "taskName",
+            maxlength:200,
             rules: [{
               required: true,
               message: "请输入任务名称",
-              trigger: "blur"
+              trigger: ["blur","change"]
             }]
           },
           {
@@ -118,7 +139,7 @@
             rules: [{
               required: true,
               message: "请输入地块",
-              trigger: "blur"
+              trigger: ["blur","change"]
             }]
           },
           {
@@ -130,7 +151,7 @@
             rules: [{
               required: true,
               message: "请输入截止时间",
-              trigger: "blur"
+              trigger: ["blur","change"]
             }]
           },
           {
@@ -145,7 +166,36 @@
             rules: [{
               required: true,
               message: "请输入负责人",
-              trigger: "blur"
+              trigger: ["blur","change"]
+            }]
+          },
+          {
+            label: "投入品",
+            prop: "stockId",
+            hide: true,
+            type: "tree",
+            dicData:[],
+            // dicUrl: `/api/soldr/soldr/selectSol`,
+            props: {
+              label: "spn",
+              value: "id"
+            },
+            change: function (value) {
+              // console.log(value.value)
+            }
+          },
+          {
+            label: "农资量",
+            prop: "stockNum",
+            hide: true,
+            span: 6,
+            type: "number",
+            // labelWidth: 110,
+            display: false,
+            rules:[{
+              require:false,
+              trigger: ["blur","change"],
+              validator: validateNum
             }]
           },
           {
@@ -154,11 +204,11 @@
             span: 6,
             type: "switch",
             dicData: [{
-              label: '开启',
-              value: 0
-            }, {
               label: '关闭',
-              value: 1
+              value: "1"
+            }, {
+              label: '开启',
+              value: "0"
             }],
             mock: {
               type: 'dic'
@@ -167,20 +217,10 @@
             row: true,
           },
           {
-            label: "任务说明",
-            prop: "taskExplain",
-            type: "textarea",
-            span: 23,
-            rules: [{
-              required: true,
-              message: "请输入任务说明",
-              trigger: "blur"
-            }]
-          },
-          {
+            editDisplay: false,
             label: "任务状态",
             addDisplay: false,
-            editDisplay: false,
+            type: "select",
             prop: "status",
             dicData: [
               {
@@ -196,182 +236,29 @@
                 value: 2
               }
             ],
-            span: 23,
+            span: 24
           },
           {
-            label: "备注",
-            hide:true,
-            addDisplay: false,
-            editDisplay: false,
-            prop: "remark",
+            label: "任务说明",
+            prop: "taskExplain",
             type: "textarea",
-            span: 23,
+            span: 24,
+            rules: [{
+              required: true,
+              message: "请输入任务说明",
+              trigger: ["blur","change"]
+            }]
           },
           {
-            label: "图片",
-            hide:true,
+            label: "照片",
             prop: "tp",
-            addDisplay: false,
-            editDisplay: false,
-            rules: [{
-              required: true,
-              message: "请输入图片",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: "农事操作",
-            hide:true,
-            addDisplay: false,
-            editDisplay: false,
-            prop: "farm",
-            rules: [{
-              required: true,
-              message: "请输入农事操作",
-              trigger: "blur"
-            }]
-          },
-        ]
-      },
-      optionchuli: {
-        height: 'auto',
-        calcHeight: 30,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 6,
-        border: true,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [
-          {
-            label: "农资",
-            prop: "stockId1",
-            span: 23,
-            type: "select",
-            disabled: true,
-            dicUrl: "/api/stockfactory/stockfactory/selectStockFa",
-            props: {
-              label: "dictValue",
-              value: "dictKey"
-            },
-            rules: [{
-              required: true,
-              message: "请输入农资",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: "规格",
-            disabled: true,
-            span: 6,
-            prop: "spn",
-            addDisplay: false,
-          },
-          {
-            label: "规格",
-            display: false,
-            hide: true,
-            prop: "specs1",
-            span: 5,
-            viewDisplay: false,
-            rules: [{
-              required: true,
-              message: "请输入规格",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: "规格值1",
-            display: false,
-            hide: true,
-            prop: "specsVal1",
-            searchSpan: 4,
-            span: 6,
-            type: "select",
-            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockSpecs1",
-            props: {
-              label: "dictValue",
-              value: "dictKey"
-            },
-            dataType: "number",
-            search: true,
-          },
-          {
-            label: "类型",
-            display: false,
-            hide: true,
-            prop: "stockType1",
-          },
-          {
-            label: "规格值2",
-            display: false,
-            hide: true,
-            prop: "specsVal2",
-            searchSpan: 4,
-            span: 6,
-            type: "select",
-            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockSpecs2",
-            props: {
-              label: "dictValue",
-              value: "dictKey"
-            },
-            dataType: "number",
-            search: true,
-          },
-          {
-            label: "当前库存",
-            disabled: true,
-            span: 6,
-            prop: "num",
-          },
-          {
-            label: "入库数量",
-            type: "number",
-            span: 11,
-            prop: "amount1",
-          },
-          {
-            label: "入库类型",
-            prop: "type1",
-            type: "select",
-            span: 12,
-            searchSpan: 4,
-            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockPurchase",
-            props: {
-              label: "dictValue",
-              value: "dictKey"
-            },
-            dataType: "number",
-            search: true,
-            rules: [{
-              required: true,
-              message: "请输入入库类型",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: "入库时间",
-            prop: "time1",
-            type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd",
-            span: 11,
-            rules: [{
-              required: true,
-              message: "请输入入库时间",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: "单据、凭证照片",
-            prop: "picture1",
             type: "upload",
-            labelWidth: 145,
+            hide: true,
             dataType: "string",
             span: 24,
             limit: 5,
+            addDisplay: false,
+            editDisplay: false,
             listType: "picture-card",
             tip: "建议上传手机横屏拍摄的照片,宽高比16:9,最多上传5张",
             canvasOption: {
@@ -386,13 +273,308 @@
           },
           {
             label: "备注",
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            prop: "remark",
             type: "textarea",
-            prop: "remarks1",
+            span: 24,
+            maxlength:200,
+          },
+        ]
+      },
+      optionchuli: {
+        height: 'auto',
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogClickModal: false,
+        emptyBtn:false,
+        column: [
+          {
+            label: "任务名称",
+            prop: "taskName",
+            disabled: true,
+          },
+          {
+            label: "任务说明",
+            prop: "taskExplain",
+            type: "textarea",
+            span: 23,
+            disabled: true,
+          },
+          {
+            label: "地块",
+            prop: "landId",
+            type: "tree",
+            disabled: true,
+            dicData: [],
+            props: {
+              label: "landName",
+              value: "id"
+            },
+          },
+          {
+            label: "负责人",
+            prop: "taskUser",
+            disabled: true,
+            type: "tree",
+            dicUrl: `/api/blade-user/user-list`,
+            props: {
+              label: "account",
+              value: "id"
+            },
+            rules: [{
+              required: true,
+              message: "请输入负责人",
+              trigger: ["blur","change"]
+            }]
+          },
+          {
+            label: "截止时间",
+            prop: "time",
+            disabled: true,
+            span: 7,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            rules: [{
+              required: true,
+              message: "请输入截止时间",
+              trigger: ["blur","change"]
+            }]
+          },
+          {
+            label: "投入品",
+            prop: "stockId",
+            disabled: true,
+            hide: true,
+            type: "tree",
+            span: 10,
+            dicUrl: `/api/soldr/soldr/selectSol`,
+            props: {
+              label: "spn",
+              value: "id"
+            },
+            change: function (value) {
+              // console.log(value.value)
+            }
+          },
+          {
+            label: "农资量",
+            prop: "stockNum",
+            hide: true,
+            disabled: true,
+            span: 7,
+            type: "number",
+            labelWidth: 110,
+          },
+          {
+            label: "拍照照片",
+            prop: "type",
+            span: 6,
+            disabled: true,
+            type: "switch",
+            dicData: [{
+              label: '关闭',
+              value: "1"
+            }, {
+              label: '开启',
+              value: "0"
+            }],
+            mock: {
+              type: 'dic'
+            },
+            hide: true,
+            row: true,
+          },
+          {
+            label: "单据、凭证照片",
+            prop: "tp",
+            type: "upload",
+            labelWidth: 145,
+            dataType: "string",
+            span: 24,
+            limit: 5,
+            display: false,
+            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: "备注",
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            prop: "remark",
+            type: "textarea",
+            maxlength:200,
             span: 23,
           },
         ]
       },
-      gradeBoxVisiblechuli:false,
+      optionxq: {
+        height: 'auto',
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "任务名称",
+            prop: "taskName",
+            maxlength:200,
+            disabled: true,
+          },
+          {
+            label: "任务说明",
+            prop: "taskExplain",
+            type: "textarea",
+            maxlength:200,
+            span: 23,
+            disabled: true,
+          },
+          {
+            label: "地块",
+            prop: "landId",
+            type: "tree",
+            disabled: true,
+            dicData: [],
+            props: {
+              label: "landName",
+              value: "id"
+            },
+          },
+          {
+            label: "负责人",
+            prop: "taskUser",
+            disabled: true,
+            type: "tree",
+            dicUrl: `/api/blade-user/user-list`,
+            props: {
+              label: "account",
+              value: "id"
+            },
+            rules: [{
+              required: true,
+              message: "请输入负责人",
+              trigger: ["blur","change"]
+            }]
+          },
+          {
+            label: "截止时间",
+            prop: "time",
+            disabled: true,
+            span: 7,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            rules: [{
+              required: true,
+              message: "请输入截止时间",
+              trigger: ["blur","change"]
+            }]
+          },
+          {
+            label: "投入品",
+            prop: "stockId",
+            disabled: true,
+            hide: true,
+            type: "tree",
+            span: 10,
+            dicUrl: `/api/soldr/soldr/selectSol`,
+            props: {
+              label: "spn",
+              value: "stock_id1"
+            },
+            change: function (value) {
+              // console.log(value.value)
+            }
+          },
+          {
+            label: "农资量",
+            prop: "stockNum",
+            hide: true,
+            disabled: true,
+            span: 6,
+            type: "number",
+            labelWidth: 110,
+          },
+          {
+            label: "拍照照片",
+            prop: "type",
+            value:"1",
+            span: 6,
+            disabled: true,
+            type: "switch",
+            dicData: [{
+              label: '关闭',
+              value: "1"
+            }, {
+              label: '开启',
+              value: "0"
+            }],
+            mock: {
+              type: 'dic'
+            },
+            hide: true,
+            row: true,
+          },
+          {
+            label: "单据、凭证照片",
+            prop: "tp",
+            type: "upload",
+            labelWidth: 145,
+            dataType: "string",
+            disabled: true,
+            span: 24,
+            limit: 5,
+            display: false,
+            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: "备注",
+            disabled: true,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            prop: "remark",
+            type: "textarea",
+            maxlength:200,
+            span: 23,
+          },
+        ]
+      },
+      gradeBoxVisiblechuli: false,
+      gradeBoxVisiblexq: false,
       data: []
     };
   },
@@ -400,7 +582,7 @@
     this.initData();
   },
   computed: {
-    ...mapGetters(["permission", "userInfo"]),
+    ...mapGetters(["permission", "userInfo","$farmId"]),
     permissionList() {
       return {
         addBtn: this.vaildData(this.permission.task_add, false),
@@ -417,46 +599,110 @@
       return ids.join(",");
     }
   },
+  watch: {
+    "form.stockId": {
+      handler(val) {
+        var stockIdcolumn = this.findObject(this.option.column, "stockNum");
+        if (val != "") {
+          stockIdcolumn.display = true;
+        } else {
+          stockIdcolumn.display = false;
+        }
+      },
+      immediate: true,
+    },
+    '$farmId':{
+      handler (newName, oldName) {
+          this.getLandList()
+          this.getSoldrList()
+          this.query={}
+          this.onLoad(this.page)
+      }
+    }
+  },
   methods: {
-    //入库
+    //处理
     submitR(row, done, loading) {
-      that.gradeBoxVisible = false;
-      // var that = this;
-      // add1(row).then(
-      //   () => {
-      //     that.onLoad(this.page);
-      //     that.$refs.formR.resetFields();
-      //     that.$message({
-      //       type: "success",
-      //       message: "操作成功!"
-      //     });
-      //     that.gradeBoxVisible = false;
-      //
-      //     done();
-      //   },
-      //   error => {
-      //     window.console.log(error);
-      //     done();
-      //   }
-      // );
+      var that = this;
+      if(row.type == "0"){
+        if(row.tp == ""){
+          that.$message.warning("请上传照片")
+          done()
+          return
+        }
+      }
+      updatechuli(row).then(
+        () => {
+          that.onLoad(this.page);
+          that.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          that.gradeBoxVisiblechuli = false;
+          done();
+        },
+        error => {
+          loading();
+          window.console.log(error);
+          done();
+        }
+      );
     },
     // 处理
     chuli(row) {
-      this.formchuli = {};
+      this.formchuli = {
+        id: row.id,
+        taskName: row.taskName,
+        taskExplain: row.taskExplain,
+        landId: row.landId,
+        taskUser: row.taskUser,
+        time: row.time,
+        stockId: row.stockId,
+        tp: row.tp,
+        remark: row.remark,
+        stockNum: row.stockNum,
+        type: row.type
+
+      };
+      var tp = this.findObject(this.optionchuli.column, "tp");
+      if (row.type == "0") {
+        tp.display = true;
+      }else {
+        tp.display = false
+      }
       this.gradeBoxVisiblechuli = true;
     },
     initData() {
+      this.getLandList()
+      this.getSoldrList()
+    },
+    getLandList(){
       var that = this;
       //获取农地数据
-      getLandList(this.userInfo.dept_id).then((res) => {
+      getLandList(this.$farmId).then((res) => {
         if (res.data.code == 200) {
           var landIdcolumn = that.findObject(that.option.column, "landId");
+          var landIdColumnChuli = that.findObject(that.optionchuli.column,"landId")
           that.landList = res.data.data;
           landIdcolumn.dicData = res.data.data;
+          landIdColumnChuli.dicData = res.data.data
         }
       })
     },
+    getSoldrList(){
+      var that = this;
+      //获取农资
+      selectStockFa(this.$farmId).then((res) => {
+        if (res.data.code == 200) {
+          var stockIdcolumn = that.findObject(that.option.column, "stockId");
+          stockIdcolumn.dicData = res.data.data;
+        }
+      });
+    },
     rowSave(row, done, loading) {
+      if(row.tp.length<=0){
+        row.tp=""
+      }
       add(row).then(() => {
         this.onLoad(this.page);
         this.$message({
@@ -470,6 +716,14 @@
       });
     },
     rowUpdate(row, index, done, loading) {
+      if(row.stockNum<0){
+        this.$message({
+          type: "warning",
+          message: "农资量不能为负数!"
+        });
+        done();
+        return
+      }
       update(row).then(() => {
         this.onLoad(this.page);
         this.$message({
@@ -522,10 +776,16 @@
         });
     },
     beforeOpen(done, type) {
+      if(["add"].includes(type)){
+        this.option.disabled=false
+      }
       if (["edit", "view"].includes(type)) {
         getDetail(this.form.id).then(res => {
           this.form = res.data.data;
         });
+        if(type=="edit"){
+          this.form.status==0?this.option.disabled=true:this.option.disabled=false
+        }
       }
       done();
     },
@@ -557,6 +817,7 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
+      params["farmId"] = this.$farmId
       getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
         const data = res.data.data;
         this.page.total = data.total;

--
Gitblit v1.9.3