智慧农业后台管理页面
guoshilong
2022-11-08 082613d446e29e4ec1c16bfaa52345106a498b23
src/views/statistics/stock.vue
@@ -5,8 +5,8 @@
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      :summary-method="getSummaries"
      v-model="form"
      ref="crud"
      @row-update="rowUpdate"
@@ -18,7 +18,6 @@
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
@@ -32,13 +31,15 @@
  remove,
  save,
} from "@/api/farmplant/farmproductstock";
import { getStrainList } from "@/api/farmplant/strain";
import { mapGetters } from "vuex";
import {pagenum} from "@/api/stock/stock";
import {mapGetters} from "vuex";
export default {
  data() {
    return {
      visible: true,
      form: {},
      farm:{},
      query: {},
      loading: true,
      excelBox: false,
@@ -66,7 +67,8 @@
        selectionFixed: false,
        expandFixed: false,
        menuFixed: false,
        menu:false,
        menu: false,
        header:false,
        sumColumnList: [
          {
            label: "合计",
@@ -79,72 +81,62 @@
        ],
        column: [
          {
            label: "农产品名称",
            prop: "strainId",
            label: "农资名称",
            prop: "agrname",
            //labelWidth: 145,
          },
          {
            label: "厂家",
            prop: "facname",
            // labelWidth: 145,
          }, {
            label: "入库量合计",
            prop: "rknum",
            //labelWidth: 145,
          },
          {
            label: "采购入库",
            prop: "cgnum",
            //labelWidth: 145,
          },
          {
            label: "调拨入库",
            prop: "dbrknum",
            //labelWidth: 145,
          },
          {
            label: "出库量合计",
            prop: "cknum",
            //labelWidth: 145,
          },
          {
            label: "领用出库",
            prop: "lycknum",
            //labelWidth: 145,
          },
          {
            label: "调拨出库",
            prop: "dbcknum",
            //labelWidth: 145,
          },
          {
            label: "报废出库",
            prop: "bfcknum",
            //labelWidth: 145,
          },
          {
            label: "筛选时间段",
            prop: "releaseTimeRange",
            span: 12,
            hide: true,
            search: true,
            searchSpan: 4,
            searchLabelWidth: 100,
            type: "tree",
            dicData: [],
            props: {
              label: "strainName",
              value: "id",
            },
            labelWidth: 145,
            rules: [
              {
                required: true,
                message: "请输入农产品名称",
                trigger: "blur",
              },
            ],
            disabled: true,
          },
          {
            label: "农产品图片",
            prop: "url",
            span: 12,
            addDisplay: false,
            editDisplay: false,
            type: "upload",
            dataType: "string",
            listType: "picture-card",
            labelWidth: 145,
            rules: [
              {
                required: true,
                message: "请上传农产品图片",
                trigger: "click",
              },
            ],
          },
          {
            label: "库存重量/公斤",
            prop: "weight",
            tip: "公斤",
            span: 12,
            labelWidth: 145,
            controls: false,
            type: "number",
            rules: [
              {
                required: true,
                message: "请输入库存重量 公斤",
                trigger: "click",
              },
            ],
          },
          {
            label: "采收时间",
            prop: "time",
            addDisplay: false,
            editDisplay: false,
            span: 12,
            labelWidth: 145,
            type: "datetime",
            format: "yyyy-MM-dd HH:mm",
            valueFormat: "yyyy-MM-dd HH:mm",
            searchSpan: 7,
            searchLabelWidth: 110,
            searchRange: true,
            searchValue: [this.getStartTime(), this.getEndTime()],
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            rules: [
              {
                required: true,
@@ -153,73 +145,15 @@
              },
            ],
          },
          // {
          //   label: "操作人",
          //   prop: "operator",
          //   type: "tree",
          //   dicData: [],
          //   props: {
          //     label: "realName",
          //     value: "id",
          //   },
          //   span: 12,
          //   labelWidth: 145,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入操作人",
          //       trigger: "click",
          //     },
          //   ],
          // },
          {
            label: "产品等级",
            prop: "leaves",
            span: 12,
            labelWidth: 145,
            search: true,
            searchSpan: 4,
            type: "select",
            dicData: [
              {
                label: "一等品",
                value: "0",
              },
              {
                label: "二等品",
                value: "1",
              },
              {
                label: "三等品",
                value: "2",
              },
              {
                label: "四等品",
                value: "3",
              },
              {
                label: "五等品",
                value: "4",
              },
            ],
            rules: [
              {
                required: true,
                message: "请输入产品等级",
                trigger: "click",
              },
            ],
          },
        ],
        ]
      },
      data: [],
    };
  },
  created() {
    this.initData();
  },
  }
  ,
  computed: {
    ...mapGetters(["permission", "userInfo"]),
    ...
      mapGetters(["permission", "userInfo","$farmId"]),
    // permissionList() {
    //   return {
    //     addBtn: this.vaildData(this.permission.social_add, true),
@@ -234,20 +168,110 @@
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    }
    ,
  }
  ,
  watch: {
    '$farmId':{
      handler (newName, oldName) {
        this.farm.id = newName
        this.onLoad(this.page)
      }
    }
  },
  mounted() {},
  created () {
    this.farm.id = this.$farmId
  },
  mounted() {
    var params = {
      startTime: this.getStartTime(),
      endTime: this.getEndTime(),
    }
    this.onLoad(this.page, params);
  }
  ,
  methods: {
    initData() {
      var that = this;
      //获取农产品数据
      getStrainList(0).then((res) => {
        if (res.data.code == 200) {
          var strainId = that.findObject(that.option.column, "strainId");
          strainId.dicData = res.data.data;
    //合计计算
    getSummaries(param) {
      const {columns, data} = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        if (index == 1) {
          return;
        }
        const values = data.map((item) => Number(item[column.property]));
        if (!values.every((value) => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          // sums[index] += " 公斤";
          var x = String(sums[index]).indexOf(".")+1;//得到小数点的位置
          var y = String(sums[index]).length - x;//小数点的位数
          if(y>4){
            sums[index] = sums[index].toFixed(3)
          }
          sums[index] += " 公斤";
        } else {
          sums[index] = "N/A";
        }
      });
      return sums;
    },
    getStartTime() {
      var myDate = new Date();
      var year = myDate.getFullYear();
      //获取当前月份(0-11,0代表1月,所以要加1);
      var month = myDate.getMonth() + 1;
      //获取当前日(1-31)
      var day = myDate.getDate();
      if (month < 10) {
        month = "0" + month;
      }
      if (day >= 0 && day <= 9) {
        day = "0" + day;
      }
      var firstDay = year + "-" + month + "-01";
      // this.query['startTime'] = firstDay;
      return firstDay;
    },
    getEndTime() {
      var myDate = new Date();
      var year = myDate.getFullYear();
      //获取当前月份(0-11,0代表1月,所以要加1);
      var month = myDate.getMonth() + 1;
      //获取当前日(1-31)
      var day = myDate.getDate();
      if (month < 10) {
        month = "0" + month;
      }
      if (day >= 0 && day <= 9) {
        day = "0" + day;
      }
      var thisDay = year + "-" + month + "-" + day;
      // this.query['endTime'] = thisDay;
      return thisDay;
    },
    // initData() {
    //   var that = this;
    //   //获取农产品数据
    //   getStrainList(0).then((res) => {
    //     if (res.data.code == 200) {
    //       var strainId = that.findObject(that.option.column, "strainId");
    //       strainId.dicData = res.data.data;
    //     }
    //   });
    // }
    // ,
    //新增
    rowSave(row, done, loading) {
      row["strainType"] = 0;
@@ -265,7 +289,8 @@
          window.console.log(error);
        }
      );
    },
    }
    ,
    //修改
    rowUpdate(row, index, done, loading) {
      update(row).then(
@@ -282,7 +307,8 @@
          console.log(error);
        }
      );
    },
    }
    ,
    //删除
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -300,7 +326,8 @@
            message: "操作成功!",
          });
        });
    },
    }
    ,
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
@@ -322,7 +349,8 @@
          });
          this.$refs.crud.toggleSelection();
        });
    },
    }
    ,
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
@@ -330,49 +358,75 @@
        });
      }
      done();
    },
    }
    ,
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    }
    ,
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      this.query={}
      done();
    },
    }
    ,
    selectionChange(list) {
      this.selectionList = list;
    },
    }
    ,
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    }
    ,
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    }
    ,
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    }
    ,
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      params.deptId= this.farm.id;
      this.loading = true;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      const {releaseTimeRange} = this.query;
      let values = {
        ...params,
      };
      if (releaseTimeRange) {
        values = {
          ...params,
          startTime: releaseTimeRange[0],
          endTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
        values.farmId = this.$farmId
      }
      pagenum(page.currentPage, page.pageSize, values
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.data = this.data.filter((e)=>{
          return (e.bfcknum == e.cgnum == e.dbcknum == e.dbrknum == e.lycknum == e.rknum == 0)
        })
        this.loading = false;
        this.selectionClear();
      });
    },
  },
};
    }
    ,
  }
  ,
}
;
</script>
<style>