|
@@ -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
|