库位长度限制
This commit is contained in:
parent
c8dad5805e
commit
9eae5d289a
@ -7,7 +7,7 @@
|
|||||||
class="map-edit-route-dialog"
|
class="map-edit-route-dialog"
|
||||||
@close="dialogClose"
|
@close="dialogClose"
|
||||||
>
|
>
|
||||||
<el-form :model="form" label-width="120" ref="ruleFormRef">
|
<el-form :model="form" label-width="120" ref="ruleFormRef" :rules="rules">
|
||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="开始点位x轴" prop="startPointX" required>
|
<el-form-item label="开始点位x轴" prop="startPointX" required>
|
||||||
@ -15,7 +15,6 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.startPointX"
|
v-model="form.startPointX"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.width"
|
|
||||||
placeholder="请输入开始点位x轴"
|
placeholder="请输入开始点位x轴"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
@ -27,7 +26,6 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.startPointY"
|
v-model="form.startPointY"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.height"
|
|
||||||
placeholder="请输入开始点位y轴"
|
placeholder="请输入开始点位y轴"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
@ -41,7 +39,6 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.endPointX"
|
v-model="form.endPointX"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.width"
|
|
||||||
placeholder="请输入结束点位x轴"
|
placeholder="请输入结束点位x轴"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
@ -53,7 +50,6 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.endPointY"
|
v-model="form.endPointY"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.height"
|
|
||||||
placeholder="请输入结束点位y轴"
|
placeholder="请输入结束点位y轴"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
@ -210,8 +206,50 @@ const ruleFormRef = ref()
|
|||||||
const dialogFormVisible = ref(false) //列表的
|
const dialogFormVisible = ref(false) //列表的
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
skuInfo: [{ required: true, message: '请输入物料区域名称', trigger: 'blur' }],
|
startPointX: [
|
||||||
areaName: [{ required: true, message: '请输入物料名称', trigger: 'blur' }]
|
{ required: true, message: '请输入开始点位x轴坐标', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.width),
|
||||||
|
message: `不能超过地图宽度${props.imgBgObj.width}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
startPointY: [
|
||||||
|
{ required: true, message: '请输入开始点位y轴坐标', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.height),
|
||||||
|
message: `不能超过地图宽度${props.imgBgObj.height}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
endPointX: [
|
||||||
|
{ required: true, message: '请输入结束点位x轴坐标', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.width),
|
||||||
|
message: `不能超过地图宽度${props.imgBgObj.width}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
endPointY: [
|
||||||
|
{ required: true, message: '请输入结束点位y轴坐标', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.height),
|
||||||
|
message: `不能超过地图宽度${props.imgBgObj.height}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
expansionZoneFront: [{ required: true, message: '请输入膨胀区域前', trigger: 'blur' }],
|
||||||
|
expansionZoneAfter: [{ required: true, message: '请输入膨胀区域后', trigger: 'blur' }],
|
||||||
|
expansionZoneLeft: [{ required: true, message: '请输入膨胀区域左', trigger: 'blur' }],
|
||||||
|
expansionZoneRight: [{ required: true, message: '请输入膨胀区域右', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
|
|
||||||
//新增
|
//新增
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.locationX"
|
v-model="form.locationX"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.width"
|
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
@ -22,21 +21,10 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="form.locationY"
|
v-model="form.locationY"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="imgBgObj.height"
|
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="弧度" prop="locationYaw" required>
|
|
||||||
<el-input-number
|
|
||||||
style="width: 100%"
|
|
||||||
v-model="form.locationYaw"
|
|
||||||
:min="0"
|
|
||||||
placeholder="请输入"
|
|
||||||
controls-position="right"
|
|
||||||
:precision="2"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="类型" prop="type" required>
|
<el-form-item label="类型" prop="type" required>
|
||||||
<el-select v-model="form.type" placeholder="请选择类型" @change="typeChange">
|
<el-select v-model="form.type" placeholder="请选择类型" @change="typeChange">
|
||||||
<el-option label="路径点位" :value="1" />
|
<el-option label="路径点位" :value="1" />
|
||||||
@ -47,10 +35,21 @@
|
|||||||
<el-option label="等待点" :value="6" />
|
<el-option label="等待点" :value="6" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="弧度" prop="locationYaw" required>
|
||||||
|
<el-input-number
|
||||||
|
class="!w-200px"
|
||||||
|
v-model="form.locationYaw"
|
||||||
|
:min="0"
|
||||||
|
:max="10000"
|
||||||
|
placeholder="请输入"
|
||||||
|
:precision="2"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<div v-if="form.type === 2 || form.type === 3 || form.type === 4">
|
<div v-if="form.type === 2 || form.type === 3 || form.type === 4">
|
||||||
<el-form-item label="层数" prop="layersNumber" required v-if="form.type === 2">
|
<el-form-item label="层数" prop="layersNumber" required v-if="form.type === 2">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
class="!w-200px"
|
||||||
v-model="form.layersNumber"
|
v-model="form.layersNumber"
|
||||||
:min="1"
|
:min="1"
|
||||||
:max="4"
|
:max="4"
|
||||||
@ -61,7 +60,7 @@
|
|||||||
<el-text class="mx-1">(最大层数:4)</el-text>
|
<el-text class="mx-1">(最大层数:4)</el-text>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序" prop="locationNumber" v-if="form.type === 2" required>
|
<el-form-item label="排序" prop="locationNumber" v-if="form.type === 2" required>
|
||||||
<el-input-number v-model="form.locationNumber" :min="1" :max="10000000" />
|
<el-input-number class="!w-200px" v-model="form.locationNumber" :min="1" />
|
||||||
<el-text class="mx-1">(最大值:10000000)</el-text>
|
<el-text class="mx-1">(最大值:10000000)</el-text>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="编号" prop="deviceId" required v-if="form.type === 3">
|
<el-form-item label="编号" prop="deviceId" required v-if="form.type === 3">
|
||||||
@ -100,10 +99,10 @@
|
|||||||
<el-form-item label="库位长度" prop="locationDeep" required>
|
<el-form-item label="库位长度" prop="locationDeep" required>
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
class="!w-200px"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
v-model="form.locationDeep"
|
v-model="form.locationDeep"
|
||||||
:min="10"
|
:min="10"
|
||||||
:max="imgBgObj.height"
|
|
||||||
/>
|
/>
|
||||||
<span class="ml-2">cm</span>
|
<span class="ml-2">cm</span>
|
||||||
</div>
|
</div>
|
||||||
@ -111,10 +110,10 @@
|
|||||||
<el-form-item label="库位宽度" prop="locationWide" required>
|
<el-form-item label="库位宽度" prop="locationWide" required>
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
class="!w-200px"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
v-model="form.locationWide"
|
v-model="form.locationWide"
|
||||||
:min="10"
|
:min="10"
|
||||||
:max="imgBgObj.width"
|
|
||||||
/>
|
/>
|
||||||
<span class="ml-2">cm</span>
|
<span class="ml-2">cm</span>
|
||||||
</div>
|
</div>
|
||||||
@ -195,16 +194,73 @@ const form = ref({
|
|||||||
locationYaw: undefined //弧度
|
locationYaw: undefined //弧度
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const mapWidthCm = ref(0)
|
||||||
|
const mapHeightCm = ref(0)
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.imgBgObj,
|
||||||
|
(val) => {
|
||||||
|
mapWidthCm.value = (Number(val.width) * Number(val.resolution) * 100).toFixed(2)
|
||||||
|
mapHeightCm.value = (Number(val.height) * Number(val.resolution) * 100).toFixed(2)
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
)
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
locationX: [{ required: true, message: '请输入X', trigger: 'blur' }],
|
locationX: [
|
||||||
locationY: [{ required: true, message: '请输入Y', trigger: 'blur' }],
|
{ required: true, message: '请输入X', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.width),
|
||||||
|
message: `不能超过地图宽度${props.imgBgObj.width}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
locationY: [
|
||||||
|
{ required: true, message: '请输入Y', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(props.imgBgObj.height),
|
||||||
|
message: `不能超过地图长度${props.imgBgObj.height}`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
locationYaw: [{ required: true, message: '请输入弧度', trigger: 'blur' }],
|
locationYaw: [{ required: true, message: '请输入弧度', trigger: 'blur' }],
|
||||||
type: [{ required: true, message: '请选择类型', trigger: 'blur' }],
|
type: [{ required: true, message: '请选择类型', trigger: 'blur' }],
|
||||||
layersNumber: [{ required: true, message: '请输入层数', trigger: 'blur' }],
|
layersNumber: [{ required: true, message: '请输入层数', trigger: 'blur' }],
|
||||||
locationNumber: [{ required: true, message: '请输入排序', trigger: 'blur' }],
|
locationNumber: [
|
||||||
|
{ required: true, message: '请输入排序', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: 10000000,
|
||||||
|
message: `不能超过10000000`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
deviceId: [{ required: true, message: '请选择设备编号', trigger: 'blur' }],
|
deviceId: [{ required: true, message: '请选择设备编号', trigger: 'blur' }],
|
||||||
locationDeep: [{ required: true, message: '请选择库位长度', trigger: 'blur' }],
|
locationDeep: [
|
||||||
locationWide: [{ required: true, message: '请选择库位宽度', trigger: 'blur' }]
|
{ required: true, message: '请选择库位长度', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(mapWidthCm.value),
|
||||||
|
message: `不能超过${Number(mapWidthCm.value)}cm`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
locationWide: [
|
||||||
|
{ required: true, message: '请选择库位宽度', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
max: Number(mapHeightCm.value),
|
||||||
|
message: `不能超过${Number(mapHeightCm.value)}cm`,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['submitNodeSuccess', 'addEventListener'])
|
const emit = defineEmits(['submitNodeSuccess', 'addEventListener'])
|
||||||
@ -280,7 +336,6 @@ const dialogClose = () => {
|
|||||||
|
|
||||||
const equipmentList = ref([]) //用过的设备列表
|
const equipmentList = ref([]) //用过的设备列表
|
||||||
const open = (item, list) => {
|
const open = (item, list) => {
|
||||||
console.log(item)
|
|
||||||
form.value = item
|
form.value = item
|
||||||
form.value.layersNumber = item.dataList?.length || ''
|
form.value.layersNumber = item.dataList?.length || ''
|
||||||
form.value.deviceId = item?.deviceId || item?.dataObj?.id || ''
|
form.value.deviceId = item?.deviceId || item?.dataObj?.id || ''
|
||||||
|
@ -315,7 +315,7 @@
|
|||||||
>
|
>
|
||||||
<VueDragResizeRotate
|
<VueDragResizeRotate
|
||||||
v-for="(item, index) in state.allMapPointInfo"
|
v-for="(item, index) in state.allMapPointInfo"
|
||||||
:key="index"
|
:key="index + Number(item.locationX)"
|
||||||
:parent="true"
|
:parent="true"
|
||||||
:x="Number(item.locationX) - Number(item.locationWidePx) / 2"
|
:x="Number(item.locationX) - Number(item.locationWidePx) / 2"
|
||||||
:y="Number(item.locationY) - Number(item.locationDeepPx) / 2"
|
:y="Number(item.locationY) - Number(item.locationDeepPx) / 2"
|
||||||
@ -642,6 +642,7 @@
|
|||||||
|
|
||||||
<!-- 节点编辑 -->
|
<!-- 节点编辑 -->
|
||||||
<editNodeProperties
|
<editNodeProperties
|
||||||
|
v-if="imgBgObj.positionMapId"
|
||||||
ref="editNodePropertiesRef"
|
ref="editNodePropertiesRef"
|
||||||
:positionMapId="imgBgObj.positionMapId"
|
:positionMapId="imgBgObj.positionMapId"
|
||||||
:imgBgObj="imgBgObj"
|
:imgBgObj="imgBgObj"
|
||||||
@ -681,6 +682,7 @@
|
|||||||
/>
|
/>
|
||||||
<!-- 编辑地图路线 -->
|
<!-- 编辑地图路线 -->
|
||||||
<editMapRouteDialog
|
<editMapRouteDialog
|
||||||
|
v-if="imgBgObj.positionMapId"
|
||||||
ref="editMapRouteDialogRef"
|
ref="editMapRouteDialogRef"
|
||||||
@editMapRouteDialogSubmit="editMapRouteDialogSubmit"
|
@editMapRouteDialogSubmit="editMapRouteDialogSubmit"
|
||||||
@addEventListener="addEventListener"
|
@addEventListener="addEventListener"
|
||||||
@ -1101,7 +1103,7 @@ const state = reactive({
|
|||||||
switchType: 'tools',
|
switchType: 'tools',
|
||||||
name: '工具',
|
name: '工具',
|
||||||
icon: 'ep:briefcase',
|
icon: 'ep:briefcase',
|
||||||
isActive: true
|
isActive: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
switchType: 'lineLibrary',
|
switchType: 'lineLibrary',
|
||||||
@ -1149,7 +1151,7 @@ const state = reactive({
|
|||||||
switchType: 'grid',
|
switchType: 'grid',
|
||||||
name: '网格',
|
name: '网格',
|
||||||
icon: 'ep:grid',
|
icon: 'ep:grid',
|
||||||
isActive: true
|
isActive: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
switchType: 'larger',
|
switchType: 'larger',
|
||||||
@ -1214,8 +1216,8 @@ const state = reactive({
|
|||||||
isActive: false
|
isActive: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
isShowToolbar: true, //工具栏展示隐藏
|
isShowToolbar: false, //工具栏展示隐藏
|
||||||
isShowGrid: true, //网格展示隐藏
|
isShowGrid: false, //网格展示隐藏
|
||||||
moveForm: {
|
moveForm: {
|
||||||
locationX: 0,
|
locationX: 0,
|
||||||
locationY: 0
|
locationY: 0
|
||||||
@ -1412,6 +1414,9 @@ const toolbarClick = async (item) => {
|
|||||||
state.currentDragTarget.index = null
|
state.currentDragTarget.index = null
|
||||||
}
|
}
|
||||||
addEditHistory()
|
addEditHistory()
|
||||||
|
setTimeout(() => {
|
||||||
|
toolbarSwitchType.value = ''
|
||||||
|
}, 200)
|
||||||
break
|
break
|
||||||
case 'tools':
|
case 'tools':
|
||||||
//工具
|
//工具
|
||||||
|
Loading…
Reference in New Issue
Block a user