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/traceability/addTraceability.vue |  296 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 232 insertions(+), 64 deletions(-)

diff --git a/src/views/traceability/addTraceability.vue b/src/views/traceability/addTraceability.vue
index c113bf7..ce39dd9 100644
--- a/src/views/traceability/addTraceability.vue
+++ b/src/views/traceability/addTraceability.vue
@@ -4,6 +4,7 @@
     :modal-append-to-body="false"
     :append-to-body="true"
     :close-on-click-modal="false"
+    @close="close"
     width="60%"
     :visible.sync="visible"
     center
@@ -78,7 +79,13 @@
               </div>
               <div class="input">
                 <div class="left">重量/数量:</div>
-                <div class="rigth">{{ formLabelAlign.weight==''?'':formLabelAlign.weight+"公斤" }}</div>
+                <div class="rigth">
+                  {{
+                    formLabelAlign.weight == ""
+                      ? ""
+                      : formLabelAlign.weight + "公斤"
+                  }}
+                </div>
               </div>
               <div class="input">
                 <div class="left">产地:</div>
@@ -112,7 +119,7 @@
             ref="formLabelAlign"
           >
             <el-form-item label="农产品名称" prop="productName">
-              <el-input v-model="formLabelAlign.productName"></el-input>
+              <el-input maxlength="40" v-model="formLabelAlign.productName"></el-input>
             </el-form-item>
             <el-form-item label="开具日期" prop="createTime">
               <el-date-picker
@@ -123,27 +130,46 @@
               ></el-date-picker>
             </el-form-item>
             <el-form-item label="重量/数量" prop="weight">
-              <el-input v-model="formLabelAlign.weight"></el-input>
+              <el-input maxlength="9" v-model="formLabelAlign.weight"></el-input>
             </el-form-item>
             <el-form-item label="联系方式" prop="phone">
-              <el-input v-model="formLabelAlign.phone"></el-input>
+              <el-input maxlength="14" v-model="formLabelAlign.phone"></el-input>
             </el-form-item>
             <el-form-item label="产地" prop="space">
-              <el-input v-model="formLabelAlign.space"></el-input>
+              <el-input maxlength="50" v-model="formLabelAlign.space"></el-input>
             </el-form-item>
             <el-form-item label="合格证编号" prop="certificationCode">
-              <el-input v-model="formLabelAlign.certificationCode"></el-input>
+              <el-input maxlength="45" v-model="formLabelAlign.certificationCode"></el-input>
             </el-form-item>
             <el-form-item label="承诺依据" prop="according">
-              <el-checkbox-group v-model="formLabelAlign.according" @change="changeCheckBox">
-                <el-checkbox label="委托检测" name="type" @change="wtChange"></el-checkbox>
-                <el-checkbox label="自我检测" name="type" @change="zwChange"></el-checkbox>
-                <el-checkbox label="内部质量控制" name="type" @change="nbChange"></el-checkbox>
-                <el-checkbox label="自我承诺" name="type" @change="cnChange"></el-checkbox>
+              <el-checkbox-group
+                v-model="formLabelAlign.according"
+                @change="changeCheckBox"
+              >
+                <el-checkbox
+                  label="委托检测"
+                  name="type"
+                  @change="wtChange"
+                ></el-checkbox>
+                <el-checkbox
+                  label="自我检测"
+                  name="type"
+                  @change="zwChange"
+                ></el-checkbox>
+                <el-checkbox
+                  label="内部质量控制"
+                  name="type"
+                  @change="nbChange"
+                ></el-checkbox>
+                <el-checkbox
+                  label="自我承诺"
+                  name="type"
+                  @change="cnChange"
+                ></el-checkbox>
               </el-checkbox-group>
             </el-form-item>
             <el-form-item label="是否绑定溯源" prop="bind">
-              <el-switch v-model="isBind" active-text="是" inactive-text="否">
+              <el-switch v-model="isBind" active-text="是" inactive-text="否" @change="OnAutoStart">
               </el-switch>
             </el-form-item>
           </el-form>
@@ -151,39 +177,46 @@
       </div>
     </div>
     <div class="traceablility-table" v-if="isShow">
-        <avue-crud
-      :option="option"
-      :table-loading="loading"
-      :data="data"
-      :page.sync="page"
-      v-model="form"
-      ref="crud"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @selection-change="selectionChange"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-    ></avue-crud>
+      <avue-crud
+        :option="option"
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        v-model="form"
+        ref="crud"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+      ></avue-crud>
     </div>
     <div class="traceability-btn">
-        <el-button type="primary" @click="next" v-if="isBind">{{tip}}</el-button>
-        <el-button type="primary" @click="submit">提 交</el-button>
-      </div>
+      <el-button type="primary" @click="next" v-if="isBind">{{
+        tip
+      }}</el-button>
+      <!-- <el-button type="primary" @click="submit" v-if="isBtn">提 交</el-button> -->
+      <el-button type="primary" @click="submit0" v-if="!isBind">提 交</el-button>
+    </div>
   </el-dialog>
 </template>
 
 <script>
 import { mapState } from "vuex";
 import { save } from "@/api/traceability/traceability";
-import { getList} from "@/api/farmplant/recovery";
+import { getList } from "@/api/farmplant/recovery";
+import { getStrainList } from "@/api/farmplant/strain";
+import { getLandList,selectRecoveryLandList } from "@/api/land/land";
 export default {
   data() {
     return {
-      tip:"下一步",
+      selectionList: [],
+      tip: "下一步",
       isShow: false,
       isBind: false,
+      isBtn: 1,
       wtjc: false,
       zwjc: true,
       nbjc: false,
@@ -191,6 +224,7 @@
       radio: "1",
       title: "创建溯源码",
       form: {},
+      farm:{},
       formLabelAlign: {
         productName: "",
         createTime: "",
@@ -204,7 +238,7 @@
       visible: false,
       rules: {
         productName: [
-          { required: true, message: "请输入产品名称", trigger: "blur" },
+          { required: true, message: "请输入产品名称", trigger: ["blur","change"] },
         ],
         createTime: [
           {
@@ -216,7 +250,7 @@
         weight: [
           {
             required: true,
-            message: "请输入联系重置/数量",
+            message: "请输入数量",
             trigger: "change",
           },
         ],
@@ -235,10 +269,15 @@
             trigger: "change",
           },
         ],
-        space: [{ required: true, message: "请输入产地", trigger: "change" }],
+        space: [{ required: true, message: "请输入产地", trigger: ["blur","change"], }],
         certificationCode: [
-          { required: true, message: "请输入合格证编号", trigger: "blur" },
+          { required: true, message: "请输入合格证编号", trigger:["blur","change"], },
         ],
+      },
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
       },
       option: {
         tip: false,
@@ -247,13 +286,17 @@
         delBtn: false,
         viewBtn: false,
         addBtn: false,
-        menuWidth: 200,
+        menu: false,
         menuAlign: "center",
         align: "center",
-        selection: false,
+        selection: true,
         searchShow: true,
         searchMenuSpan: 6,
         column: [
+          {
+            label: "采收品种",
+            prop: "strainName",
+          },
           {
             label: "采收品种",
             prop: "strainId",
@@ -261,6 +304,7 @@
             searchSpan: 4,
             span: 12,
             type: "tree",
+            hide:true,
             dicData: [],
             props: {
               label: "strainName",
@@ -271,7 +315,7 @@
               {
                 required: true,
                 message: "请输入采收品种",
-                trigger: "blur",
+                trigger: ["blur","change"],
               },
             ],
             disabled: true,
@@ -336,10 +380,15 @@
             ],
           },
           {
+            label:"操作人",
+            prop:"realName"
+          },
+          {
             label: "操作人",
             prop: "operator",
             type: "tree",
             dicData: [],
+            hide:true,
             props: {
               label: "realName",
               value: "id",
@@ -362,10 +411,10 @@
   computed: {
     ...mapState({
       userInfo: (state) => state.user.userInfo,
+      $farmId: state => state.user.$farmId,
     }),
   },
   methods: {
-    changeCheckBox(data) {},
     //委托检测
     wtChange(data) {
       this.wtjc = data;
@@ -382,41 +431,53 @@
     cnChange(data) {
       this.zwcn = data;
     },
+    submit0(){
+      if (this.isBind) {
+        this.formLabelAlign["bind"] = "0";
+      } else {
+        this.formLabelAlign["bind"] = "1";
+      }
+      if(this.isBtn==1){
+          this.submit();
+      }
+      if(this.isBtn==3){
+          this.submits();
+      }
+    },
     //创建溯源码
     submit() {
       var that = this;
-      if(this.isBind){
-        this.formLabelAlign['bind'] = "0";
-      }else{
-        this.formLabelAlign['bind'] = "1";
-      }
-      
+      that.formLabelAlign['tenantId'] = this.userInfo.tenant_id;
+      that.formLabelAlign['deptId'] = this.$farmId;
       this.$refs["formLabelAlign"].validate((valid) => {
         if (valid) {
-          that.formLabelAlign.createTime = that.formLabelAlign.createTime+" 00:00:00";
+          that.formLabelAlign.createTime =
+            that.formLabelAlign.createTime + " 00:00:00";
           var according = [];
           //承诺依据 数据格式转换
-          that.formLabelAlign.according.forEach((item)=>{
-            if(item=="委托检测"){
+          that.formLabelAlign.according.forEach((item) => {
+            if (item == "委托检测") {
               according.push(0);
             }
-            if(item=="自我检测"){
+            if (item == "自我检测") {
               according.push(1);
             }
-            if(item=="内部质量控制"){
+            if (item == "内部质量控制") {
               according.push(2);
             }
-            if(item=="自我承诺"){
+            if (item == "自我承诺") {
               according.push(3);
             }
-          })
+          });
           that.formLabelAlign.according = according.join(",");
           //新增
           save(that.formLabelAlign).then(
             () => {
               that.$emit("refreshOnLoad");
-              that.$refs.formLabelAlign.resetFields();
+              that.close();
               that.visible = false;
+              that.isBtn = 1;
+              that.$refs.formLabelAlign.resetFields();
               this.$message({
                 type: "success",
                 message: "操作成功!",
@@ -432,17 +493,129 @@
         }
       });
     },
+    //是否绑定溯源码绑定事件
+    OnAutoStart(e){
+      if(e){
+        this.isBtn = 2;
+      }else{
+        this.isBtn = 1;
+      }
+    },
+    //创建溯源码
+    submits() {
+      var that = this;
+      if (this.selectionList.length > 0 && this.selectionList.length > 1) {
+        this.$message.warning("只能绑定一个溯源");
+        return;
+      }
+      if (this.selectionList.length ==1) {
+        that.formLabelAlign['recoveryId'] = this.selectionList[0].id;
+        that.formLabelAlign['bind'] = '0';
+      }
+      that.formLabelAlign['tenantId'] = this.userInfo.tenant_id;
+      that.formLabelAlign['deptId'] = this.$farmId;
+      //新增
+      save(that.formLabelAlign).then(
+        () => {
+          that.$emit("refreshOnLoad");
+          that.visible = false;
+          that.isBtn = 1;
+          that.close();
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        },
+        (error) => {
+          window.console.log(error);
+        }
+      );
+    },
+    //关闭弹窗
+    close() {
+      //清除数据,状态回归
+      this.isShow = false;
+      this.isBind = false;
+      this.isBtn = 1;
+      this.wtjc = false;
+      this.zwjc = true;
+      this.nbjc = false;
+      this.zwcn = false;
+      this.formLabelAlign = {
+        productName: "",
+        createTime: "",
+        according: ["自我检测"],
+        weight: "",
+        phone: "",
+        space: "",
+        certificationCode: "",
+        code: "",
+      };
+    },
     //下一步
     next() {
+      var that = this;
       this.$refs["formLabelAlign"].validate((valid) => {
         if (valid) {
+          this.formLabelAlign["bind"] = "0";
+          //设置时间
+          that.formLabelAlign.createTime =
+            that.formLabelAlign.createTime + " 00:00:00";
+          var according = [];
+          //承诺依据 数据格式转换
+          that.formLabelAlign.according.forEach((item) => {
+            if (item == "委托检测") {
+              according.push(0);
+            }
+            if (item == "自我检测") {
+              according.push(1);
+            }
+            if (item == "内部质量控制") {
+              according.push(2);
+            }
+            if (item == "自我承诺") {
+              according.push(3);
+            }
+          });
+          that.formLabelAlign.according = according.join(",");
+          //修改按钮状态
           this.isShow = true;
           this.isBind = false;
+          this.isBtn = 3;
+          //initFormData
+          that.initFormData();
         } else {
           console.log("error submit!!");
           return false;
         }
       });
+    },
+    //初始化表格数据
+    initFormData(){
+      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;
+      //     }
+      // })
+      //获取农地数据
+      selectRecoveryLandList(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;
+          }
+      })
+      //获取农产品数据
+      getStrainList(0).then((res)=>{
+          if(res.data.code==200){
+              var strainId = that.findObject(that.option.column,"strainId");
+              strainId.dicData = res.data.data;
+          }
+      })
     },
     //计算当前时间
     getNowTime() {
@@ -455,11 +628,7 @@
       var day = date.getDate();
       //赋值
       this.formLabelAlign.createTime =
-        year +
-        "-" +
-        this.addZero(month) +
-        "-" +
-        this.addZero(day);
+        year + "-" + this.addZero(month) + "-" + this.addZero(day);
     },
     //小于10的拼接上0字符串
     addZero(s) {
@@ -499,6 +668,7 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
+      params["farmId"] = this.$farmId
       getList(
         page.currentPage,
         page.pageSize,
@@ -561,12 +731,10 @@
       padding-top: 10px;
     }
   }
-
-  
 }
 
 .traceability-btn {
-    text-align: center;
-    margin-top: 30px;
-  }
+  text-align: center;
+  margin-top: 30px;
+}
 </style>

--
Gitblit v1.9.3