Browse Source

上架策略

master
zhangli 11 months ago
parent
commit
e250023511
  1. 287
      src/views/wms/strategy/groundingStrategy/AddForm.vue
  2. 27
      src/views/wms/strategy/supplieDeliveryStrategy/AddForm.vue

287
src/views/wms/strategy/groundingStrategy/AddForm.vue

@ -4,21 +4,21 @@
<!-- 规则 -->
<div class="item">
<div class="title">规则</div>
<el-form ref="formRef1" :model="formData" :rules="rules" label-width="120px" label-position="left">
<el-form ref="formRef1" :model="formData" :rules="rules" label-width="120px" label-position="left">
<el-row>
<el-col :span="24">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" clearable/>
<el-input v-model="formData.code" placeholder="请输入代码" clearable />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" clearable/>
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" clearable />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="描述" prop="describe">
<el-input v-model="formData.describe" placeholder="请输入描述" clearable/>
<el-input v-model="formData.describe" placeholder="请输入描述" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
@ -37,60 +37,100 @@
<!-- 规则条件 -->
<div class="item mt-20px">
<div class="title">规则条件</div>
<el-form ref="formRef2" :model="formData" :rules="rules" label-width="120px" label-position="left" >
<el-form ref="formRef2" :model="formData" :rules="rules" label-width="120px" label-position="left">
<el-row>
<!-- <el-col :span="24">
<el-form-item label="" label-width="0">
<!-- 选择供应商和客户 -->
<el-col :span="24">
<el-form-item label="" label-width="0" prop="supplier" class="err-240">
<el-select v-model="formData.type" placeholder="" style="width: 110px;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.typeOptions" :key="item.value" />
<el-option :label="item.label" :value="item.value" v-for="item in options.typeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.range" placeholder="please select your zone"
<el-select v-model="formData.supplierTypeRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions" :key="item.value" />
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.region" placeholder="please select your zone" style="flex:1">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-select v-model="formData.supplier" placeholder="请选择供应商" style="flex: 1;" clearable>
<el-option v-for="item in options.supplierList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col> -->
</el-col>
<!-- 选择物品类型 -->
<el-col :span="24">
<el-form-item label="" label-width="0" prop="item" class="err-240">
<el-select v-model="formData.itemType" placeholder="" style="width: 110px;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.itemTypeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.itemTypeRange" placeholder="请选择范围" style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.item" placeholder="请选择物品" style="flex: 1;" clearable>
<el-option v-for="item in options.itemList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- 选择重量体积还是面积 -->
<el-col :span="24">
<el-form-item label="供应商类型" class="flex-top" prop="supplierType">
<el-select v-model="formData.supplierTypeRange" placeholder="请选择范围"
<el-form-item label="" label-width="0" prop="calculation" class="err-240">
<el-select v-model="formData.calculationType" placeholder="" style="width: 110px;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.calculationTypeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.calculationTypeRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<div class="checkbox">
<el-checkbox-group v-model="formData.supplierType">
<el-checkbox :label="item.label" v-for="item in options.supplierTypeCheckbox" :key="item.value" />
</el-checkbox-group>
</div>
<el-select v-model="formData.calculation" placeholder="请选择物品" style="flex: 1;" clearable>
<el-option v-for="item in options.calculationList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- 库存状态 -->
<el-col :span="24">
<el-form-item label="供应商" prop="supplier">
<el-select v-model="formData.supplierRange" placeholder="请选择范围" style="width: 110px;;margin-right: 10px;">
<el-form-item label="库存状态" prop="inventoryStatus" class="err-120">
<el-select v-model="formData.inventoryStatusRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.supplier" placeholder="请选择供应商" style="flex: 1;" clearable>
<el-option v-for="item in options.supplierList" :key="item.value" :label="item.label"
<el-select v-model="formData.inventoryStatus" placeholder="请选择库存状态" style="flex: 1;" clearable>
<el-option v-for="item in options.inventoryStatusList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- 存储类型 -->
<el-col :span="24">
<el-form-item label="星期几" class="flex-top" prop="week">
<el-select v-model="formData.weekRange" placeholder="请选择范围" style="width: 110px;;margin-right: 10px;">
<el-form-item label="存储状态" prop="storageType" class="err-120">
<el-select v-model="formData.storageTypeRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<div class="checkbox">
<el-checkbox-group v-model="formData.week">
<el-checkbox :label="item.label" v-for="item in options.weekCheckbox" :key="item.value" />
</el-checkbox-group>
</div>
<el-select v-model="formData.storageType" placeholder="请选择存储状态" style="flex: 1;" clearable>
<el-option v-for="item in options.storageTypeList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- 库存事务 -->
<el-col :span="24">
<el-form-item label="库存事务" prop="inventoryAffair" class="err-120">
<el-select v-model="formData.inventoryAffairRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.inventoryAffair" placeholder="请选择库存事务" style="flex: 1;" clearable>
<el-option v-for="item in options.inventoryAffairList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -99,32 +139,49 @@
<!-- 规则配置 -->
<div class="item mt-20px">
<div class="title">规则配置</div>
<el-form ref="formRef3" :model="formData" :rules="rules" label-width="120px" label-position="left">
<el-form ref="formRef3" :model="formData" :rules="rules" label-width="120px" label-position="left">
<el-row>
<!-- 仓库 库区 库位组 库位 -->
<el-col :span="24">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="formData.startTime" type="datetime" placeholder="请选择开始时间" style="width: 100%;"/>
<el-form-item label="" label-width="0" prop="warehouse" class="err-120">
<el-select v-model="formData.warehouseType" style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.warehouseTypeOptions"
:key="item.value" />
</el-select>
<el-select v-model="formData.warehouse" placeholder="请选择库位" style="flex: 1;" clearable>
<el-option v-for="item in options.warehouseTypeList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- 优先空位库 -->
<el-col :span="24">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="formData.endTime" type="datetime" placeholder="请选择结束时间" style="width: 100%;"/>
<el-form-item label="优先空位库" prop="firstWarehouse">
<el-switch v-model="formData.firstWarehouse" />
</el-form-item>
</el-col>
<!-- 优先非空位库 -->
<el-col :span="24">
<el-form-item label="仓库" prop="warehouse">
<el-select v-model="formData.warehouse" placeholder="请选择仓库" clearable>
<el-option v-for="item in options.warehouseList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
<el-form-item label="优先非空位库" prop="firstNoWarehouse">
<el-switch v-model="formData.firstNoWarehouse" />
</el-form-item>
</el-col>
<!-- 允许混物品 -->
<el-col :span="24">
<el-form-item label="月台" prop="moon">
<el-select v-model="formData.moon" placeholder="请选择月台" clearable>
<el-option v-for="item in options.moonList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
<el-form-item label="允许混合品" prop="allowMixedItems">
<el-switch v-model="formData.allowMixedItems" />
</el-form-item>
</el-col>
<!-- 允许混批次 -->
<el-col :span="24">
<el-form-item label="允许混批次" prop="allowMixedBatch">
<el-switch v-model="formData.allowMixedBatch" />
</el-form-item>
</el-col>
<!-- 允许混状态 -->
<el-col :span="24">
<el-form-item label="允许混状态" prop="allowMixedStatus">
<el-switch v-model="formData.allowMixedStatus" />
</el-form-item>
</el-col>
</el-row>
@ -158,20 +215,42 @@ const formData = ref({
describe: '',//
priority: '',//
status: false,//
supplierTypeRange: 1,//
supplierType: [],//
supplierRange: 1,//
//
type: 1,//
supplierTypeRange: 1,//
supplier: '',//
weekRange: 1,//
week: [],//
//
itemType: 1,//
itemTypeRange: 1, //
item: '',//
//
calculationType: 1,//
calculationTypeRange: 1, //
calculation: '',//
//
inventoryStatusRange: 1, //
inventoryStatus: '',//
startTime:'',//
endTime: '',//
warehouse: '',//
moon: '',//
//
storageTypeRange: 1, //
storageType: '',//
//
inventoryAffairRange: 1, //
inventoryAffair: '',//
//
warehouseType: 1,/////
warehouse: '',/////
firstWarehouse: false,
firstNoWarehouse: false,
allowMixedItems: false,
allowMixedBatch: false,
allowMixedStatus: false,
})
//
const rules = ref({
@ -179,13 +258,14 @@ const rules = ref({
name: [{ required: true, message: '请输入名字', trigger: 'blur' }],
describe: [{ required: true, message: '请输入描述', trigger: 'blur' }],
priority: [{ required: true, message: '请输入优先级', trigger: 'blur' }],
supplierType: [{ required: true, message: '请选择供应商类型', trigger: 'change' }],
supplier: [{ required: true, message: '请选择供应商', trigger: 'change' }],
week: [{ required: true, message: '请选择星期几', trigger: 'change' }],
startTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
warehouse: [{ required: true, message: '请选择仓库', trigger: 'change' }],
moon: [{ required: true, message: '请选择月台', trigger: 'change' }],
supplier: [{ required: true, message: '请选择供应商', trigger: 'blur' }],
item: [{ required: true, message: '请选择物品', trigger: 'blur' }],
calculation: [{ required: true, message: '请选择', trigger: 'blur' }],
inventoryStatus: [{ required: true, message: '请选择库存状态', trigger: 'blur' }],
storageType: [{ required: true, message: '请选择存储类型', trigger: 'blur' }],
inventoryAffair: [{ required: true, message: '请选择库存事务', trigger: 'blur' }],
warehouse: [{ required: true, message: '请选择库位', trigger: 'blur' }],
})
//
const options = reactive({
@ -193,16 +273,27 @@ const options = reactive({
typeOptions: [{ value: 1, label: '供应商' }, { value: 2, label: '客户' }],
//
rangeOptions: [{ value: 1, label: '包含' }, { value: 2, label: '大于', }],
//
supplierTypeCheckbox: [{ value: 1, label: '标准' }, { value: 2, label: '委外' }, { value: 3, label: '其他' }],
//
supplierList: [{ value: 1, label: '供应商1' }, { value: 2, label: '供应商2' }, { value: 3, label: '供应商3' }],
//
weekCheckbox: [{ value: 1, label: '星期一' }, { value: 2, label: '星期二' }, { value: 3, label: '星期三' }, { value: 4, label: '星期四' }, { value: 5, label: '星期五' }, { value: 6, label: '星期六' }, { value: 7, label: '星期日' }],
//
warehouseList: [{ value: 1, label: '仓库1' }, { value: 2, label: '仓库2' }, { value: 3, label: '仓库3' }],
//
moonList: [{ value: 1, label: '月台1' }, { value: 2, label: '月台2' }, { value: 3, label: '月台3' }],
//
itemTypeOptions: [{ value: 1, label: '物品分类' }, { value: 2, label: '物品分组' }, { value: 3, label: '物品' }, { value: 4, label: '项目' }, { value: 5, label: 'ABC类' }],
//
itemList: [{ value: 1, label: '物品1' }, { value: 2, label: '物品2' }, { value: 3, label: '物品3' }],
//
calculationTypeOptions: [{ value: 1, label: '重量' }, { value: 2, label: '体积' }, { value: 3, label: '面积' }],
//
calculationList: [{ value: 1, label: '重量1' }, { value: 2, label: '重量2' }, { value: 3, label: '重量3' }],
//
inventoryStatusList: [{ value: 1, label: '库存状态1' }, { value: 2, label: '库存状态2' }, { value: 3, label: '库存状态3' }],
//
storageTypeList: [{ value: 1, label: '存储状态1' }, { value: 2, label: '存储状态2' }, { value: 3, label: '存储状态3' }],
//
inventoryAffairList: [{ value: 1, label: '库存事务1' }, { value: 2, label: '库存事务2' }, { value: 3, label: '库存事务3' }],
//
warehouseTypeOptions: [{ value: 1, label: '仓库' }, { value: 2, label: '库区' }, { value: 3, label: '库位组' }, { value: 4, label: '库位' }],
//
warehouseTypeList: [{ value: 1, label: '仓库1' }, { value: 2, label: '仓库2' }, { value: 3, label: '仓库3' }],
})
/** 打开弹窗 */
@ -224,7 +315,7 @@ const submitForm = async () => {
const valid2 = formRef2.value.validate()
const valid1 = formRef1.value.validate()
const valid3 = await formRef3.value.validate()
if (!valid1 || !valid2 ||!valid3) return
if (!valid1 || !valid2 || !valid3) return
//
formLoading.value = true
@ -238,19 +329,41 @@ const resetForm = () => {
describe: '',
priority: '',
status: false,
supplierTypeRange: 1,//
supplierType: [],//
supplierRange: 1,//
//
type: 1,//
supplierTypeRange: 1,//
supplier: '',//
//
itemType: 1,//
itemTypeRange: 1, //
item: '',//
//
calculationType: 1,//
calculationTypeRange: 1, //
calculation: '',//
//
inventoryStatusRange: 1, //
inventoryStatus: '',//
//
storageTypeRange: 1, //
storageType: '',//
//
inventoryAffairRange: 1, //
inventoryAffair: '',//
weekRange: 1,//
week: [],//
//
warehouseType: 1,/////
warehouse: '',/////
warehouse: '',//
moon:'',//
firstWarehouse: false,
firstNoWarehouse: false,
allowMixedItems: false,
allowMixedBatch: false,
allowMixedStatus: false,
}
formRef1.value?.resetFields()
}
//
@ -300,4 +413,12 @@ const buttonBaseClick = (val, item) => {
::v-deep .flex-top .el-form-item__content {
align-items: flex-start !important;
}
::v-deep .err-240 .el-form-item__error {
padding-left: 240px !important;
}
::v-deep .err-120 .el-form-item__error {
padding-left: 120px !important;
}
</style>

27
src/views/wms/strategy/supplieDeliveryStrategy/AddForm.vue

@ -39,23 +39,8 @@
<div class="title">规则条件</div>
<el-form ref="formRef2" :model="formData" :rules="rules" label-width="120px" label-position="left" >
<el-row>
<!-- <el-col :span="24">
<el-form-item label="" label-width="0">
<el-select v-model="formData.type" placeholder="" style="width: 110px;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.typeOptions" :key="item.value" />
</el-select>
<el-select v-model="formData.range" placeholder="please select your zone"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions" :key="item.value" />
</el-select>
<el-select v-model="formData.region" placeholder="please select your zone" style="flex:1">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="供应商类型" class="flex-top" prop="supplierType">
<el-form-item label="供应商类型" class="flex-top err-120" prop="supplierType">
<el-select v-model="formData.supplierTypeRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
@ -69,7 +54,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="供应商" prop="supplier">
<el-form-item label="供应商" prop="supplier" class="err-120" >
<el-select v-model="formData.supplierRange" placeholder="请选择范围" style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
@ -81,7 +66,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="星期几" class="flex-top" prop="week">
<el-form-item label="星期几" class="flex-top err-120" prop="week">
<el-select v-model="formData.weekRange" placeholder="请选择范围" style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" />
@ -189,8 +174,6 @@ const rules = ref({
})
//
const options = reactive({
//
typeOptions: [{ value: 1, label: '供应商' }, { value: 2, label: '客户' }],
//
rangeOptions: [{ value: 1, label: '包含' }, { value: 2, label: '大于', }],
//
@ -250,7 +233,6 @@ const resetForm = () => {
warehouse: '',//
moon:'',//
}
formRef1.value?.resetFields()
}
//
@ -300,4 +282,7 @@ const buttonBaseClick = (val, item) => {
::v-deep .flex-top .el-form-item__content {
align-items: flex-start !important;
}
::v-deep .err-120 .el-form-item__error {
padding-left: 120px !important;
}
</style>

Loading…
Cancel
Save