liuying
2024-04-24 8cdaf196ae1b48e743a63d4183c956f7583b730c
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
@@ -1,11 +1,95 @@
<template>
  <a-modal title="新增物料信息" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
  <a-modal title="新增基础物料信息" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <!-- tab @change="callback"-->
      <a-tabs default-active-key="1">
      <!-- tab -->
      <a-tabs default-active-key="1" @change="callbacktab">
        <a-tab-pane key="1" tab="基本信息">
          <add-form ref="addForm" @ok="handleOk" />
          <!-- <add-form ref="addFormRef" @ok="handleOk" /> -->
          <!-- 基本信息 -->
          <a-form :form="form">
            <a-form-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料名称"
                v-decorator="['materialName', { rules: [{ required: true, message: '请输入物料名称!' }] }]" />
            </a-form-item>
            <a-form-item label="物料编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料编号"
                v-decorator="['materialCode', { rules: [{ required: true, message: '请输入物料编号!' }] }]" />
            </a-form-item>
            <a-form-item label="ERP编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入ERP编号" v-decorator="['erpCode']" />
            </a-form-item>
            <a-form-item label="物料类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料类型名称" v-decorator="['materialTypeName']" />
            </a-form-item>
            <a-form-item label="物料类型描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料类型描述" v-decorator="['materialTypeDescr']" />
            </a-form-item>
            <a-form-item label="物料类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input-number placeholder="请输入物料类型" style="width: 100%" v-decorator="['materialType']" />
            </a-form-item>
            <a-form-item label="物料类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-select style="width: 100%" placeholder="请选择物料类型" v-decorator="['materialType']">
                <a-select-option v-for="(item, index) in materialTypeData" :key="index"
                  :value="Number(item.materialTypeCode)">{{ item.materialTypeName }}</a-select-option>
              </a-select>
            </a-form-item>
            <!-- <a-col :md="8" :sm="24">
              </a-col> -->
            <a-form-item label="物料组" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料组" v-decorator="['materialGroup']" />
            </a-form-item>
            <a-form-item label="ABC分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入ABC分类名称" v-decorator="['aBCClassName']" />
            </a-form-item>
            <a-form-item label="ABC分类" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input-number placeholder="请输入ABC分类" style="width: 100%" v-decorator="['aBCClass']" />
            </a-form-item>
            <a-form-item label="物料规格" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料规格" v-decorator="['materialSpec']" />
            </a-form-item>
            <a-form-item label="默认入库库位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入默认入库库位" v-decorator="['inPlaceCode']" />
            </a-form-item>
            <a-form-item label="库存单位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入库存单位" v-decorator="['materialUnit']" />
            </a-form-item>
            <a-form-item label="采购单位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入采购单位" v-decorator="['pOUnit']" />
            </a-form-item>
            <a-form-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入颜色" v-decorator="['color']" />
            </a-form-item>
            <a-form-item label="重量" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入重量" v-decorator="['weight']" />
            </a-form-item>
            <a-form-item label="标包数量" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入标包数量" v-decorator="['sNP']" />
            </a-form-item>
            <a-form-item label="换算率" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入换算率" v-decorator="['translateRate']" />
            </a-form-item>
            <a-form-item label="批次属性规则" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入批次属性规则" v-decorator="['batchRuleId']" />
            </a-form-item>
            <a-form-item label="控制属性规则" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入控制属性规则" v-decorator="['controlRuleId']" />
            </a-form-item>
            <a-form-item label="是否禁用" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" />
            </a-form-item>
            <a-form-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入描述" v-decorator="['materialDesc']" />
            </a-form-item>
          </a-form>
        </a-tab-pane>
        <a-tab-pane key="2" tab="控制属性" force-render>
          <add-control-rule ref="WmsControlRule" @ok="handleOk" />
@@ -14,23 +98,22 @@
          需求待定
        </a-tab-pane>
        <a-tab-pane key="4" tab="替代品管理">
          <add-form-sub ref="addFormWmsSubstituteGood" @ok="handleOk" />
          <add-form-sub ref="addFormWmsSubstituteGoodRef" @ok="handleOk" />
        </a-tab-pane>
        <a-tab-pane key="5" tab="客户">
          <add-form-base-customer ref="addFormBaseCustomer" @ok="handleOk" />
        </a-tab-pane>
        <a-tab-pane key="7" tab="包装关系">
          <add-form-container-packaging ref="addFormContainerPackaging" @ok="handleOk" />
        <a-tab-pane key="6" tab="包装关系">
          <add-form-container-packaging ref="addFormContainerPackagingRef" @ok="handleOk" />
        </a-tab-pane>
      </a-tabs>
    </a-spin>
  </a-modal>
</template>
<script>
import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage'
import { WmsMaterialAdd, GetAreas, GetStations, materialTypeDataList } from '@/api/modular/main/WmsMaterialManage'
import addForm from './tabItem/addForm.vue'
import addFormBaseCustomer from './tabItem/addFormBaseCustomer/addFormBaseCustomer.vue'
import addFormContainerPackaging from './tabItem/WmsContainerPackaging/addFormContainerPackaging.vue'
@@ -44,6 +127,9 @@
    addFormContainerPackaging,
    addFormSub,
    addControlRule
  },
  created() {
    this.materialTypeDataList()
  },
  data() {
    return {
@@ -67,17 +153,45 @@
    }
  },
  methods: {
    handleOk() {
    materialTypeDataList() {
      materialTypeDataList().then((d) => {
        this.materialTypeData = d.data || []
      }).catch(() => {
      })
    },
    callbacktab(e) {
      const {
        form: { validateFields }
      } = this
      // this.confirmLoading = true
//包装关系
      if (e == 6) {
        this.$nextTick(() => {
          let materialType = this.form.getFieldValue('materialType');
          // 调接口 传物料类型
          this.$refs.addFormContainerPackagingRef.initShow(materialType)
        })
      }
      // 替代品
      if (e == 4) {
        let materialCode = this.form.getFieldValue('materialCode');
        let materialName = this.form.getFieldValue('materialName');
        this.$refs.addFormWmsSubstituteGoodRef.initShow(materialCode, materialName)
      }
    },
    handleOk() { },
    // 初始化方法
    add(record) {
      this.visible = true
      this.$nextTick(() => {
        this.getSelects()
      })
      const materialTypeOption = this.$options
      this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
      // const materialTypeOption = this.$options
      // this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
      const inspectionMethodOption = this.$options
      this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection')
    },
@@ -119,25 +233,26 @@
            })
            values.stationNameParameter = values.stationNameParameterArr.join(',')
          }
          console.log(6666666666666)
          console.log()
          console.log(6666666666666 + '控制属性')
          console.log(this.$refs.WmsControlRule.selectedRows)
          var ControlRuleld = this.$refs.WmsControlRule.selectedRows[0].id;
          var ControlRuleld = this.$refs.WmsControlRule.selectedRows[0].id
          console.log(6666666666666 + '替代品')
          console.log(this.$refs.addFormWmsSubstituteGood.list)
          console.log(this.$refs.addFormWmsSubstituteGoodRef.list)
          console.log(6666666666666 + '客户档案集合')
          console.log(this.$refs.addFormBaseCustomer.list)
          console.log(6666666666666 + '包装关系')
          console.log(this.$refs.addFormContainerPackagingRef.list)
          var param = {
            value1: values,
            MaterialInput: values,
            ControlRuleld: ControlRuleld, //控制属性
            SubstituteGoodLis: this.$refs.addFormWmsSubstituteGoodRef.list, //替代品
            BaseCustomerList: this.$refs.addFormBaseCustomer.list, //客户档案集合
            SubstituteGoodLis: this.$refs.addFormWmsSubstituteGood.list, //替代品
            value5: {},
            value6: {},
            ContainerPackagingList: this.$refs.addFormContainerPackagingRef.list //包装关系
          }
          WmsMaterialAdd(param)
            .then(res => {