<template>
|
<GlobalWindow
|
:title="title"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-form :model="form" ref="form" :rules="rules" >
|
<el-form-item label="选择仓库" prop="warehouseId">
|
<el-select v-model="form.warehouseId" placeholder="请选择" @visible-change="visibleChange" :loading="loading" clearable filterable @change="selectWarehouse">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="货位编码" prop="code">
|
<el-input v-model="form.code" :disabled="form.id" placeholder="可填写,忽略将自动生成" v-trim/>
|
</el-form-item>
|
<el-form-item label="货位属性" prop="systemDicDataId">
|
<el-select v-model="form.systemDicDataId" placeholder="请选择" clearable filterable :disabled="notSelect">
|
<el-option
|
v-for="item in properties()"
|
:key="item.value"
|
:label="item.code"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="区域" prop="area">
|
<el-input v-model="form.area" placeholder="请输入" v-trim/>
|
</el-form-item>
|
<el-form-item label="货架" prop="shelf" >
|
<el-input v-model="form.shelf" placeholder="请输入" v-trim/>
|
</el-form-item>
|
<el-form-item label="货格" prop="cell">
|
<el-input v-model="form.cell" placeholder="请输入" v-trim/>
|
</el-form-item>
|
</el-form>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { queryListByJurisdiction as getAllData } from '@/api/ext/warehouseLocationExt'
|
import { queryListByCode } from '@/api/system/dictData'
|
import { validateSpecialKey } from '@/assets/js/validate'
|
export default {
|
name: 'OperaWarehouseLocationExtWindow',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
// 表单数据
|
form: {
|
id: null,
|
area: '',
|
cell: '',
|
code: '',
|
shelf: '',
|
systemDicDataId: null,
|
warehouseId: ''
|
},
|
options: [],
|
loading: false,
|
notSelect: false,
|
// 验证规则
|
rules: {
|
warehouseId: [
|
{ required: true, message: '请选择仓库名称', trigger: 'change' }
|
],
|
systemDicDataId: [{ required: true, message: '请选择货位属性', trigger: 'change' }],
|
// code: [
|
// { required: true, message: '请输入货位编码', trigger: 'blur' },
|
// { max: 20, message: '输入字数不超过20', trigger: 'blur' },
|
// { validator: validateSpecialKey, trigger: 'blur' }
|
// ],
|
area: [
|
{ required: true, message: '请输入区域', trigger: 'blur' },
|
{ max: 10, message: '输入字数不超过10', trigger: 'blur' }
|
],
|
shelf: [
|
{ max: 10, message: '输入字数不超过10', trigger: 'blur' }
|
],
|
cell: [
|
{ max: 10, message: '输入字数不超过10', trigger: 'blur' }
|
]
|
}
|
}
|
},
|
inject: ['properties'],
|
created () {
|
this.config({
|
api: '/ext/warehouseLocationExt',
|
'field.id': 'id'
|
})
|
|
},
|
watch: {
|
visible(news, old) {
|
if (news) {
|
this.visibleChange(true)
|
}
|
}
|
},
|
methods: {
|
// 仓库名称
|
visibleChange (e) {
|
if (e) {
|
getAllData({ useLocation: 1, departId: this.$store.state.userInfo.curComDepartment.id, status: 1 })
|
.then((res) => {
|
this.options = res
|
})
|
}
|
},
|
selectWarehouse (v) {
|
// console.log(v)
|
this.notSelect = false
|
for (const item of this.options()) {
|
if (item.id === v) {
|
// console.log(item)
|
for (const p of this.properties()) {
|
if (p.id === parseInt(item.systemDicDataId)) {
|
if (p.label !== 'APPLIANCE_MIX') {
|
// console.log('单属性', p)
|
this.form.systemDicDataId = p.id
|
this.notSelect = true
|
return
|
}
|
}
|
}
|
return
|
}
|
}
|
}
|
}
|
}
|
</script>
|