智慧农业后台管理页面
tangzy
2022-05-16 3c77ae9b1d9f4bfe3a25d054a7793dbcde0a7aba
src/views/stock/stock.vue
@@ -45,6 +45,15 @@
        >出库
        </el-button
        >
          <el-button
            icon="el-icon-circle-plus-outline"
            type="text"
            size="mini"
            @click="start(row)"
            :size="size"
          >农资记录
          </el-button
          >
      </template>
    </avue-crud>
    <el-dialog
@@ -60,11 +69,11 @@
    >
      <div>
        <avue-form
          ref="form"
          ref="formR"
          :option="option1"
          v-model="form"
          v-model="formR"
          @reset-change="emptytChange"
          @submit="submit"
          @submit="submitR"
        >
        </avue-form>
      </div>
@@ -82,11 +91,11 @@
    >
      <div>
        <avue-form
          ref="form"
          :option="option1"
          v-model="form"
          ref="formC"
          :option="option2"
          v-model="formC"
          @reset-change="emptytChange"
          @submit="submit"
          @submit="submitC"
        >
        </avue-form>
      </div>
@@ -96,12 +105,15 @@
<script>
import {getList, getDetail, add, update, remove} from "@/api/stock/stock";
import {add1} from "@/api/stockrecord/stockrecord";
import {mapGetters} from "vuex";
export default {
  data() {
    return {
      form: {},
      formC: {},
      formR: {},
      specsValue1: '',
      query: {},
      loading: true,
@@ -212,6 +224,7 @@
          {
            label: "入库数量",
            span: 6,
            type: "number",
            prop: "amount",
            rules: [{
              required: true,
@@ -295,13 +308,6 @@
            type: "textarea",
            prop: "remarks",
            span: 23,
            rules: [
              {
                required: true,
                message: "请输入备注",
                trigger: "blur",
              },
            ],
          },
        ]
      },
@@ -322,6 +328,7 @@
            prop: "stockId1",
            span: 23,
            type: "select",
            disabled: true,
            dicUrl: "/api/stockfactory/stockfactory/selectStockFa",
            props: {
              label: "dictValue",
@@ -334,39 +341,19 @@
            }]
          },
          {
            label: "数量",
            prop: "amount1",
          },
          {
            label: "时间",
            prop: "time1",
            rules: [{
              required: true,
              message: "请输入时间",
              trigger: "blur"
            }]
          },
          {
            label: "类型 (0:出库 1:入库)",
            prop: "type1",
            rules: [{
              required: true,
              message: "请输入类型 (0:出库 1:入库)",
              trigger: "blur"
            }]
          },
          {
            label: "操作人",
            prop: "operator1",
            rules: [{
              required: true,
              message: "请输入操作人",
              trigger: "blur"
            }]
            label: "规格",
            disabled: true,
            span: 6,
            prop: "spn",
            addDisplay: false,
          },
          {
            label: "规格",
            prop: "spn1",
            display: false,
            hide: true,
            prop: "specs1",
            span: 5,
            viewDisplay: false,
            rules: [{
              required: true,
              message: "请输入规格",
@@ -374,31 +361,271 @@
            }]
          },
          {
            label: "农资类型",
            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: "请输入农资类型",
              message: "请输入入库类型",
              trigger: "blur"
            }]
          },
          {
            label: "图片",
            prop: "picture1",
            label: "入库时间",
            prop: "time1",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            span: 11,
            rules: [{
              required: true,
              message: "请输入图片",
              message: "请输入入库时间",
              trigger: "blur"
            }]
          },
          {
            label: "单据、凭证照片",
            prop: "picture1",
            type: "upload",
            labelWidth: 145,
            dataType: "string",
            span: 24,
            limit: 5,
            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: "备注",
            type: "textarea",
            prop: "remarks1",
            span: 23,
          },
        ]
      },
      option2: {
        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: "请输入备注",
              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=stockPurchase1",
            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,
            dataType: "string",
            span: 24,
            limit: 5,
            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: "备注",
            type: "textarea",
            prop: "remarks1",
            span: 23,
          },
        ]
      },
@@ -426,11 +653,13 @@
    }
  },
  methods: {
    submit(row, done, loading) {
    //入库
    submitR(row, done, loading) {
      var that = this;
      updateGrade(row).then(
      add1(row).then(
        () => {
          that.$refs.form.resetFields();
          that.onLoad(this.page);
          that.$refs.formR.resetFields();
          that.$message({
            type: "success",
            message: "操作成功!"
@@ -445,19 +674,56 @@
        }
      );
    },
    //出库
    submitC(row, done, loading) {
      var that = this;
      add1(row).then(
        () => {
          that.onLoad(this.page);
          that.$refs.formC.resetFields();
          that.$message({
            type: "success",
            message: "操作成功!"
          });
          that.gradeBoxVisible1 = false;
          done();
        },
        error => {
          window.console.log(error);
          done();
        }
      );
    },
    // 往入库页面填充数据
    modifiedGrades(row) {
      this.form = {
      this.formR = {
        id: null,
        stockId1: row.stockId,
        spn: row.spn,
        num: row.amount,
        type1: row.type,
        time1: row.time,
        specs1: row.specs,
        specsVal1: row.specsValue1,
        specsVal2: row.specsValue1,
        stockType1: 1,
      };
      this.gradeBoxVisible = true;
    },
    modifiedGrades1(row) {
      this.form = {
      this.formC = {
        id: null,
        stockId: row.stockId,
        stockId1: row.stockId,
        spn: row.spn,
        num: row.amount,
        type1: row.type,
        time1: row.time,
        specs1: row.specs,
        specsVal1: row.specsValue1,
        specsVal2: row.specsValue1,
        stockType1: 0,
      };
      this.gradeBoxVisible1 = true;
@@ -535,6 +801,13 @@
      }
      done();
    },
    //农事操作
    start(row) {
      this.$router.push({
        path: `/stockrecord`,
        query: row
      });
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);