<template>
|
<el-dialog
|
v-diadrag
|
:title="!dataForm.id ? '新增' : '修改'"
|
:close-on-click-modal="false"
|
:visible.sync="visible"
|
>
|
<el-form
|
:model="dataForm"
|
:rules="dataRule"
|
ref="dataForm"
|
label-width="100px"
|
class="l-mes"
|
>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="工厂" prop="factoryId">
|
<el-select disabled
|
v-model="dataForm.factoryId"
|
filterable
|
placeholder="请选择工厂"
|
style="width:100%"
|
>
|
<el-option
|
v-for="(item, index) in this.factoryOptions"
|
:label="item.factoryName"
|
:value="item.id"
|
:key="index"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="父节点类型" prop="pType">
|
<el-input
|
v-model="dataForm.pType"
|
placeholder="父节点类型"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="库位编号" prop="locNo">
|
<el-input
|
v-model="dataForm.locNo"
|
placeholder="库位编号"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="库位名称" prop="locName">
|
<el-input
|
v-model="dataForm.locName"
|
placeholder="库位名称"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="库位描述" prop="locDesc">
|
<el-input
|
v-model="dataForm.locDesc"
|
placeholder="库位描述"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="库位类型" prop="locType">
|
<el-select
|
v-model="dataForm.locType"
|
placeholder="库位类型"
|
filterable
|
style="width: 100%"
|
>
|
<el-option
|
v-for="item in locTypeOption"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="仓库地址" prop="locAddr">
|
<el-input
|
v-model="dataForm.locAddr"
|
placeholder="仓库地址"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="库位地图" prop="locMap">
|
<el-input
|
v-model="dataForm.locMap"
|
placeholder="库位地图"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="所属仓库分组" prop="locGroup">
|
<el-select
|
v-model="dataForm.locGroup"
|
filterable
|
placeholder="请选择所属仓库分组"
|
style="width:100%"
|
>
|
<el-option
|
v-for="(item, index) in this.warehouseOptions"
|
:label="item.warehouseName"
|
:value="item.id"
|
:key="index"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="备注" prop="locRemark">
|
<el-input
|
v-model="dataForm.locRemark"
|
placeholder="备注"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item
|
v-if="permissions.basic_has_ifs"
|
label="IFS库位"
|
prop="ifsLocationDesc"
|
>
|
<!--<el-select
|
v-model="dataForm.ifsLocation"
|
filterable
|
placeholder="请选择IFS库位"
|
style="width:100%"
|
>
|
<el-option
|
v-for="(item, index) in ifsLocationOptions"
|
:label="item.label"
|
:value="item.value"
|
:key="index"
|
>
|
</el-option>
|
</el-select>-->
|
<el-cascader
|
v-model="dataForm.ifsLocationDesc"
|
:props="locationProps"
|
style="width:100%"
|
></el-cascader>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="库位状态" prop="locStatus">
|
<el-switch
|
v-model="dataForm.locStatus"
|
:active-value="1"
|
:inactive-value="0"
|
></el-switch>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="创建时间" prop="createTime">
|
<el-date-picker
|
readonly
|
style="width: 100%"
|
v-model="moment"
|
type="datetime"
|
placeholder="选择日期时间"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12"> </el-col>
|
</el-row>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="visible = false">取消</el-button>
|
<el-button
|
type="primary"
|
:disabled="isSubmit"
|
v-thinclick="`dataFormSubmit`"
|
>确定</el-button
|
>
|
</span>
|
</el-dialog>
|
</template>
|
|
<script>
|
import {
|
getObj,
|
addObj,
|
putObj,
|
getIfsLocationByGroup,
|
getIfsLocationGroup
|
} from '@/api/warehouse/location'
|
import { loadFactoryList } from '@/api/basic/factory'
|
import { loadWarehouse } from '../../../api/warehouse/location'
|
import { remote } from '../../../api/admin/dict'
|
import { mapGetters } from 'vuex'
|
export default {
|
data() {
|
return {
|
moment: '',
|
locTypeOption: [],
|
warehouseOptions: [],
|
factoryOptions: [],
|
ifsLocationOptions: [],
|
visible: false,
|
dataForm: {
|
id: 0,
|
factoryId: 117,
|
pType: '',
|
locNo: '',
|
locName: '',
|
locDesc: '',
|
locType: '',
|
locAddr: '',
|
locMap: '',
|
locStatus: '',
|
locRemark: '',
|
createTime: '',
|
locGroup: '',
|
ifsLocation: '',
|
ifsLocationGroup: '',
|
ifsLocationDesc: []
|
},
|
dataRule: {
|
factoryId: [
|
{ required: true, message: '工厂不能为空', trigger: 'blur' }
|
],
|
locNo: [
|
{ required: true, message: '库位编号不能为空', trigger: 'blur' }
|
],
|
locName: [
|
{ required: true, message: '库位名称不能为空', trigger: 'blur' }
|
],
|
locType: [
|
{ required: true, message: '库位类型不能为空', trigger: 'blur' }
|
],
|
locStatus: [
|
{ required: true, message: '库位状态不能为空', trigger: 'blur' }
|
],
|
locGroup: [
|
{ required: true, message: '所属仓库分组不能为空', trigger: 'blur' }
|
]
|
},
|
isSubmit: false,
|
locationProps: {
|
lazy: true,
|
lazyLoad(node, resolve) {
|
console.log('node', node)
|
const { level } = node
|
if (level === 0) {
|
getIfsLocationGroup().then((response) => {
|
if (response.data.code === 0) {
|
const _data = response.data.data
|
|
const nodes = _data.map((item) => {
|
return {
|
value: item.LOCATION_GROUP,
|
label: item.LOCATION_GROUP,
|
leaf: false
|
}
|
})
|
// 通过调用resolve将子节点数据返回,通知组件数据加载完成
|
resolve(nodes)
|
}
|
})
|
} else {
|
getIfsLocationByGroup({ locationGroup: node.value }).then(
|
(response) => {
|
if (response.data.code === 0) {
|
const _data = response.data.data
|
|
const nodes = _data.map((item) => {
|
return {
|
value: item.LOCATION_NO,
|
label: item.LOCATION_NO,
|
leaf: true
|
}
|
})
|
// 通过调用resolve将子节点数据返回,通知组件数据加载完成
|
resolve(nodes)
|
}
|
}
|
)
|
}
|
}
|
}
|
}
|
},
|
created() {
|
this.initFactorySelect()
|
this.initWarehouseSelect()
|
this.getLoc()
|
// this.getIFSLoc()
|
},
|
computed: {
|
...mapGetters(['permissions'])
|
},
|
methods: {
|
getDataTime() {
|
this.moment = new Date()
|
},
|
init(id) {
|
this.getDataTime()
|
this.dataForm.id = id || 0
|
this.dataForm.locStatus = 1
|
this.visible = true
|
this.$nextTick(() => {
|
this.$refs.dataForm.resetFields()
|
if (this.dataForm.id) {
|
getObj(this.dataForm.id).then((response) => {
|
this.dataForm = response.data.data
|
this.dataForm.ifsLocationDesc = [
|
this.dataForm.ifsLocationGroup,
|
this.dataForm.ifsLocation
|
]
|
this.moment = this.dataForm.createTime
|
})
|
}
|
})
|
},
|
// 获取库位类型的数据字典
|
getLoc() {
|
remote('warehouse_type').then((response) => {
|
if (response.data.code === 0) {
|
this.locTypeOption = response.data.data
|
}
|
})
|
},
|
// 获取工厂的数据
|
initFactorySelect() {
|
loadFactoryList().then((res) => {
|
this.factoryOptions = res.data
|
})
|
},
|
// 获取仓库的数据
|
initWarehouseSelect() {
|
loadWarehouse().then((res) => {
|
this.warehouseOptions = res.data
|
})
|
},
|
// 获取IFS库位的数据字典
|
getIFSLoc() {
|
getIfsLocationGroup().then((response) => {
|
if (response.data.code === 0) {
|
const _data = response.data.data
|
/* this.ifsLocationOptions = []
|
if (_data.length > 0) {
|
_data.forEach((item) => {
|
const ifsLocationOption = {
|
value: item.LOCATION_NO,
|
label: item.LOCATION_NO
|
}
|
this.ifsLocationOptions.push(ifsLocationOption)
|
})
|
} */
|
}
|
})
|
},
|
// 表单提交
|
dataFormSubmit() {
|
this.isSubmit = true
|
this.$refs.dataForm.validate((valid) => {
|
if (valid) {
|
if (this.dataForm.ifsLocationDesc.length > 0) {
|
this.dataForm.ifsLocation = this.dataForm.ifsLocationDesc[1]
|
this.dataForm.ifsLocationGroup = this.dataForm.ifsLocationDesc[0]
|
} else {
|
this.dataForm.ifsLocation = null
|
this.dataForm.ifsLocationGroup = null
|
}
|
if (this.dataForm.id) {
|
putObj(this.dataForm).then((data) => {
|
this.$message.success('修改成功')
|
this.visible = false
|
this.isSubmit = false
|
this.$emit('refreshDataList')
|
})
|
} else {
|
addObj(this.dataForm).then((data) => {
|
this.$message.success('添加成功')
|
this.visible = false
|
this.isSubmit = false
|
this.$emit('refreshDataList')
|
})
|
}
|
} else {
|
this.isSubmit = false
|
}
|
})
|
}
|
}
|
}
|
</script>
|