emis-frontend/src/views/wms/wmsRack/wmsRackForm.vue
2023-11-27 16:29:42 +08:00

325 lines
10 KiB
Vue

<template>
<div >
<el-row :gutter="0">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-col :span="24">
<el-form-item label="库位编码" prop="rackNo">
<el-input v-model="form.rackNo" placeholder="请输入库位编码" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="库位名称" prop="rackName">
<el-input v-model="form.rackName" placeholder="请输入库位名称" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="库位条码" prop="barcode">
<el-input v-model="form.barcode" placeholder="请输入库位条码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="库位类型" prop="rackType">
<el-select v-model="form.rackType" placeholder="请选择库位类型">
<el-option
v-for="dict in dict.type.wms_rack_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="库位属性" prop="rackAttr">
<el-select v-model="form.rackAttr" placeholder="请选择库位属性">
<el-option
v-for="dict in dict.type.wms_temperature_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="坐标,用于辅助定位" prop="coordinate">
<el-input v-model="form.coordinate" placeholder="请输入坐标,用于辅助定位" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所属公司" prop="companyCode">
<el-input v-model="form.companyCode" placeholder="请输入所属公司" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="上架次序" prop="putOnOrder">
<el-input v-model="form.putOnOrder" placeholder="请输入上架次序" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="取货次序" prop="pickUpOrder">
<el-input v-model="form.pickUpOrder" placeholder="请输入取货次序" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所属客户" prop="cusNo">
<el-input v-model="form.cusNo" placeholder="请输入所属客户" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="体积单位" prop="volUnit">
<el-input v-model="form.volUnit" placeholder="请输入体积单位" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="重量单位" prop="weightUnit">
<el-input v-model="form.weightUnit" placeholder="请输入重量单位" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="面积单位" prop="areaUnit">
<el-input v-model="form.areaUnit" placeholder="请输入面积单位" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="最大体积" prop="maxVol">
<el-input v-model="form.maxVol" placeholder="请输入最大体积" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="最大重量" prop="maxWeight">
<el-input v-model="form.maxWeight" placeholder="请输入最大重量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="最大面积" prop="maxArea">
<el-input v-model="form.maxArea" placeholder="请输入最大面积" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="最大托盘" prop="maxPallets">
<el-input v-model="form.maxPallets" placeholder="请输入最大托盘" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="宽度" prop="width">
<el-input v-model="form.width" placeholder="请输入宽度" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="高度" prop="height">
<el-input v-model="form.height" placeholder="请输入高度" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="产品属性" prop="goodsCats">
<el-input v-model="form.goodsCats" placeholder="请输入产品属性" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="动线" prop="trafficFlow">
<el-input v-model="form.trafficFlow" placeholder="请输入动线" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="0-初始" prop="status">
<el-input v-model="form.status" placeholder="请输入0-初始" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-form-item label="上级字典">
<treeselect
ref="tree"
v-model="form.parentId"
:options="wmsRackOptions"
:normalizer="normalizer"
:default-expand-level="1"
:show-count="true"
placeholder="选择上级"
/>
</el-form-item>
</el-form>
</el-row>
<div style="text-align: center;margin-bottom: 10px;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</div>
</template>
<script>
import { listWmsRack, getWmsRack, delWmsRack, addWmsRack, updateWmsRack } from "@/api/wms/wmsRack";
export default {
name: "wmsRackForm",
props:{
id:undefined
},
components: { },
dicts: [
'wms_rack_type',
'wms_temperature_type',
],
data() {
return {
wmsRackOptions: [],
// 遮罩层
loading: true,
// 表单参数
form: {},
// 表单校验
rules: {
rackNo: [
{ required: true, message: "库位编码不能为空", trigger: "blur" }
],
rackName: [
{ required: true, message: "库位名称不能为空", trigger: "blur" }
],
rackType: [
{ required: true, message: "库位类型不能为空", trigger: "change" }
],
rackAttr: [
{ required: true, message: "库位属性不能为空", trigger: "change" }
],
areaId: [
{ required: true, message: "所属库区不能为空", trigger: "change" }
],
warehouseId: [
{ required: true, message: "所属仓库不能为空", trigger: "change" }
],
}
};
},
watch: {
"id": {
handler (newValue, oldValue) {
this.id = newValue;
this.initData();
},
deep: true
}
},
created() {
this.initData();
},
methods: {
initData() {
this.reset();
if(this.id !=undefined) {
this.loading = true;
getWmsRack(this.id).then(response => {
this.form = response.data;
this.loading = false;
});
}
this.getTreeselect();
},
// 取消按钮
cancel() {
this.reset();
this.$emit("on-cancel");
},
// 表单重置
reset() {
this.form = {
id: null,
rackNo: null,
rackName: null,
barcode: null,
rackType: null,
rackAttr: null,
areaId: null,
warehouseId: null,
coordinate: null,
orgCode: null,
companyCode: null,
putOnOrder: null,
pickUpOrder: null,
cusNo: null,
volUnit: null,
weightUnit: null,
areaUnit: null,
maxVol: null,
maxWeight: null,
maxArea: null,
maxPallets: null,
length: null,
width: null,
height: null,
goodsCats: null,
trafficFlow: null,
ext1: null,
ext2: null,
status: null,
remark: null,
tenantId: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateWmsRack(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
} else {
addWmsRack(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
}
}
});
},
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.idName,
children: node.children
};
},
/** 查询菜单下拉树结构 */
getTreeselect() {
const queryParams = {}
listWmsRack(queryParams).then(response => {
this.wmsRackOptions = [];
const rootItem = { idId: 0, wmsRackName: '-', children: [] };
rootItem.children = this.handleTree(response.data, "id");
this.wmsRackOptions.push(rootItem);
if(this.parentId != undefined) {
this.form.parentId = this.parentId;
}
});
},
}
};
</script>