bug修改

This commit is contained in:
yyy 2025-03-22 16:15:38 +08:00
parent 6944f35b79
commit ceb6bda6fe
10 changed files with 135 additions and 62 deletions

View File

@ -5,7 +5,7 @@ VITE_DEV=true
# 请求路径
# VITE_BASE_URL='http://192.168.0.74:48080'
# VITE_BASE_URL='http://192.168.0.189:48080'
# VITE_BASE_URL='http://192.168.0.226:48080'
VITE_BASE_URL='http://192.168.0.45:48080'
# 文件上传类型server - 后端上传, client - 前端直连上传,仅支持 S3 服务

View File

@ -1,8 +1,13 @@
<template>
<Dialog v-model="dialogVisible" :title="title" width="545px" style="padding: 0;">
<Dialog v-model="dialogVisible" :title="title" width="545px" style="padding: 0">
<el-form :model="formData" label-width="auto" ref="formRef" :rules="formRules">
<el-form-item label="车辆类型" prop="robotModelId" required>
<el-select v-model="formData.robotModelId" placeholder="请选择车辆类型" required :disabled="formData.id">
<el-select
v-model="formData.robotModelId"
placeholder="请选择车辆类型"
required
:disabled="formData.id"
>
<el-option
:label="item.robotModelNumber"
:value="item.id"
@ -12,29 +17,48 @@
</el-select>
</el-form-item>
<el-form-item required label="车辆编号" prop="robotNo">
<el-input v-model="formData.robotNo" :disabled="false" placeholder="请输入车辆编号"/>
<el-input
v-model="formData.robotNo"
:disabled="false"
placeholder="请输入车辆编号"
maxlength="10"
show-word-limit
/>
</el-form-item>
<el-form-item required label="车辆状态" v-if="formData.id">
<el-select v-model="formData.robotTaskModel" placeholder="请选择车辆类型" required>
<el-option
:label="'锁定'"
:value="0"
/>
<el-option
:label="'正常'"
:value="1"
/>
<el-option :label="'锁定'" :value="0" />
<el-option :label="'正常'" :value="1" />
</el-select>
</el-form-item>
<el-form-item required label="自动充电电量" prop="autoCharge">
<el-input-number style="width: 100px;" v-model="formData.autoCharge" :disabled="false" :controls="false" :precision="0" :step="1" type="number" :min="0" :max="99" placeholder="请输入自动充电电量">
<el-input-number
style="width: 100px"
v-model="formData.autoCharge"
:disabled="false"
:controls="false"
:precision="0"
:step="1"
type="number"
:min="0"
:max="99"
placeholder="请输入自动充电电量"
>
<template #append>%</template>
</el-input-number>
<span style="margin-left: 5px;">%</span>
<span style="margin-left: 4px;color: #C60606;font-size: 12px;">建议自动充电电量大于30%</span>
<span style="margin-left: 5px">%</span>
<span style="margin-left: 4px; color: #c60606; font-size: 12px"
>建议自动充电电量大于30%</span
>
</el-form-item>
<el-form-item required label="Mac地址" prop="macAddress">
<el-input v-model="formData.macAddress" :disabled="false" placeholder="请输入Mac地址"/>
<el-input
v-model="formData.macAddress"
:disabled="false"
placeholder="请输入Mac地址"
maxlength="25"
show-word-limit
/>
</el-form-item>
<el-form-item required label="选择范围" placeholder="请选择范围">
<el-cascader
@ -48,8 +72,8 @@
</el-form-item>
</el-form>
<template #footer >
<div style="padding: 0 10px 10px 0;">
<template #footer>
<div style="padding: 0 10px 10px 0">
<el-button @click="dialogVisible = false"> </el-button>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button>
</div>
@ -86,11 +110,13 @@ const getFloorArea = async () => {
let data = []
let floor = []
data = res
for(let key in res){
for (let key in res) {
let obj = {
value: key,
label: key + '层',
children: res[key].map(item => {return {label: item.area, value: item.id,...item,children: []}})
children: res[key].map((item) => {
return { label: item.area, value: item.id, ...item, children: [] }
})
}
floor.push(obj)
}
@ -101,7 +127,7 @@ const getFloorArea = async () => {
const floorAreaChange = (value) => {
console.log(value)
formData.value.floorAreaJson = []
value.forEach(item => {
value.forEach((item) => {
formData.value.floorAreaJson.push(item[1])
})
console.log(formData.value.floorAreaJson)
@ -124,11 +150,11 @@ const open = async (type, id) => {
resetForm()
if (id) {
title.value = '编辑'
const data = await CarApi.getRobotInformation({id})
const data = await CarApi.getRobotInformation({ id })
formData.value = data
if(data.positionMapList.length){
data.positionMapList.forEach(item => {
floorAreaJsonData.value.push([item.floor,item.id])
if (data.positionMapList.length) {
data.positionMapList.forEach((item) => {
floorAreaJsonData.value.push([item.floor, item.id])
})
}
console.log(data)
@ -147,14 +173,14 @@ const submitForm = async () => {
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
if(!formData.value.floorAreaJson.length){
if (!formData.value.floorAreaJson.length) {
message.warning('请选择范围')
return
}
//
formLoading.value = true
try {
if(formData.value.id){
if (formData.value.id) {
await CarApi.robotInformationUpdate(formData.value)
message.success(t('common.updateSuccess'))
dialogVisible.value = false
@ -236,7 +262,6 @@ const resetForm = () => {
border-bottom: 1px solid #e8e8e8 !important;
}
.task-tips {
display: flex;
align-items: center;

View File

@ -205,6 +205,14 @@ const props = defineProps({
const ruleFormRef = ref()
const dialogFormVisible = ref(false) //
const validateNumberLength = (rule, value, callback) => {
if (value.toString().length > 25) {
callback(new Error('输入的数字长度不能超过25位'))
} else {
callback()
}
}
const rules = reactive({
startPointX: [
{ required: true, message: '请输入开始点位x轴坐标', trigger: 'blur' },
@ -214,7 +222,8 @@ const rules = reactive({
max: Number(props.imgBgObj.width),
message: `不能超过地图宽度${props.imgBgObj.width}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
startPointY: [
{ required: true, message: '请输入开始点位y轴坐标', trigger: 'blur' },
@ -224,7 +233,8 @@ const rules = reactive({
max: Number(props.imgBgObj.height),
message: `不能超过地图宽度${props.imgBgObj.height}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
endPointX: [
{ required: true, message: '请输入结束点位x轴坐标', trigger: 'blur' },
@ -234,7 +244,8 @@ const rules = reactive({
max: Number(props.imgBgObj.width),
message: `不能超过地图宽度${props.imgBgObj.width}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
endPointY: [
{ required: true, message: '请输入结束点位y轴坐标', trigger: 'blur' },
@ -244,7 +255,8 @@ const rules = reactive({
max: Number(props.imgBgObj.height),
message: `不能超过地图宽度${props.imgBgObj.height}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
expansionZoneFront: [{ required: true, message: '请输入膨胀区域前', trigger: 'blur' }],
expansionZoneAfter: [{ required: true, message: '请输入膨胀区域后', trigger: 'blur' }],

View File

@ -206,6 +206,14 @@ watch(
{ immediate: true }
)
const validateNumberLength = (rule, value, callback) => {
if (value.toString().length > 25) {
callback(new Error('输入的数字长度不能超过25位'))
} else {
callback()
}
}
const rules = reactive({
locationX: [
{ required: true, message: '请输入X', trigger: 'blur' },
@ -215,7 +223,8 @@ const rules = reactive({
max: Number(props.imgBgObj.width),
message: `不能超过地图宽度${props.imgBgObj.width}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
locationY: [
{ required: true, message: '请输入Y', trigger: 'blur' },
@ -225,7 +234,8 @@ const rules = reactive({
max: Number(props.imgBgObj.height),
message: `不能超过地图长度${props.imgBgObj.height}`,
trigger: 'blur'
}
},
{ validator: validateNumberLength, trigger: 'blur' }
],
locationYaw: [{ required: true, message: '请输入弧度', trigger: 'blur' }],
type: [{ required: true, message: '请选择类型', trigger: 'blur' }],
@ -310,6 +320,7 @@ const submit = async (formEl) => {
form.value.dataObj.outDirection = form.value.outDirection
form.value.dataObj.id = form.value.deviceId
form.value.dataObj.deviceType = deviceInfo.value.deviceType
form.value.dataObj.deviceNo = deviceInfo.value.deviceNo
form.value.dataObj.mapImageUrl = deviceInfo.value.mapImageUrl
form.value.mapImageUrl = deviceInfo.value.mapImageUrl
//dataJson
@ -340,6 +351,9 @@ const open = (item, list) => {
form.value.layersNumber = item.dataList?.length || ''
form.value.deviceId = item?.deviceId || item?.dataObj?.id || ''
form.value.positionMapId = props.positionMapId
deviceInfo.value.deviceNo = item?.deviceNo || item?.dataObj?.deviceNo || ''
deviceInfo.value.mapImageUrl = item?.mapImageUrl || item?.dataObj?.mapImageUrl || ''
equipmentList.value = list
if (item?.dataObj?.deviceType) {
deviceInfo.value.deviceType = item.dataObj.deviceType || ''
@ -422,6 +436,7 @@ const deviceChange = (deviceId) => {
deviceList.value.forEach((item) => {
if (item.id == deviceId) {
deviceInfo.value.mapImageUrl = item.mapImageUrl
deviceInfo.value.deviceNo = item.deviceNo
}
})
}
@ -436,7 +451,8 @@ const directionChange = (e) => {
const deviceInfo = ref({
positionMapId: '',
deviceType: '',
mapImageUrl: ''
mapImageUrl: '',
deviceNo: ''
})
//
const deviceList = ref([])

View File

@ -13,8 +13,8 @@
v-loading="loading"
>
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column prop="skuInfo" label="物料区域名称" align="center" />
<el-table-column prop="areaName" label="物料名称" align="center" />
<el-table-column prop="areaName" label="物料区域名称" align="center" />
<el-table-column prop="skuInfo" label="物料名称" align="center" />
<el-table-column label="操作" align="center" width="140">
<template #default="scope">
<el-button size="small" type="primary" @click="handleEdit(scope.row)"> 编辑 </el-button>
@ -38,12 +38,12 @@
<el-dialog v-model="editDialogFormVisible" title="编辑" width="400">
<el-form :model="editForm" label-width="110" :rules="editRules" ref="editFormEl">
<el-form-item label="物料区域名称" prop="skuInfo" required>
<el-input v-model="editForm.skuInfo" />
</el-form-item>
<el-form-item label="物料名称" prop="areaName" required>
<el-form-item label="物料区域名称" prop="areaName" required>
<el-input v-model="editForm.areaName" />
</el-form-item>
<el-form-item label="物料名称" prop="skuInfo" required>
<el-input v-model="editForm.skuInfo" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">

View File

@ -8,11 +8,11 @@
@close="dialogClose"
>
<el-form :model="form" label-width="110" ref="ruleFormRef" :rules="rules">
<el-form-item label="物料区域名称" prop="skuInfo" required>
<el-input v-model="form.skuInfo" placeholder="请输入物料区域名称" />
<el-form-item label="物料区域名称" prop="areaName" required>
<el-input v-model="form.areaName" placeholder="请输入物料区域名称" />
</el-form-item>
<el-form-item label="物料名称" prop="areaName" required>
<el-input v-model="form.areaName" placeholder="请输入物料名称" />
<el-form-item label="物料名称" prop="skuInfo" required>
<el-input v-model="form.skuInfo" placeholder="请输入物料名称" />
</el-form-item>
<el-form-item label="库位数量" prop="areaNumber">
<el-input v-model="form.areaNumber" :disabled="true" />

View File

@ -94,9 +94,6 @@
/></el-icon>
</div>
</el-form-item>
<el-form-item label="物料信息" prop="skuInfo">
<el-input v-model="formData.skuInfo" placeholder="请输入物料信息" />
</el-form-item>
<el-form-item label="指定车辆" prop="robotNo">
<el-select v-model="formData.robotNo" placeholder="请选择车辆">
<el-option
@ -116,12 +113,22 @@
class="!w-220px"
/>
</el-form-item>
<el-form-item label="物料信息" prop="skuInfo">
<el-input
v-model="formData.skuInfo"
placeholder="请输入物料信息"
maxlength="100"
show-word-limit
/>
</el-form-item>
<el-form-item label="其他信息" prop="otherMsg">
<el-input
v-model="formData.otherMsg"
rows="3"
type="textarea"
placeholder="请输入其他信息"
maxlength="100"
show-word-limit
/>
</el-form-item>
<!-- <div class="task-tips">

View File

@ -2533,6 +2533,7 @@ const getAllNodeList = async () => {
item.locationDeep = item.dataObj.locationDeep
item.locationWide = item.dataObj.locationWide
item.deviceId = item.dataObj.id
item.deviceNo = item.dataObj.deviceNo
item.mapImageUrl = item.dataObj.mapImageUrl
item.draggable = true
item.resizable = true

View File

@ -102,7 +102,12 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="物料信息" prop="skuInfo" label-width="146">
<el-input v-model="formData.skuInfo" placeholder="请输入物料信息" />
<el-input
v-model="formData.skuInfo"
placeholder="请输入物料信息"
maxlength="100"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -123,8 +128,10 @@
<el-input
v-model="formData.otherMsg"
placeholder="请输入其他信息"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
rows="3"
/>
</el-form-item>
</el-col>

View File

@ -8,7 +8,12 @@
label-width="80px"
>
<el-form-item label="公告标题" prop="title">
<el-input v-model="formData.title" placeholder="请输入公告标题" />
<el-input
v-model="formData.title"
placeholder="请输入公告标题"
maxlength="50"
show-word-limit
/>
</el-form-item>
<el-form-item label="公告内容" prop="content">
<Editor v-model="formData.content" height="150px" />