智慧农业后台管理页面
guoshilong
2022-11-08 082613d446e29e4ec1c16bfaa52345106a498b23
src/views/wel/stock.vue
@@ -15,14 +15,13 @@
<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 { add } from "@/api/stock/stock";
import {limitNumInt} from "@/util/validate";
export default {
  data() {
    return {
      title:"采收/捕捞",
      title:"农资入库",
      form: {},
      option: {
        emptyBtn: false,
@@ -30,193 +29,131 @@
        gutter: 30,
        column: [
          {
            label: "采收品种",
            prop: "strainId",
            span: 12,
            type: "tree",
            dicData: [],
            label: "农资",
            prop: "stockId",
            span: 24,
            type: "select",
            dicUrl: "/api/stockfactory/stockfactory/selectStockFa",
            props: {
              label: "strainName",
              value: "id"
              label: "dictValue",
              value: "dictKey"
            },
            labelWidth: 145,
            rules: [
              {
                required: true,
                message: "请输入采收品种",
                trigger: "blur",
              },
            ],
            disabled:true,
            rules: [{
              required: true,
              message: "请输入农资",
              trigger: ["blur","change"]
            }]
          },
          {
            label: "采收地块",
            span: 12,
            labelWidth: 145,
            width: 110,
            prop: "landId",
            type:"tree",
            dicData: [],
            label: "规格",
            type: "number",
            prop: "specs",
            span: 7,
            rules: [{
              required: true,
              // message: "请输入规格",
              trigger: ["blur","change"],
              validator: limitNumInt
            }]
          },
          {
            label: "规格值1",
            prop: "specsValue1",
            span: 6,
            value:"0",
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockSpecs1",
            props: {
              label: "landName",
              value: "id"
              label: "dictValue",
              value: "dictKey"
            },
            rules: [
              {
                required: true,
                message: "请选择采收地块",
                trigger: "click",
              },
            ],
            dataType: "number",
          },
          {
            label: "采收重量",
            prop: "weight",
            tip: '公斤',
            span: 12,
            labelWidth: 145,
            width: 110,
            controls:false,
            type:'number',
            rules: [
              {
                required: true,
                message: "请输入采收重量 公斤",
                trigger: "click",
              },
            ],
            label: "规格值2",
            prop: "specsValue2",
            value:"0",
            span: 6,
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockSpecs2",
            props: {
              label: "dictValue",
              value: "dictKey"
            },
            dataType: "number",
          },
          {
            label: "作业方式",
            prop: "jobWay",
            span: 12,
            labelWidth: 145,
            width: 110,
            label: "入库数量",
            span: 6,
            type: "number",
            prop: "amount",
            rules: [{
              required: true,
              message: "请输入入库数量",
              trigger: ["blur","change"],
              validator: limitNumInt
            }]
          },
          {
            label: "入库类型",
            prop: "type",
            type: "select",
            value:"0",
            dicData:[
              {
                label:"人工",
                value:"0"
              },
              {
                label:"机械",
                value:"1"
              },
            ],
            rules: [
              {
                required: true,
                message: "请选择作业方式",
                trigger: "click",
              },
            ],
            span: 12,
            searchSpan: 4,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stockPurchase",
            props: {
              label: "dictValue",
              value: "dictKey"
            },
            dataType: "number",
            rules: [{
              required: true,
              message: "请输入入库类型",
              trigger: ["blur","change"]
            }]
          },
          {
            label: "采收时间",
            label: "入库时间",
            prop: "time",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            span: 12,
            labelWidth: 145,
            width: 110,
            type: "datetime",
            format: "yyyy-MM-dd HH:mm",
            valueFormat: "yyyy-MM-dd HH:mm",
            rules: [
              {
                required: true,
                message: "请选择采收时间",
                trigger: "click",
              },
            ],
            rules: [{
              required: true,
              message: "请输入入库时间",
              trigger: ["blur","change"]
            }]
          },
          // {
          //   label: "采收产品",
          //   prop: "farmArea",
          //   span: 12,
          //   labelWidth: 145,
          //   width: 110,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入采收产品",
          //       trigger: "click",
          //     },
          //   ],
          // },
          {
            label: "操作人",
            prop: "operator",
            type: "tree",
            dicData: [],
            props: {
              label: "realName",
              value: "id",
            label: "单据、凭证照片",
            prop: "picture",
            type: "upload",
            labelWidth: 120,
            dataType: "string",
            span: 24,
            limit: 5,
            listType: "picture-card",
            tip: "建议上传手机横屏拍摄的照片,宽高比16:9,最多上传5张",
            canvasOption: {
              text: "",
              ratio: 1.0,
            },
            span: 12,
            labelWidth: 145,
            width: 110,
            rules: [
              {
                required: true,
                message: "请输入操作人",
                trigger: "click",
              },
            ],
          },
          {
            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",
              },
            ],
            propsHttp: {
              res: "data",
              url: "url"
            },
            action: "/api/blade-resource/oss/endpoint/put-files"
          },
          {
            label: "备注",
            prop: "remark",
            type: "textarea",
            prop: "remarks",
            maxlength:200,
            span: 24,
            type:"textarea",
            labelWidth: 145,
            width: 110,
            rules: [
              {
                required: false,
                message: "请输入备注",
                trigger: "click",
              },
            ],
          },
        ],
        ]
      },
      visible: false,
    };
@@ -224,6 +161,7 @@
  computed: {
    ...mapState({
      userInfo: (state) => state.user.userInfo,
      $farmId: state =>state.user.$farmId
    }),
  },
  methods: {
@@ -243,73 +181,39 @@
        //秒 getSeconds():(0 ~ 59)
        var second = date.getSeconds();
        //赋值
        this.form['time'] = year + '-'
                          + this.addZero(month) + '-'
                          + this.addZero(day) + ' '
                          + this.addZero(hour) + ':'
                          + this.addZero(minute);
        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:''
      };
      this.form['operator'] = this.userInfo.user_id;
    init() {
      this.visible = true;
      if (this.$refs.form){
        this.$refs.form.resetForm()
      }
      //计算当前时间
      this.getNowTime();
      this.visible = true;
      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;
        }
      });
      //获取操作人
      const user = {
        tenantId: this.userInfo.tenant_id,
      };
      getUserList(user).then((res) => {
        if (res.data.code == 200) {
          var operatorcolumn = that.findObject(that.option.column, "operator");
          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) {
    submit(row,done) {
      var that = this;
      row.time = row.time + ":00";
      save(row).then(
      row['tenantId'] = this.userInfo.tenant_id;
      row['deptId'] = this.$farmId;
      add(row).then(
        () => {
          this.$refs.form.resetFields();
          that.$refs.form.resetFields();
          that.visible = false;
          this.$message({
            type: "success",
            message: "操作成功!",
          });
           done();
          that.$emit("refreshOnLoad")
          done();
        },
        (error) => {
          done();