智慧农业后台管理页面
guoshilong
2022-11-08 082613d446e29e4ec1c16bfaa52345106a498b23
src/views/wel/farming.vue
@@ -7,23 +7,35 @@
    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 { selectStockFa } from "@/api/stockfactory/stockfactory";
import { save } from "@/api/farm/farmingrecord";
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: "保存",
@@ -35,6 +47,12 @@
            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",
@@ -43,7 +61,7 @@
              {
                required: true,
                message: "请选择农事类型",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -56,12 +74,33 @@
              label: "landName",
              value: "id",
            },
            cascader: ["strainId"],
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请选择所属地块",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
          {
            label: "农产品",
            prop: "strainId",
            span: 7,
            type: "tree",
            dicData: [],
            props: {
              label: "strainName",
              value: "id",
            },
            dicUrl: `/api/farmPlant/strain-tree?landId={{key}}`,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请选择农产品",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -69,27 +108,47 @@
            label: "农资",
            prop: "stockId",
            type: "tree",
            span: 8,
            dicData: [],
            props: {
              label: "dictValue",
              value: "dictKey",
              label: "spn",
              value: "id",
            },
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请选择农资",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
            display: false,
            change: res => {
              this.getDe(res)
            },
          },
          {
            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: 6,
            labelWidth: 110,
            type: "select",
            value:'0',
            value: '0',
            dicData: [
              {
                label: "人工",
@@ -104,7 +163,7 @@
              {
                required: true,
                message: "请输入作业方式",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -119,7 +178,7 @@
              {
                required: true,
                message: "请选择农事操作时间",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -137,7 +196,7 @@
              {
                required: false,
                message: "请选择操作人",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -165,13 +224,14 @@
            label: "备注",
            prop: "remarks",
            type: "textarea",
            maxlength:200,
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: false,
                message: "请输入备注",
                trigger: "blur",
                trigger: ["blur","change"]
              },
            ],
          },
@@ -183,13 +243,21 @@
  computed: {
    ...mapState({
      userInfo: (state) => state.user.userInfo,
      $farmId: state => state.user.$farmId,
    }),
  },
  watch: {
    "form.type": {
      handler(val) {
        var stockIdcolumn = this.findObject(this.option.column, "stockId");
        if (val === "0" || val == 4 || val == 5 || val == 8 || val == 9) {
        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;
@@ -199,40 +267,57 @@
    },
  },
  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);
    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;
        });
      }
    },
    //小于10的拼接上0字符串
//计算当前时间
    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() {
      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;
@@ -250,32 +335,45 @@
        }
      });
      //获取农资
      selectStockFa().then((res) => {
      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) {
    }
    ,
// 表单提交
    submit(row, done) {
      var that = this;
      save(row).then(
        () => {
          that.$refs.form.resetFields();
          that.visible = false;
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          done();
          window.console.log(error);
        }
      );
    },
  },
};
      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>