库位改为选择大小

This commit is contained in:
yyy 2025-06-23 14:31:32 +08:00
parent 0b68d94c82
commit 0279e69b0c
5 changed files with 87 additions and 21 deletions

View File

@ -4,9 +4,9 @@ NODE_ENV=development
VITE_DEV=true
# 请求路径
# VITE_BASE_URL='http://192.168.77.50:48080'
VITE_BASE_URL='http://10.10.7.132:48080'
# VITE_BASE_URL='http://10.10.100.15:48080'
VITE_BASE_URL='http://10.10.5.5:48080'
# VITE_BASE_URL='http://10.10.5.5:48080'
# 文件上传类型server - 后端上传, client - 前端直连上传,仅支持 S3 服务
VITE_UPLOAD_TYPE=server

View File

@ -142,5 +142,8 @@
},
"terminal.integrated.scrollback": 10000,
"nuxt.isNuxtApp": false,
"liveServer.settings.port": 5502
"liveServer.settings.port": 5502,
"[dotenv]": {
"editor.defaultFormatter": "foxundermoon.shell-format"
}
}

View File

@ -248,3 +248,10 @@ export const checkHaveTask = async (data) => {
data
})
}
export const getHouseLocationTypeList = async (params) => {
return await request.get({
url: `/system/ware/house-location-type/getList`,
params
})
}

View File

@ -33,10 +33,10 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item required label="车辆状态">
<el-form-item required label="锁定状态">
<el-select
v-model="formData.robotTaskModel"
placeholder="请选择车辆类型"
placeholder="请选择锁定状态"
required
:disabled="!formData.id"
>
@ -45,10 +45,23 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item required label="车辆状态">
<el-select v-model="formData.robotStatus" placeholder="请选择车辆状态" required>
<el-option label="暂停且无任务" :value="0" />
<el-option label="暂停(有处理中的任务)" :value="1" />
<el-option label="任务中" :value="2" />
<el-option label="待命" :value="3" />
<el-option label="充电中" :value="4" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item required label="自动充电电量" prop="autoCharge">
<el-input-number
style="width: 130px"
style="width: 180px"
v-model="formData.autoCharge"
:disabled="false"
:controls="false"
@ -62,13 +75,11 @@
<template #append>%</template>
</el-input-number>
<span style="margin-left: 5px">%</span>
<span style="margin-left: 4px; color: #c60606; font-size: 12px"
<span style="margin-left: 10px; color: #c60606; font-size: 12px"
>建议自动充电电量大于30%</span
>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item required label="Mac地址" prop="macAddress">
<el-input
@ -80,6 +91,8 @@
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item required label="选择范围" placeholder="请选择范围">
<el-cascader
@ -93,8 +106,6 @@
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="车辆IP" prop="robotIp">
<el-input
@ -106,6 +117,8 @@
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="车辆端口" prop="robotPort">
<el-input
@ -118,6 +131,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-form-item label="摄像头配置">
<el-button type="primary" @click="addCameraConfig">添加</el-button>
@ -235,6 +249,7 @@ const formData = ref({
autoCharge: undefined,
robotIp: undefined,
robotPort: undefined,
robotStatus: undefined,
cameraAddVOList: []
})
const carModelList = ref([])
@ -436,6 +451,7 @@ const resetForm = () => {
autoCharge: undefined,
robotIp: undefined,
robotPort: undefined,
robotStatus: undefined,
cameraAddVOList: []
}
floorAreaJsonData.value = []

View File

@ -133,6 +133,24 @@
</el-select>
</div>
</el-form-item>
<el-form-item label="库位类型" required prop="locationTypeId">
<el-select
class="!w-300px"
v-model="form.locationTypeId"
clearable
placeholder="请选择库位类型"
@change="houseLocationTypeChange"
>
<el-option
v-for="item in houseLocationTypeList"
:key="item.id"
:label="item.typeName"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="库位长度" prop="locationDeep" required>
<div style="display: flex">
<el-input-number
@ -140,6 +158,7 @@
placeholder="请输入"
v-model="form.locationDeep"
:min="10"
:disabled="form.type === 2"
/>
<span class="ml-2">cm</span>
</div>
@ -151,10 +170,12 @@
placeholder="请输入"
v-model="form.locationWide"
:min="10"
:disabled="form.type === 2"
/>
<span class="ml-2">cm</span>
</div>
</el-form-item>
<!-- <div v-if="form.type === 2 || form.type === 4">
<el-form-item label="库位方向" prop="direction">
<el-select
@ -249,7 +270,8 @@ const form = ref({
dataObj: {}, //
positionMapId: undefined,
deviceId: undefined, //id
locationYaw: undefined //
locationYaw: undefined, //
locationTypeId: undefined //
})
const mapWidthCm = ref(0)
@ -309,6 +331,7 @@ const rules = reactive({
}
],
deviceId: [{ required: true, message: '请选择设备编号', trigger: 'blur' }],
locationTypeId: [{ required: true, message: '请选择库位类型', trigger: 'blur' }],
locationDeep: [
{ required: true, message: '请选择库位长度', trigger: 'blur' },
{
@ -351,7 +374,8 @@ const submit = async (formEl) => {
direction: form.value.direction || undefined, //
inDirection: form.value.inDirection || undefined, //
outDirection: form.value.outDirection || undefined, //
locationStorey: index + 1 //
locationStorey: index + 1, //
locationTypeId: form.value.locationTypeId
}
if (
form.value.dataList.length > 0 &&
@ -414,8 +438,13 @@ const equipmentList = ref([]) //用过的设备列表
const open = (item, list) => {
console.log(item)
form.value = item
form.value.layersNumber = item.dataList?.length || ''
form.value.positionMapId = props.positionMapId
form.value.layersNumber = item.dataList?.length || ''
//
if (item.type === 2) {
form.value.locationTypeId = form.value.dataList[0].locationTypeId
}
//
if (item.type === 5 && item.dataObj?.sortNum && item.dataObj?.id) {
@ -436,7 +465,7 @@ const open = (item, list) => {
deviceInfo.value.deviceType = ''
}
}
getHouseLocationTypeList()
dialogFormVisible.value = true
}
@ -457,10 +486,11 @@ const typeChange = (type) => {
form.value.locationWidePx = 8
} else if (type === 2) {
form.value.locationNumber = null
form.value.locationDeep = 150
form.value.locationWide = 150
form.value.locationDeepPx = 30
form.value.locationWidePx = 30
//
let firstItem = houseLocationTypeList.value[0]
form.value.locationTypeId = firstItem.id
form.value.locationDeep = Number(firstItem.locationDeep)
form.value.locationWide = Number(firstItem.locationWide)
} else if (type === 3) {
form.value.direction = null
form.value.inDirection = null
@ -617,6 +647,16 @@ const convertActualToBrowser = (pointX, pointY) => {
return { x, y }
}
const houseLocationTypeList = ref()
const getHouseLocationTypeList = async () => {
houseLocationTypeList.value = await MapApi.getHouseLocationTypeList()
}
const houseLocationTypeChange = (id) => {
let item = houseLocationTypeList.value.find((item) => item.id === id)
form.value.locationDeep = Number(item.locationDeep)
form.value.locationWide = Number(item.locationWide)
}
defineExpose({ open }) // open
</script>