From 9bf5dc5bc503172bf71b898434d8a23362aa789b Mon Sep 17 00:00:00 2001
From: liuying <1427574514@qq.com>
Date: 周四, 25 4月 2024 16:03:50 +0800
Subject: [PATCH] bug

---
 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue |  356 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 296 insertions(+), 60 deletions(-)

diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
index dc89591..e076ebf 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
@@ -1,56 +1,156 @@
 <template>
-  <a-modal
-    title="鏂板鐗╂枡淇℃伅"
-    :width="900"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    @ok="handleSubmit"
-    @cancel="handleCancel"
-  >
+  <a-modal :title="title" :width="1300" :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" /> -->
+          <!-- 鍩烘湰淇℃伅  layout="inline"  layout="vertical" -->
+          <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="璇疯緭鍏RP缂栧彿" 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">
+              <a-select style="width: 100%" placeholder="璇烽�夋嫨鐗╂枡绫诲瀷" v-decorator="['materialType']">
+                <a-select-option v-for="(item, index) in materialTypeData" :key="index" :value="item.materialTypeCode">{{
+                  item.materialTypeName }}</a-select-option>
+              </a-select>
+            </a-form-item>
+
+            <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="璇疯緭鍏BC鍒嗙被鍚嶇О" v-decorator="['aBCClassName']" />
+            </a-form-item> -->
+            <a-form-item label="ABC鍒嗙被" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+              <!-- <a-input-number placeholder="璇疯緭鍏BC鍒嗙被" style="width: 100%" v-decorator="['aBCClass']" /> -->
+
+              <a-select style="width: 100%" placeholder="璇烽�夋嫨ABC鍒嗙被" v-decorator="['aBCClass']">
+                <a-select-option v-for="(item, index) in materialTypeData2" :key="index" :value="Number(item.code)">{{
+                  item.name }}</a-select-option>
+              </a-select>
+
+
+
+            </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-select style="width: 100%" placeholder="璇烽�夋嫨搴撳瓨鍗曚綅" v-decorator="['materialUnit']">
+                <a-select-option v-for="(item, index) in selectTypeData1" :key="index" :value="item.unitCode">{{
+                  item.unitName }}</a-select-option>
+              </a-select>
+
+
+            </a-form-item>
+            <a-form-item label="閲囪喘鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+              <!-- <a-input placeholder="璇疯緭鍏ラ噰璐崟浣�" v-decorator="['pOUnit']" /> -->
+
+              <a-select style="width: 100%" placeholder="璇烽�夋嫨閲囪喘鍗曚綅" v-decorator="['pOUnit']">
+                <a-select-option v-for="(item, index) in selectTypeData2" :key="index" :value="item.unitCode">{{
+                  item.unitName }}</a-select-option>
+              </a-select>
+
+
+            </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>
-          Content of Tab Pane 2
+          <add-control-rule v-if="visible" ref="WmsControlRuleRef" />
         </a-tab-pane>
         <a-tab-pane key="3" tab="鎵规灞炴��">
-          Content of Tab Pane 3
+          闇�姹傚緟瀹�
         </a-tab-pane>
         <a-tab-pane key="4" tab="鏇夸唬鍝佺鐞�">
-          <add-form-sub ref="addFormWmsSubstituteGood" @ok="handleOk" />
+          <add-form-sub v-if="visible" ref="addFormWmsSubstituteGoodRef" />
         </a-tab-pane>
         <a-tab-pane key="5" tab="瀹㈡埛">
-          <add-form-base-customer ref="addFormBaseCustomer" @ok="handleOk" />
+          <add-form-base-customer v-if="visible" ref="addFormBaseCustomer" />
         </a-tab-pane>
 
-        <a-tab-pane key="7" tab="鍖呰鍏崇郴">
-          <add-form-container-packaging ref="addFormContainerPackaging" @ok="handleOk" />
-        </a-tab-pane>
+        <!-- <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 addForm from './tabItem/addForm.vue'
-import addFormBaseCustomer from './tabItem/addFormBaseCustomer.vue'
-import addFormContainerPackaging from './tabItem/addFormContainerPackaging.vue'
-import addFormSub from './tabItem/addFormWmsSubstituteGood.vue'
 
+import {
+  WmsMaterialAdd, WmsMaterialEdit, WmsMaterialDetailList, materialTypeDataList
+} from '@/api/modular/main/WmsBase/WmsMaterialManage'
+import addForm from './tabItem/addForm.vue'
+import addFormBaseCustomer from './tabItem/addFormBaseCustomer/addFormBaseCustomer.vue'
+import addFormContainerPackaging from './tabItem/WmsContainerPackaging/addFormContainerPackaging.vue'
+import addFormSub from './tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue'
+import addControlRule from './tabItem/WmsControlRule/addForm.vue'
+import { WmsUnitPage } from '@/api/modular/main/WmsBase/WmsUnitManage'
 export default {
   components: {
     addForm,
     addFormBaseCustomer,
     addFormContainerPackaging,
-    addFormSub
+    addFormSub,
+    addControlRule
+  },
+  created() {
+    this.materialTypeDataList()
+    const materialTypeOption = this.$options
+    this.materialTypeData2 = materialTypeOption.filters['dictData']('abc_class_type')
   },
   data() {
     return {
+      title: '',
       labelCol: {
         // xs: { span: 24 },
         // sm: { span: 5 }
@@ -67,23 +167,97 @@
       stationNameParameterData: [],
       visible: false,
       confirmLoading: false,
-      form: this.$form.createForm(this)
+      form: this.$form.createForm(this),
+      materialTypeData2: [],
+      selectTypeData2: [],
+      selectTypeData1: []
     }
   },
   methods: {
-    handleOk(){
+    // 鐗╂枡绫诲瀷
+    materialTypeDataList() {
+      materialTypeDataList().then((d) => {
+        this.materialTypeData = d.data || []
+      }).catch(() => {
+
+      })
+      // 搴撳瓨鍗曚綅
+      WmsUnitPage().then((d) => {
+        this.selectTypeData1 = d.data.rows || []
+      }).catch(() => {
+
+      })
+
+      // 閲囪喘鍗曚綅
+      WmsUnitPage().then((d) => {
+        this.selectTypeData2 = d.data.rows || []
+      }).catch(() => {
+
+      })
 
     },
+    callbacktab(e) {
+
+      //鍖呰鍏崇郴
+      // if (e == 6) {
+      //   this.$nextTick(() => {
+      //     let materialType = this.form.getFieldValue('materialType');
+      //     // 璋冩帴鍙� 浼犵墿鏂欑被鍨�
+      //     this.$refs.addFormContainerPackagingRef.initShow(materialType)
+      //   })
+      // }
+      // 鏇夸唬鍝�
+      if (e == 4) {
+        this.$nextTick(() => {
+          // let materialCode = this.form.getFieldValue('materialCode');
+          // let materialName = this.form.getFieldValue('materialName');
+          this.$refs.addFormWmsSubstituteGoodRef.initShowSubstituteGood()
+        })
+      }
+    },
+    handleOk() { },
     // 鍒濆鍖栨柟娉�
-    add(record) {
+    add(record, type) {
       this.visible = true
-      this.$nextTick(() => {
-        this.getSelects()
-      })
-      const materialTypeOption = this.$options
-      this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
-      const inspectionMethodOption = this.$options
-      this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection')
+      if (record) {//缂栬緫
+        if (type == '璇︽儏') {
+          this.title = '璇︽儏鐗╂枡淇℃伅璇︽儏';// 璇︽儏
+        } else {
+          this.title = '缂栬緫鍩虹鐗╂枡淇℃伅';
+        }
+        this.$nextTick(() => {
+          this.form.setFieldsValue({
+            ...record
+          })
+        })
+        WmsMaterialDetailList({
+          id: record.id
+        })
+          .then(res => {
+            if (res.success) {
+
+              console.log(res)
+              this.$nextTick(() => {
+                if (res.data.controlRuleDetailList && res.data.controlRuleDetailList.length > 0) {
+                  this.$refs.WmsControlRuleRef.form.setFieldsValue({
+                    ...res.data.controlRuleDetailList[0]
+                  })
+                }
+                this.$refs.addFormWmsSubstituteGoodRef.list = res.data.substituteGoodList || []
+                this.$refs.addFormBaseCustomer.list = res.data.baseCustomerList || []
+              })
+
+            } else {
+              this.$message.error('璇︽儏澶辫触锛�' + JSON.stringify(res.message))
+            }
+          })
+          .finally(res => {
+            this.confirmLoading = false
+          })
+
+      } else {
+        this.title = '鏂板鍩虹鐗╂枡淇℃伅';// 鏂板
+      }
     },
     getSelects() {
       if (this.areaNameParameterData.length <= 0 || this.stationNameParameterData.length <= 0) {
@@ -106,37 +280,88 @@
       const {
         form: { validateFields }
       } = this
-      this.confirmLoading = true
+
       validateFields((errors, values) => {
         if (!errors) {
-          if (this.$getObjectType(values.areas) === 'array') {
-            values.areaIds = values.areas.join(',')
-            values.areaNameParameterArr = values.areas.map(val => {
-              return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData')
+          // if (this.$getObjectType(values.areas) === 'array') {
+          //   values.areaIds = values.areas.join(',')
+          //   values.areaNameParameterArr = values.areas.map(val => {
+          //     return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData')
+          //   })
+          //   values.areaNameParameter = values.areaNameParameterArr.join(',')
+          // }
+          // if (this.$getObjectType(values.stations) === 'array') {
+          //   values.stationIds = values.stations.join(',')
+          //   values.stationNameParameterArr = values.stations.map(val => {
+          //     return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData')
+          //   })
+          //   values.stationNameParameter = values.stationNameParameterArr.join(',')
+          // }
+
+          console.log(6666666666666 + '鎺у埗灞炴��')
+          var ControlRuleld = this.$refs.WmsControlRuleRef.form.getFieldValue('id') || ''
+
+          let SubstituteGoodList = []
+          if (this.$refs.addFormWmsSubstituteGoodRef && this.$refs.addFormWmsSubstituteGoodRef.list.length > 0) {
+            SubstituteGoodList = this.$refs.addFormWmsSubstituteGoodRef.list
+            SubstituteGoodList.forEach(item => {
+              item.materialName = this.form.getFieldValue('materialName')
+              item.materialCode = this.form.getFieldValue('materialCode')
             })
-            values.areaNameParameter = values.areaNameParameterArr.join(',')
           }
-          if (this.$getObjectType(values.stations) === 'array') {
-            values.stationIds = values.stations.join(',')
-            values.stationNameParameterArr = values.stations.map(val => {
-              return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData')
-            })
-            values.stationNameParameter = values.stationNameParameterArr.join(',')
+          console.log(6666666666666 + '鏇夸唬鍝�')
+
+
+          let BaseCustomerList = [];
+          if (this.$refs.addFormBaseCustomer && this.$refs.addFormBaseCustomer.list.length > 0) {
+            BaseCustomerList = this.$refs.addFormBaseCustomer.list
+
           }
-          WmsMaterialAdd(values)
-            .then(res => {
-              if (res.success) {
-                this.$message.success('鏂板鎴愬姛')
+          console.log(6666666666666 + '寰�鏉ュ叧绯婚泦鍚�')
+
+          // console.log(6666666666666 + '鍖呰鍏崇郴')
+          // console.log(this.$refs.addFormContainerPackagingRef.list)
+
+          var param = {
+            MaterialInput: values,
+            ControlRuleld: ControlRuleld, //鎺у埗灞炴��
+            SubstituteGoodList: SubstituteGoodList, //鏇夸唬鍝�
+            BaseCustomerList: BaseCustomerList, //寰�鏉ュ叧绯婚泦鍚�
+            // ContainerPackagingList: this.$refs.addFormContainerPackagingRef.list //鍖呰鍏崇郴
+          }
+          this.confirmLoading = true
+          if (this.title == '鏂板鍩虹鐗╂枡淇℃伅') {
+            WmsMaterialAdd(param)
+              .then(res => {
+                if (res.success) {
+                  this.$message.success('鏂板鎴愬姛')
+                  this.confirmLoading = false
+                  this.$emit('ok', values)
+                  this.handleCancel()
+                } else {
+                  this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
+                }
+              })
+              .finally(res => {
                 this.confirmLoading = false
-                this.$emit('ok', values)
-                this.handleCancel()
-              } else {
-                this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
-              }
-            })
-            .finally(res => {
-              this.confirmLoading = false
-            })
+              })
+          } else {
+            WmsMaterialEdit(param)
+              .then(res => {
+                if (res.success) {
+                  this.$message.success('缂栬緫鎴愬姛')
+                  this.confirmLoading = false
+                  this.$emit('ok', values)
+                  this.handleCancel()
+                } else {
+                  this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
+                }
+              })
+              .finally(res => {
+                this.confirmLoading = false
+              })
+          }
+
         } else {
           this.confirmLoading = false
         }
@@ -155,7 +380,18 @@
     handleCancel() {
       this.form.resetFields()
       this.visible = false
+      // this.$refs.WmsControlRule.form.resetFields()
+      // this.$refs.addFormWmsSubstituteGoodRef.list =[]
+      // this.$refs.addFormWmsSubstituteGoodRef.list =[]
+
     }
   }
 }
 </script>
+
+<style lang="less" scoped>
+.ant-row.ant-form-item {
+  width: 50% !important;
+  display: inline-block;
+}
+</style>

--
Gitblit v1.9.3