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

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

@ -39,23 +39,8 @@
<div class="title">规则条件</div> <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-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-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="请选择范围" <el-select v-model="formData.supplierTypeRange" placeholder="请选择范围"
style="width: 110px;;margin-right: 10px;"> style="width: 110px;;margin-right: 10px;">
<el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions" <el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
@ -69,7 +54,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <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-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" <el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" /> :key="item.value" />
@ -81,7 +66,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <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-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" <el-option :label="item.label" :value="item.value" v-for="item in options.rangeOptions"
:key="item.value" /> :key="item.value" />
@ -189,8 +174,6 @@ const rules = ref({
}) })
// //
const options = reactive({ const options = reactive({
//
typeOptions: [{ value: 1, label: '供应商' }, { value: 2, label: '客户' }],
// //
rangeOptions: [{ value: 1, label: '包含' }, { value: 2, label: '大于', }], rangeOptions: [{ value: 1, label: '包含' }, { value: 2, label: '大于', }],
// //
@ -250,7 +233,6 @@ const resetForm = () => {
warehouse: '',// warehouse: '',//
moon:'',// moon:'',//
} }
formRef1.value?.resetFields()
} }
// //
@ -300,4 +282,7 @@ const buttonBaseClick = (val, item) => {
::v-deep .flex-top .el-form-item__content { ::v-deep .flex-top .el-form-item__content {
align-items: flex-start !important; align-items: flex-start !important;
} }
::v-deep .err-120 .el-form-item__error {
padding-left: 120px !important;
}
</style> </style>

Loading…
Cancel
Save