| 
					
				 | 
			
			
				@@ -17,42 +17,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <el-row class="my-row"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-col :span="8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <el-form-item label="名称" prop="materialId" :rules="{required: false, message: '名称不能为空', trigger: 'blur'}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-input v-if="display || item.buttonType === '1'" placeholder="请输入" v-model="item.materialName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input v-if="item.buttonType === '1'" placeholder="请输入" v-model="item.materialName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           :disabled="display" style="width: 200px; margin-right: 10px"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-select v-else v-model="item.materialId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           remote 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           :remote-method="remoteMaterial" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           @change="onMaterialChanged(item)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           placeholder="请选择" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           style="width: 200px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-for="item in optionsMaterial" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :key="item.code" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :label="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :value="item.code"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-button v-show="!display && item.buttonType && item.buttonType === '1'" @click="changeButtonType(item, 0)" type="danger">选择</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-button v-show="!display && (!item.buttonType || item.buttonType === '0')" @click="changeButtonType(item, 1)" type="danger">输入</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <material-component v-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    v-model="dataList[index]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    :material-id="item.materialId"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </material-component> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-button v-show="item.buttonType && item.buttonType === '1'" @click="changeButtonType(item, 0)" type="danger">选择</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-button v-show="!item.buttonType || item.buttonType === '0'" @click="changeButtonType(item, 1)" type="danger">输入</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-col :span="8" style="padding-left: 20px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <el-form-item label="类别" prop="materialTypeId" :rules="{required: false, message: '类别不能为空', trigger: 'blur'}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-input v-if="display || !item.buttonType || item.buttonType === '0'" v-model="item.categoryName" :disabled="true" style="width: 200px"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-select v-else v-model="item.materialTypeId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           remote 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           :remote-method="remoteMaterialTypes" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           style="width: 200px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           placeholder="请选择"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-for="item in optionsMaterialTypes" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :key="item.code" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :label="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :value="item.code"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input v-if="!item.buttonType || item.buttonType === '0'" v-model="item.categoryName" :disabled="true" style="width: 200px"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <material-type-component v-else v-model="item.materialTypeId" :type-id="item.materialTypeId"></material-type-component> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-col :span="8" style="text-align: right;"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -101,20 +79,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-col :span="8" style="padding-left: 20px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <el-form-item label="是否换算" prop="unitNeedChange"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-input v-if="display" v-model="item.conversionName" :disabled="true"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <el-select v-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           v-model="item.unitNeedChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           remote 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           :remote-method="remoteNeedChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           placeholder="请选择"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    v-for="item in optionsConversion" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :key="item.code" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :label="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    :value="item.code"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <convert-component v-model="item.unitNeedChange" :convert-id="item.unitNeedChange"></convert-component> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,10 +104,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   import UserComponent from '../common/user-component' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   import DictSelect from '../sys/dict-select' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  import { getMaterialList, getConversionList, inboundBatch, getBoundDetails, getMaterialTypes } from '@/api/warehouse' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { inboundBatch, getBoundDetails } from '@/api/warehouse' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import ConvertComponent from '../common/convert-component' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import MaterialComponent from '../common/material-component' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import MaterialTypeComponent from '../common/material-type-component' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     name: 'stock-order-inbound', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    components: {DictSelect, UserComponent}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    components: {MaterialTypeComponent, MaterialComponent, ConvertComponent, DictSelect, UserComponent}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         visible: false, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,10 +120,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dataList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dataRule: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           userId: [{ required: true, message: '请选择入库申请人', trigger: 'blur' }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        optionsMaterial: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        optionsConversion: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        optionsMaterialTypes: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     methods: { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -267,72 +232,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       validateField (type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.$refs.dataForm.validateField(type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 远程方法:货物种类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      async remoteMaterialTypes (query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!query) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          materialName: query.trimStart() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await getMaterialTypes(params).then(({data}) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (data && data.code === '200') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.optionsMaterialTypes = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.data.records.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              this.optionsMaterialTypes.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                code: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                value: item.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 远程方法:物料List 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      async remoteMaterial (query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!query) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          materialName: query.trimStart() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await getMaterialList(params).then(({data}) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (data && data.code === '200') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.optionsMaterial = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.data.records.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              this.optionsMaterial.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                code: item.materialId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                value: item.materialName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cateId: item.cateId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                categoryName: item.categoryName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                specifications: item.specifications, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                unitName: item.unitName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      onMaterialChanged (item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let item2 = this.optionsMaterial.find((item1) => item1.code === item.materialId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!item2) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        item.categoryName = item2.categoryName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        item.cateId = item2.cateId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        item.specifications = item2.specifications 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        item.unitName = item2.unitName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 远程选择:是否需要换算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      remoteNeedChange (query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!query) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          convertUnit: query.trimStart() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getConversionList(params).then(({data}) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (data && data.code === '200') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.optionsConversion = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.data.records.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              this.optionsConversion.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                code: item.conversionId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                value: '1 ' + item.convertUnitBefore + ' —— ' + item.cnt + ' ' + item.convertUnit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 切换按钮状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       changeButtonType (item, type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!item) return 
			 |