feat: change robot register
26
README.md
@ -83,7 +83,7 @@ GroupSceneDetail
|
||||
{
|
||||
"id": "mock-robot-1",
|
||||
"label": "模拟机器人A",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.1.1",
|
||||
"isConnected": true,
|
||||
@ -95,7 +95,7 @@ GroupSceneDetail
|
||||
{
|
||||
"id": "mock-robot-2",
|
||||
"label": "模拟机器人B",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.1.2"
|
||||
}
|
||||
@ -128,7 +128,7 @@ RobotRealtimeInfo [JSON]
|
||||
{
|
||||
"id": "mock-robot-1",
|
||||
"label": "模拟机器人A",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.1.1",
|
||||
"isConnected": true,
|
||||
@ -169,42 +169,42 @@ Array<RobotInfo>
|
||||
{
|
||||
"id": "mock-robot-1",
|
||||
"label": "模拟机器人A",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.1.1"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-2",
|
||||
"label": "模拟机器人B",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.1.2"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-3",
|
||||
"label": "模拟机器人C",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 3,
|
||||
"ip": "127.0.1.3"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-4",
|
||||
"label": "模拟机器人D",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.2.1"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-5",
|
||||
"label": "模拟机器人E",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.2.2"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-6",
|
||||
"label": "模拟机器人F",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 3,
|
||||
"ip": "127.0.2.3"
|
||||
}
|
||||
@ -250,7 +250,7 @@ RobotInfo
|
||||
"data": {
|
||||
"id": "mock-robot-0",
|
||||
"label": "模拟机器人-注册",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.0.0"
|
||||
},
|
||||
@ -372,7 +372,7 @@ interface RobotInfo {
|
||||
label: string; // 机器人名称
|
||||
brand: RobotBrand; // 机器人品牌
|
||||
type: RobotType; // 机器人类型
|
||||
ip: string; // 机器人ip
|
||||
ip?: string; // 机器人ip(仅真实机器人)
|
||||
battery?: number; // 机器人电量
|
||||
isConnected?: boolean; // 机器人连接状态
|
||||
state?: RobotState; // 机器人状态
|
||||
@ -387,6 +387,8 @@ export interface RobotDetail extends RobotInfo {
|
||||
chargeBattery?: number; // 充电电量
|
||||
taskBattery?: number; // 任务电量
|
||||
swapBattery?: number; // 交换电量
|
||||
length?: number; // 空载长(仅仿真机器人)
|
||||
width?: number; // 空载宽(仅仿真机器人)
|
||||
}
|
||||
export interface RobotRealtimeInfo extends RobotInfo {
|
||||
x: number; // 坐标x
|
||||
@ -397,7 +399,7 @@ export interface RobotRealtimeInfo extends RobotInfo {
|
||||
}
|
||||
|
||||
enum RobotBrand {
|
||||
'先工' = 1,
|
||||
仙工 = 1,
|
||||
}
|
||||
enum RobotType {
|
||||
叉车机器人 = 1,
|
||||
|
@ -5,42 +5,42 @@
|
||||
{
|
||||
"id": "mock-robot-1",
|
||||
"label": "模拟机器人A",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.1.1"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-2",
|
||||
"label": "模拟机器人B",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.1.2"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-3",
|
||||
"label": "模拟机器人C",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 3,
|
||||
"ip": "127.0.1.3"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-4",
|
||||
"label": "模拟机器人D",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.2.1"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-5",
|
||||
"label": "模拟机器人E",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.2.2"
|
||||
},
|
||||
{
|
||||
"id": "mock-robot-6",
|
||||
"label": "模拟机器人F",
|
||||
"brand": "模拟品牌B",
|
||||
"brand": 1,
|
||||
"type": 3,
|
||||
"ip": "127.0.2.3"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"data": {
|
||||
"id": "mock-robot-0",
|
||||
"label": "模拟机器人-注册",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.0.0"
|
||||
},
|
||||
|
@ -17,7 +17,7 @@
|
||||
{
|
||||
"id": "mock-robot-1",
|
||||
"label": "模拟机器人A",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 1,
|
||||
"ip": "127.0.1.1",
|
||||
"isConnected": true,
|
||||
@ -29,7 +29,7 @@
|
||||
{
|
||||
"id": "mock-robot-2",
|
||||
"label": "模拟机器人B",
|
||||
"brand": "模拟品牌A",
|
||||
"brand": 1,
|
||||
"type": 2,
|
||||
"ip": "127.0.1.2"
|
||||
}
|
||||
|
@ -371,6 +371,23 @@
|
||||
}
|
||||
}
|
||||
|
||||
.ant-input-number-group-wrapper {
|
||||
width: 100%;
|
||||
|
||||
& > .ant-input-number-wrapper {
|
||||
& > .ant-input-number {
|
||||
border-radius: 2px 0 0 2px;
|
||||
}
|
||||
|
||||
& > .ant-input-number-group-addon {
|
||||
color: get-color(text1);
|
||||
background-color: get-color(fill3);
|
||||
border-color: get-color(neutral5);
|
||||
border-radius: 0 2px 2px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-layout {
|
||||
background-color: get-color(page_bg);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { isNumber } from 'lodash-es';
|
||||
|
||||
export enum RobotBrand {
|
||||
'先工' = 1,
|
||||
仙工 = 1,
|
||||
}
|
||||
export const ROBOT_BRAND_OPTIONS = <Array<[string, RobotBrand]>>(
|
||||
Object.entries(RobotBrand).filter(([, v]) => isNumber(v))
|
||||
|
@ -13,7 +13,7 @@ export interface RobotInfo {
|
||||
label: string; // 机器人名称
|
||||
brand: RobotBrand; // 机器人品牌
|
||||
type: RobotType; // 机器人类型
|
||||
ip?: string; // 机器人ip
|
||||
ip?: string; // 机器人ip(仅真实机器人)
|
||||
battery?: number; // 机器人电量
|
||||
isConnected?: boolean; // 机器人连接状态
|
||||
state?: RobotState; // 机器人状态
|
||||
@ -29,8 +29,8 @@ export interface RobotDetail extends RobotInfo {
|
||||
chargeBattery?: number; // 充电电量
|
||||
taskBattery?: number; // 任务电量
|
||||
swapBattery?: number; // 交换电量
|
||||
length?: number; // 空载长
|
||||
width?: number; // 空载宽
|
||||
length?: number; // 空载长(仅仿真机器人)
|
||||
width?: number; // 空载宽(仅仿真机器人)
|
||||
}
|
||||
|
||||
export interface RobotRealtimeInfo extends RobotInfo {
|
||||
|
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 644 B After Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 759 B After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 596 B |
@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { getAllRobots, type RobotInfo, RobotType } from '@api/robot';
|
||||
import { getAllRobots, RobotBrand, type RobotInfo, RobotType } from '@api/robot';
|
||||
import type { EditorService } from '@core/editor.service';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { isError, isNil } from 'lodash-es';
|
||||
@ -75,7 +75,11 @@ const submit = () => {
|
||||
bordered
|
||||
>
|
||||
<a-table-column dataIndex="label" :title="$t('机器人')" />
|
||||
<a-table-column dataIndex="brand" :title="$t('品牌')" />
|
||||
<a-table-column dataIndex="brand" :title="$t('品牌')">
|
||||
<template #default="{ text }">
|
||||
{{ $t(RobotBrand[text]) }}
|
||||
</template>
|
||||
</a-table-column>
|
||||
<a-table-column dataIndex="type" :title="$t('机器人类型')">
|
||||
<template #default="{ text }">
|
||||
{{ $t(RobotType[text]) }}
|
||||
|
@ -74,12 +74,33 @@ const submit = async () => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
v-if="!data.isSimulative"
|
||||
:label="$t('输入属性IP')"
|
||||
name="ip"
|
||||
:rules="[{ required: true }, { pattern: IP_REGEX, message: '' }]"
|
||||
>
|
||||
<a-input :placeholder="$t('请输入')" :maxlength="16" v-model:value="data.ip" />
|
||||
</a-form-item>
|
||||
<a-form-item v-if="data.isSimulative" :label="$t('空载长')" name="length" :rules="[{ required: true }]">
|
||||
<a-input-number
|
||||
:placeholder="$t('请输入')"
|
||||
addon-after="m"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
v-model:value="data.length"
|
||||
:controls="false"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item v-if="data.isSimulative" :label="$t('空载宽')" name="width" :rules="[{ required: true }]">
|
||||
<a-input-number
|
||||
:placeholder="$t('请输入')"
|
||||
addon-after="m"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
v-model:value="data.width"
|
||||
:controls="false"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item :label="$t('最小电量')" name="minBattery">
|
||||
<a-input-number
|
||||
:placeholder="$t('请输入')"
|
||||
|