You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.3 KiB
109 lines
2.3 KiB
<script setup lang="ts">
|
|
import { getPointList, updatePoint } from 'apis/point'
|
|
import { getPoint } from 'apis/system'
|
|
import { onMounted, ref } from 'vue'
|
|
|
|
const emits = defineEmits(['ok', 'cancel'])
|
|
|
|
const pointList = ref<Point.Point[]>([])
|
|
onMounted(async () => {
|
|
pointList.value = await getPointList()
|
|
})
|
|
|
|
const form = ref<Point.UpdateParams>({})
|
|
const formRef = ref()
|
|
const rules = {
|
|
id: [
|
|
{ required: true, message: '请选择名称', trigger: 'change' },
|
|
],
|
|
position: [
|
|
{ required: true, message: '请输入坐标', trigger: 'blur' },
|
|
],
|
|
}
|
|
|
|
const okHandle = async () => {
|
|
try {
|
|
const valid = await formRef.value.validate()
|
|
if (!valid) {
|
|
return
|
|
}
|
|
await updatePoint(form.value!)
|
|
emits('ok')
|
|
}
|
|
catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
const cancel = () => {
|
|
emits('cancel')
|
|
}
|
|
|
|
const motor = [
|
|
{
|
|
name: '转运机械臂三维点',
|
|
code: 'Transfer',
|
|
},
|
|
{
|
|
name: 'X轴电机',
|
|
code: 'XSV',
|
|
},
|
|
|
|
{
|
|
name: 'Z轴电机',
|
|
code: 'ZM',
|
|
},
|
|
{
|
|
|
|
name: '门电机',
|
|
code: 'DoorM',
|
|
},
|
|
{
|
|
|
|
name: '加液臂电机',
|
|
code: 'LiquidM',
|
|
},
|
|
]
|
|
|
|
const selectChange = async (val: string) => {
|
|
form.value!.position = await getPoint(val)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<FtDialog visible title="保存坐标" width="40%" :ok-handle="okHandle" @cancel="cancel">
|
|
<el-form ref="formRef" label-width="auto" :model="form" :rules="rules">
|
|
<el-form-item label="选择电机">
|
|
<el-select v-model="form.type" clearable placeholder="请选择电机" @change="selectChange">
|
|
<el-option
|
|
v-for="item in motor"
|
|
:key="item.code"
|
|
:label="item.name"
|
|
:value="item.code"
|
|
/>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="当前坐标" prop="position">
|
|
<el-input v-model="form.position" />
|
|
</el-form-item>
|
|
<el-form-item label="名称" prop="id">
|
|
<el-select v-model="form.id" placeholder="请选择名称">
|
|
<el-option
|
|
v-for="item in pointList"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id"
|
|
/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
</FtDialog>
|
|
</template>
|
|
|
|
<style scoped lang="scss">
|
|
.item-box {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 5px;
|
|
}
|
|
</style>
|