This commit is contained in:
xhf 2025-03-26 15:42:12 +08:00
commit aeef310b06
10 changed files with 165 additions and 222 deletions

View File

@ -90,7 +90,7 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const title = ref('新建') // form
const formData = ref({
robotModelId: undefined, //id
robotNo: undefined, //AGV
robotNo: undefined, //
macAddress: undefined, //mac
floorAreaJson: [],
autoCharge: undefined
@ -135,7 +135,7 @@ const floorAreaChange = (value) => {
const formRules = reactive({
robotModelId: [{ required: true, message: '车辆类型不能为空', trigger: 'change' }],
robotNo: [{ required: true, message: 'AGV编号不能为空', trigger: 'change' }],
robotNo: [{ required: true, message: '车辆编号不能为空', trigger: 'change' }],
macAddress: [{ required: true, message: 'Mac地址不能为空', trigger: 'change' }],
autoCharge: [{ required: true, message: '自动充电电量不能为空', trigger: 'change' }]
})
@ -244,7 +244,7 @@ const takeRemoteMethod = async (query, item) => {
const resetForm = () => {
formData.value = {
robotModelId: undefined, //id
robotNo: undefined, //AGV
robotNo: undefined, //
macAddress: undefined, //mac
floorAreaJson: [],
autoCharge: undefined

View File

@ -85,7 +85,7 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const title = ref('新建') // form
const formData = ref({
deviceType: undefined, //
deviceNo: undefined, //AGV
deviceNo: undefined, //
macAddress: undefined, //mac
mapImageUrl: undefined, //
pictureConfig: undefined, // 12 3
@ -217,7 +217,7 @@ const takeRemoteMethod = async (query, item) => {
const resetForm = () => {
formData.value = {
deviceType: undefined, //id
deviceNo: undefined, //AGV
deviceNo: undefined, //
macAddress: undefined, //mac
mapImageUrl: undefined, //
pictureConfig: undefined, // 12 3

View File

@ -17,10 +17,10 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="AGV编号" prop="robotNo">
<el-form-item label="车辆编号" prop="robotNo">
<el-input
v-model="queryParams.robotNo"
placeholder="请输入AGV编号"
placeholder="请输入车辆编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
@ -67,7 +67,7 @@
:header-cell-style="{ backgroundColor: '#EBF1FF', padding: '13px 0' }"
>
<el-table-column label="序号" align="center" type="index" width="80" />
<el-table-column label="AGV编号" align="center" prop="robotNo" />
<el-table-column label="车辆编号" align="center" prop="robotNo" />
<el-table-column label="告警等级1-4" align="center" prop="warnLevel" />
<el-table-column label="告警/异常ID" align="center" prop="warnCode" />
<el-table-column label="告警/异常信息" align="center" prop="warnMsg" />

View File

@ -148,10 +148,10 @@
:inline="true"
label-width="68px"
>
<el-form-item label="任务号" prop="taskNo">
<el-form-item label="任务号" prop="taskNo">
<el-input
v-model="taskLogParams.taskNo"
placeholder="请输入任务号"
placeholder="请输入任务号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
@ -243,7 +243,7 @@
v-loading="loading"
>
<el-table-column label="序号" type="index" width="80" align="center" />
<el-table-column prop="taskNo" label="任务号" align="center" />
<el-table-column prop="taskNo" label="任务号" align="center" />
<el-table-column prop="taskType" label="任务类型" align="center" width="120">
<template #default="scope">
<el-text v-if="scope.row.taskType == 1">取放货</el-text>
@ -345,7 +345,7 @@ const getCarLogList = async () => {
const taskLogParams = reactive({
pageNo: 1,
pageSize: 10,
taskNo: null, //
taskNo: null, //
taskType: null, //
taskStatus: null, //
startTime: null, //

View File

@ -26,12 +26,12 @@
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
size="small"
background
layout="prev, pager, next"
:total="total"
<Pagination
class="mt-4"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getWareHouseList"
/>
</div>
</Dialog>

View File

@ -25,12 +25,12 @@
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
size="small"
background
layout="prev, pager, next"
:total="total"
<Pagination
class="mt-4"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getLineLibraryList"
/>
</div>
</Dialog>

View File

@ -177,7 +177,7 @@ const formData = ref({
releaseList: [], //
takeId: undefined, //id
takeList: [], //
robotNo: undefined, //AGV
robotNo: undefined, //
needLock: 0, //(0:1:)
electricity: undefined //()
}
@ -359,7 +359,7 @@ const resetForm = () => {
releaseList: [], //
takeId: undefined, //id
takeList: [], //
robotNo: undefined, //AGV
robotNo: undefined, //
needLock: 0, //(0:1:)
electricity: undefined //()
}

View File

@ -1268,7 +1268,7 @@ const state = reactive({
macAddress: '', // mac
markProperty: '', //
originalNode: '', //
robotNo: '' //AGV
robotNo: '' //
}, //
mapMarkCarList: [], //
popoverVisible: false, //

View File

@ -28,11 +28,7 @@
</el-form-item>
</el-col>
</el-row>
<div
v-if="
formData.taskDetailList[0].taskType !== 2 && formData.taskDetailList[0].taskType !== 3
"
>
<div>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item required label="是否拼接任务" prop="montageTask" label-width="146">
@ -49,6 +45,7 @@
<el-col :span="12" v-if="formData.montageTask === 1">
<el-form-item required label="任务拼接数量" prop="montageNumber" label-width="146">
<el-input-number
:disabled="montageNumberDisable"
class="!w-220px"
v-model="formData.montageNumber"
:min="1"
@ -58,13 +55,7 @@
</el-form-item>
</el-col>
</el-row>
<div
v-if="
formData.taskDetailList[0].taskType === 1 ||
formData.taskDetailList[0].taskType === 5 ||
formData.taskDetailList[0].taskType === 6
"
>
<div>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item
@ -77,7 +68,7 @@
v-model="formData.doMoveAll"
:active-value="1"
:inactive-value="0"
@change="doMoveAllChange"
:before-change="doMoveAllChange.bind()"
/>
</el-form-item>
</el-col>
@ -155,7 +146,6 @@
class="task-item"
>
<div class="index-logo">{{ index + 1 }}</div>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item
@ -170,14 +160,12 @@
placeholder="请选择"
@change="taskTypeChange(detailItem, index)"
>
<el-option label="取放货" :value="1" />
<el-option label="停车" :value="2" />
<el-option label="充电" :value="3" />
<el-option label="移动" :value="4" />
<el-option label="仅取货" :value="5" />
<el-option label="仅放货" :value="6" />
<!-- <el-option label="扫描码" :value="7" />
<el-option label="检测托盘类型" :value="8" /> -->
<el-option
v-for="item in detailItem.taskTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
@ -306,6 +294,7 @@
<el-col :span="12">
<el-form-item label="指定车辆">
<el-select
clearable
v-model="detailItem.robotNo"
placeholder="请选择车辆"
@change="chooseCarErrorMsg"
@ -758,9 +747,17 @@ const formData = ref({
releaseList: [], //
takeId: undefined, //id
takeList: [], //
robotNo: undefined, //AGV
robotNo: undefined, //
needLock: 0, //(0:1:)
electricity: undefined //()
electricity: undefined, //()
taskTypeList: [
{ label: '取放货', value: 1 },
{ label: '停车', value: 2 },
{ label: '充电', value: 3 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 },
{ label: '仅放货', value: 6 }
]
}
], //
skuInfo: undefined, //
@ -793,9 +790,17 @@ const resetFormData = () => {
releaseList: [], //
takeId: undefined, //id
takeList: [], //
robotNo: undefined, //AGV
robotNo: undefined, //
needLock: 0, //(0:1:)
electricity: undefined //()
electricity: undefined, //()
taskTypeList: [
{ label: '取放货', value: 1 },
{ label: '停车', value: 2 },
{ label: '充电', value: 3 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 },
{ label: '仅放货', value: 6 }
]
}
], //
skuInfo: undefined, //
@ -866,204 +871,142 @@ const robotNoChange = (e, detailItem) => {
}
//
const montageNumberDisable = computed(() =>
formData.value.taskDetailList.some((item) => {
return item.taskType == 2 || item.taskType == 3
})
)
const taskTypeChange = (item, index) => {
item.releaseType = 1
item.takeType = 1
item.releaseId = undefined
item.releaseList = []
item.takeId = undefined
item.takeList = []
item.robotNo = undefined
item.needLock = 0
item.releaseId = undefined
item.takeId = undefined
item.robotNo = undefined
item.electricity = undefined
item.otherMsg = undefined
item.releaseList = []
item.takeList = []
let lastItem = formData.value.taskDetailList[index - 1]
// let nextItem = formData.value.taskDetailList[index + 1]
let nextItem = formData.value.taskDetailList[index + 1]
if (!nextItem) return
if (index === 0) {
formData.value.doCycle = 0
formData.value.cycleNumber = 0
if (item.taskType === 2) {
formData.value.montageTask = 0
formData.value.montageNumber = 1
formData.value.taskDetailList = formData.value.taskDetailList.slice(0, 1)
message.warning('任务1为停车不可拼接任务')
}
if (item.taskType === 3) {
formData.value.montageTask = 0
formData.value.montageNumber = 1
formData.value.taskDetailList = formData.value.taskDetailList.slice(0, 1)
message.warning('任务1为充电不可拼接任务')
}
} else {
//
if (lastItem.taskType === 1) {
if (item.taskType === 2) {
message.warning('取放货后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('取放货后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 6) {
message.warning('取放货后不可连接仅放货')
item.taskType = undefined
return
}
if (item.taskType === 7) {
message.warning('取放货后不可连接扫描码')
item.taskType = undefined
return
}
if (item.taskType === 8) {
message.warning('取放货后不可连接检测托盘类型')
item.taskType = undefined
return
}
} else if (lastItem.taskType === 2) {
//
} else if (lastItem.taskType === 3) {
//
} else if (lastItem.taskType === 4) {
if (item.taskType === 2) {
message.warning('移动后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('移动后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 6) {
message.warning('移动后不可连接仅放货')
item.taskType = undefined
return
}
} else if (lastItem.taskType === 5) {
if (item.taskType === 1) {
message.warning('仅取货后不可连接取放货')
item.taskType = undefined
return
}
if (item.taskType === 2) {
message.warning('仅取货后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('仅取货后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 5) {
message.warning('仅取货后不可连接仅取货')
item.taskType = undefined
return
}
if (item.taskType === 7) {
message.warning('仅取货后不可连接扫描码')
item.taskType = undefined
return
}
if (item.taskType === 8) {
message.warning('仅取货后不可连接检测托盘类型')
item.taskType = undefined
return
}
} else if (lastItem.taskType === 6) {
if (item.taskType === 2) {
message.warning('仅放货后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('仅放货后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 6) {
message.warning('仅放货后不可连接仅放货')
item.taskType = undefined
return
}
if (item.taskType === 7) {
message.warning('仅放货后不可连接扫描码')
item.taskType = undefined
return
}
} else if (lastItem.taskType === 7) {
if (item.taskType === 2) {
message.warning('扫描码后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('扫描码后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 6) {
message.warning('扫描码后不可连接仅放货')
item.taskType = undefined
return
}
if (item.taskType === 7) {
message.warning('扫描码后不可连接扫描码')
item.taskType = undefined
return
}
} else if (lastItem.taskType === 8) {
if (item.taskType === 2) {
message.warning('检测托盘类型后不可连接停车')
item.taskType = undefined
return
}
if (item.taskType === 3) {
message.warning('检测托盘类型后不可连接充电')
item.taskType = undefined
return
}
if (item.taskType === 6) {
message.warning('检测托盘类型后不可连接仅放货')
item.taskType = undefined
return
}
}
if (item.taskType === 1) {
nextItem.taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
} else if (item.taskType === 2) {
formData.value.taskDetailList = formData.value.taskDetailList.slice(0, index + 1)
formData.value.montageNumber = formData.value.taskDetailList.length
} else if (item.taskType === 3) {
formData.value.taskDetailList = formData.value.taskDetailList.slice(0, index + 1)
formData.value.montageNumber = formData.value.taskDetailList.length
} else if (item.taskType === 4) {
nextItem.taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
} else if (item.taskType === 5) {
nextItem.taskTypeList = [
{ label: '移动', value: 4 },
{ label: '仅放货', value: 6 }
]
} else if (item.taskType === 6) {
nextItem.taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
}
}
//
const doMoveAllChange = (e) => {
if (e === 1) {
formData.value.taskDetailList.forEach((item) => {
item.taskType = 1
})
}
return new Promise((resolve, reject) => {
if (formData.value.doMoveAll === 1) {
resolve(true)
} else {
try {
ElMessageBox.confirm('开启搬空所选线库/区域,任务类型只能选择取放货,是否切换?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async () => {
resolve(true)
formData.value.taskDetailList = formData.value.taskDetailList.filter((item) => {
return item.taskType === 1
})
formData.value.montageNumber = formData.value.taskDetailList.length //
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消成功'
})
reject(false)
})
} catch (err) {
reject(false)
}
}
})
// if (e === 1) {
// formData.value.taskDetailList.forEach((item) => {
// item.taskType = 1
// })
// }
}
//
const montageNumberChange = (currentValue: number, oldValue: number) => {
if (currentValue > oldValue) {
//
let oldItem = formData.value.taskDetailList[oldValue - 1]
let addLength = currentValue - formData.value.taskDetailList.length
let taskTypeList
if (oldItem.taskType === 1) {
taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
} else if (oldItem.taskType === 4) {
taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
} else if (oldItem.taskType === 5) {
taskTypeList = [
{ label: '移动', value: 4 },
{ label: '仅放货', value: 6 }
]
} else if (oldItem.taskType === 6) {
taskTypeList = [
{ label: '取放货', value: 1 },
{ label: '移动', value: 4 },
{ label: '仅取货', value: 5 }
]
}
for (let index = 0; index < addLength; index++) {
formData.value.taskDetailList.push({
taskType: 1, //12 345678
taskType: undefined, //12 345678
releaseType: 1, // 12线 3
takeType: 1, //12线 3
releaseId: undefined, //id
releaseList: [], //
takeId: undefined, //id
takeList: [], //
robotNo: undefined, //AGV
robotNo: undefined, //
needLock: 0, //(0:1:)
electricity: undefined //()
electricity: undefined, //()
taskTypeList: taskTypeList
})
}
} else {
@ -1088,7 +1031,7 @@ const doCycleChange = () => {
resolve(true)
} else {
try {
ElMessageBox.confirm('开启循环任务任务类型只能选择取放货,是否切换?', '提示', {
ElMessageBox.confirm('开启循环任务任务类型只能选择取放货,是否切换?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'

View File

@ -290,7 +290,7 @@ const cancelTask = async (mainItem, item) => {
//
const finishTask = async (mainItem, item) => {
try {
await message.delConfirm('请确认是否取消所有任务?')
await message.delConfirm('请确认是否人工完成任务?')
await MapTaskAPi.updateTask({
id: mainItem.id,
priority: mainItem.priority,