Browse Source

页面增删改查

master
guoapeng 5 months ago
parent
commit
14d234d1aa
  1. BIN
      dist.zip
  2. 3
      src/apis/matrix.ts
  3. 3
      src/apis/matrixCraft.ts
  4. 6
      src/apis/point.ts
  5. 60
      src/components/martix/Edit/index.vue
  6. 39
      src/components/martixCraft/Edit/index.vue
  7. 73
      src/components/point/Edit/index.vue
  8. 2
      src/libs/utils.ts
  9. 2
      src/views/debug/index.vue
  10. 52
      src/views/log/index.vue
  11. 54
      src/views/matrix/index.vue
  12. 52
      src/views/matrixCraft/index.vue
  13. 68
      src/views/point/index.vue
  14. 107
      src/views/spray/index.vue
  15. 2
      src/views/spraySet/index.vue
  16. 4
      vite.config.ts

BIN
dist.zip

3
src/apis/matrix.ts

@ -6,3 +6,6 @@ export interface MatrixQuery {
matrixName?: string | undefined matrixName?: string | undefined
} }
export const list = (params: MatrixQuery): Promise<any> => http.post('matrix/list', params) export const list = (params: MatrixQuery): Promise<any> => http.post('matrix/list', params)
export const add = (params: any): Promise<any> => http.post('matrix/add', params)
export const update = (params: any): Promise<any> => http.put('matrix', params)
export const del = (ids: string): Promise<any> => http.delete(`matrix/${ids}`)

3
src/apis/matrixCraft.ts

@ -8,3 +8,6 @@ export interface MatrixCraftQuery {
} }
export const list = (params: MatrixCraftQuery): Promise<any> => http.post('matrixCraft/list', params) export const list = (params: MatrixCraftQuery): Promise<any> => http.post('matrixCraft/list', params)
export const getListByMatrixId = (matrixId: number) => http.get(`matrixCraft/getListByMatrixId/${matrixId}`) export const getListByMatrixId = (matrixId: number) => http.get(`matrixCraft/getListByMatrixId/${matrixId}`)
export const add = (params: any) => http.post(`matrixCraft/add`, params)
export const update = (params: any) => http.put(`matrixCraft`, params)
export const del = (ids: string) => http.delete(`matrixCraft/${ids}`)

6
src/apis/point.ts

@ -0,0 +1,6 @@
import http from 'libs/http'
export const list = (params: any): Promise<any> => http.post('position/list', params)
export const add = (params: any): Promise<any> => http.post('position/add', params)
export const update = (params: any): Promise<any> => http.put('position', params)
export const del = (ids: string): Promise<any> => http.delete(`position/${ids}`)

60
src/components/martix/Edit/index.vue

@ -1,31 +1,65 @@
<script setup lang="ts"> <script setup lang="ts">
import { add, update } from 'apis/matrix'
import FtDialog from 'components/common/FTDialog/index.vue' import FtDialog from 'components/common/FTDialog/index.vue'
import { ref } from 'vue'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue'
defineProps({
matrixList: {
type: Array,
default: () => [],
const props = defineProps({
formData: {
type: Object,
default: () => ({}),
}, },
}) })
const emits = defineEmits(['ok', 'cancel'])
onMounted(() => {
if (props.formData.id) {
form.value = { ...props.formData }
}
})
const form = ref({}) const form = ref({})
const rules = { const rules = {
selectMatrixId: [
{ required: true, message: '请选择基质', trigger: 'blur' },
],
routeType: [
{ required: true, message: '请选择喷涂路线', trigger: 'blur' },
name: [
{ required: true, message: '请输入基质名称', trigger: 'blur' },
], ],
} }
const formRef = ref()
const okLoading = ref(false)
const okHandle = () => {
formRef.value.validate(async (valid: any) => {
if (!valid) {
return
}
okLoading.value = true
// TODO
if (form.value.id) {
await update(form.value)
}
else {
await add(form.value)
}
setTimeout(() => {
okLoading.value = false
FtMessage.success('保存成功')
emits('ok')
}, 300)
})
}
const cancel = () => {
emits('cancel')
}
</script> </script>
<template> <template>
<FtDialog visible title="新增工艺" width="40%">
<el-form label-width="120" :model="form" :rules="rules">
<FtDialog visible :title="form.id ? '编辑工艺' : '新增工艺'" width="40%" @ok="okHandle" @cancel="cancel">
<el-form ref="formRef" label-width="120" :model="form" :rules="rules">
<el-form-item label="工艺名称"> <el-form-item label="工艺名称">
<el-input placeholder="" />
<el-input v-model="form.name" placeholder="" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</FtDialog> </FtDialog>

39
src/components/martixCraft/Edit/index.vue

@ -1,4 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { add, update } from 'apis/matrixCraft'
import route from 'assets/images/route.png' import route from 'assets/images/route.png'
import route_active from 'assets/images/route_active.png' import route_active from 'assets/images/route_active.png'
import route_horizontal_active from 'assets/images/route_horizontal2.png' import route_horizontal_active from 'assets/images/route_horizontal2.png'
@ -6,6 +7,7 @@ import route_horizontal from 'assets/images/route_horizontal.png'
import route_vertical_active from 'assets/images/route_vertical2.png' import route_vertical_active from 'assets/images/route_vertical2.png'
import route_vertical from 'assets/images/route_vertical.png' import route_vertical from 'assets/images/route_vertical.png'
import FtDialog from 'components/common/FTDialog/index.vue' import FtDialog from 'components/common/FTDialog/index.vue'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
const props = defineProps({ const props = defineProps({
@ -17,11 +19,15 @@ const props = defineProps({
type: Object, type: Object,
default: () => ({}), default: () => ({}),
}, },
otherPage: {
type: Boolean,
default: false,
},
}) })
const emits = defineEmits(['ok', 'cancel']) const emits = defineEmits(['ok', 'cancel'])
onMounted(() => { onMounted(() => {
if (props.formData.id) {
if (props.formData.id || props.otherPage) {
form.value = { ...props.formData } form.value = { ...props.formData }
} }
}) })
@ -31,7 +37,7 @@ const form = ref({
matrixId: undefined, matrixId: undefined,
matrixCraftId: undefined, matrixCraftId: undefined,
matrixCraftName: undefined, matrixCraftName: undefined,
matrixPathType: 1, //
matrixPathType: 'horizontal', //
motorZHeight: undefined, // motorZHeight: undefined, //
gasPressure: undefined, // Mpa gasPressure: undefined, // Mpa
volume: undefined, // uL volume: undefined, // uL
@ -44,7 +50,7 @@ const form = ref({
const rules = { const rules = {
matrixId: [{ required: true, message: '请选择基质', trigger: 'change' }], matrixId: [{ required: true, message: '请选择基质', trigger: 'change' }],
matrixCraftName: [{ required: true, message: '请输入工艺名称', trigger: 'blur' }],
name: [{ required: true, message: '请输入工艺名称', trigger: 'blur' }],
motorZHeight: [{ required: true, message: '请输入Z轴高度', trigger: 'blur' }], motorZHeight: [{ required: true, message: '请输入Z轴高度', trigger: 'blur' }],
gasPressure: [{ required: true, message: '请输入氮气气压', trigger: 'blur' }], gasPressure: [{ required: true, message: '请输入氮气气压', trigger: 'blur' }],
volume: [{ required: true, message: '请输入基质流速', trigger: 'blur' }], volume: [{ required: true, message: '请输入基质流速', trigger: 'blur' }],
@ -68,22 +74,23 @@ const formRef = ref()
const okLoading = ref(false) const okLoading = ref(false)
const okHandle = () => { const okHandle = () => {
formRef.value.validate((valid: any) => {
formRef.value.validate(async (valid: any) => {
if (!valid) { if (!valid) {
return return
} }
okLoading.value = true okLoading.value = true
// TODO // TODO
if (form.value.id) { if (form.value.id) {
console.log('修改')
await update(form.value)
} }
else { else {
console.log('新增')
await add(form.value)
} }
setTimeout(() => { setTimeout(() => {
okLoading.value = false okLoading.value = false
FtMessage.success('保存成功')
emits('ok') emits('ok')
}, 3000)
}, 300)
}) })
} }
@ -100,24 +107,24 @@ const cancel = () => {
<el-option v-for="item in matrixList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in matrixList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工艺名称" prop="matrixCraftName">
<el-input v-model="form.matrixCraftName" placeholder="" />
<el-form-item label="工艺名称" prop="name">
<el-input v-model="form.name" placeholder="" />
</el-form-item> </el-form-item>
<el-form-item label="喷涂路线"> <el-form-item label="喷涂路线">
<div class="route-img"> <div class="route-img">
<img <img
style="margin-left: 20px" style="margin-left: 20px"
:src="form.matrixPathType === 1 ? route_horizontal_active : route_horizontal"
:src="form.matrixPathType === 'horizontal' ? route_horizontal_active : route_horizontal"
alt="" alt=""
@click="form.matrixPathType = 1"
@click="form.matrixPathType = 'horizontal'"
> >
<img <img
style="margin: 0 20px" style="margin: 0 20px"
:src="form.matrixPathType === 2 ? route_vertical_active : route_vertical"
:src="form.matrixPathType === 'vertical' ? route_vertical_active : route_vertical"
alt="" alt=""
@click="form.matrixPathType = 2"
@click="form.matrixPathType = 'vertical'"
> >
<img :src="form.matrixPathType === 3 ? route_active : route" alt="" @click="form.matrixPathType = 3">
<img :src="form.matrixPathType === 'grid' ? route_active : route" alt="" @click="form.matrixPathType = 'grid'">
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="Z轴高度" prop="motorZHeight"> <el-form-item label="Z轴高度" prop="motorZHeight">
@ -126,11 +133,11 @@ const cancel = () => {
</el-form-item> </el-form-item>
<el-form-item label="氮气气压" prop="gasPressure"> <el-form-item label="氮气气压" prop="gasPressure">
<el-input v-model="form.gasPressure" type="number" /> <el-input v-model="form.gasPressure" type="number" />
<span class="unit-text">MPa</span>
<span class="unit-text">Mpa</span>
</el-form-item> </el-form-item>
<el-form-item label="基质流速" prop="volume"> <el-form-item label="基质流速" prop="volume">
<el-input v-model="form.volume" type="number" /> <el-input v-model="form.volume" type="number" />
<span class="unit-text">UL/min</span>
<span class="unit-text">uL/min</span>
</el-form-item> </el-form-item>
<el-form-item label="是否加电" prop="highVoltageValue"> <el-form-item label="是否加电" prop="highVoltageValue">
<div class="voltage-box"> <div class="voltage-box">

73
src/components/point/Edit/index.vue

@ -1,40 +1,77 @@
<script setup lang="ts"> <script setup lang="ts">
import { add, update } from 'apis/point'
import FtDialog from 'components/common/FTDialog/index.vue' import FtDialog from 'components/common/FTDialog/index.vue'
import { ref } from 'vue'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue'
defineProps({
matrixList: {
type: Array,
default: () => [],
const props = defineProps({
formData: {
type: Object,
default: () => ({}),
}, },
}) })
const emits = defineEmits(['ok', 'cancel']) const emits = defineEmits(['ok', 'cancel'])
onMounted(() => {
if (props.formData.id) {
form.value = { ...props.formData }
}
})
const form = ref({}) const form = ref({})
const rules = { const rules = {
selectMatrixId: [
{ required: true, message: '请选择基质', trigger: 'blur' },
],
routeType: [
{ required: true, message: '请选择喷涂路线', trigger: 'blur' },
name: [
{ required: true, message: '请输入坐标名称', trigger: 'blur' },
{ required: true, message: '请输入x', trigger: 'blur' },
{ required: true, message: '请输入y', trigger: 'blur' },
{ required: true, message: '请输入z', trigger: 'blur' },
], ],
} }
const formRef = ref()
const okLoading = ref(false)
const okHandle = () => {
formRef.value.validate(async (valid: any) => {
if (!valid) {
return
}
okLoading.value = true
// TODO
if (form.value.id) {
await update(form.value)
}
else {
await add(form.value)
}
setTimeout(() => {
okLoading.value = false
FtMessage.success('保存成功')
emits('ok')
}, 300)
})
}
const cancel = () => { const cancel = () => {
emits('cancel') emits('cancel')
} }
const okHandle = () => {
emits('ok')
}
</script> </script>
<template> <template>
<FtDialog visible title="新增工艺" width="40%" @ok="okHandle" @cancel="cancel">
<el-form label-width="120" :model="form" :rules="rules">
<el-form-item label="工艺名称">
<el-input placeholder="" />
<FtDialog visible :title="form.id ? '编辑坐标' : '新增坐标'" width="40%" @ok="okHandle" @cancel="cancel">
<el-form ref="formRef" label-width="120" :model="form" :rules="rules">
<el-form-item label="坐标名称" prop="pointName">
<el-input v-model="form.pointName" placeholder="" />
</el-form-item>
<el-form-item label="x" prop="x">
<el-input v-model="form.x" placeholder="" />
</el-form-item>
<el-form-item label="y" prop="y">
<el-input v-model="form.y" placeholder="" />
</el-form-item>
<el-form-item label="z" prop="z">
<el-input v-model="form.z" placeholder="" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</FtDialog> </FtDialog>

2
src/libs/utils.ts

@ -57,7 +57,7 @@ export const cmdNameMap = {
motor_x_to_position: 'X轴移动', motor_x_to_position: 'X轴移动',
motor_y_to_position: 'Y轴移动', motor_y_to_position: 'Y轴移动',
motor_z_to_position: 'Z轴移动', motor_z_to_position: 'Z轴移动',
syringe_pump_injection_volume_set: '注射泵移动',
syringe_pump__start: '注射泵移动',
syringe_pump_stop: '注射泵停止移动', syringe_pump_stop: '注射泵停止移动',
high_voltage_open: '打开高压', high_voltage_open: '打开高压',
high_voltage_close: '关闭高压', high_voltage_close: '关闭高压',

2
src/views/debug/index.vue

@ -139,7 +139,7 @@ const dehumidifierValveClose = () => {
const syringePumpInjectionVolumeSet = () => { const syringePumpInjectionVolumeSet = () => {
const params = { const params = {
cmdName: 'syringe_pump_injection_volume_set',
cmdName: 'syringe_pump__start',
cmdId: '', cmdId: '',
param: { param: {
direction: form.direction, direction: form.direction,

52
src/views/log/index.vue

@ -1,6 +1,8 @@
<script setup lang="ts"> <script setup lang="ts">
import type { logQuery } from 'apis/log' import type { logQuery } from 'apis/log'
import { list } from 'apis/log' import { list } from 'apis/log'
import { list as matrixList } from 'apis/matrix'
import { list as matrixCraftList } from 'apis/matrixCraft'
import route2 from 'assets/images/route_horizontal.png' import route2 from 'assets/images/route_horizontal.png'
import route1 from 'assets/images/route_vertical.png' import route1 from 'assets/images/route_vertical.png'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
@ -17,6 +19,9 @@ const query = ref<logQuery>({
}) })
const loading = ref(false) const loading = ref(false)
const MatrixList = ref([])
const MatrixCraftList = ref([])
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
const res = await list(query.value) const res = await list(query.value)
@ -27,6 +32,10 @@ const getList = async () => {
...JSON.parse(item.matrixInfo), ...JSON.parse(item.matrixInfo),
} }
}) })
const res1 = await matrixList({ pageNum: 1, pageSize: 1000 })
MatrixList.value = res1.list
const res2 = await matrixCraftList({ pageNum: 1, pageSize: 1000 })
MatrixCraftList.value = res2.list
console.log(tableData.value) console.log(tableData.value)
total.value = res.total total.value = res.total
loading.value = false loading.value = false
@ -43,25 +52,40 @@ const pageChange = (pageNum: number, pageSize: number) => {
<div> <div>
<div class="table-box"> <div class="table-box">
<el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%"> <el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%">
<el-table-column prop="matrixName" label="基质名称" />
<el-table-column prop="name" label="工艺名称" />
<el-table-column prop="routeType" label="喷涂路线">
<el-table-column prop="matrixName" label="基质名称">
<template #default="scope">
<div class="scope-box">
<div>
{{ MatrixList.find(item => item.id === scope.row.matrixId)?.name }}
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="name" label="工艺名称">
<template #default="scope">
<div class="scope-box">
<div>
{{ MatrixCraftList.find(item => item.id === scope.row.matrixCraftId)?.name }}
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="matrixPathType" label="喷涂路线">
<template #default="scope"> <template #default="scope">
<div class="scope-box"> <div class="scope-box">
<img v-show="scope.row.routeType === 1" :src="route1" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 2" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 3" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'horizontal'" :src="route1" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'vertical'" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'grid'" :src="route2" width="20px" height="20px" alt="icon">
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="height" label="喷涂高度" width="100" />
<el-table-column prop="nitrogenFlowVelocity" label="氮气流速" width="100" />
<el-table-column prop="nitrogenAirPressure" label="氮气气压" width="100" />
<el-table-column prop="matrixFlowVelocity" label="基质流速" width="100" />
<el-table-column prop="voltage" label="电压" width="100" />
<el-table-column prop="movementSpeed" label="移速" width="100" />
<el-table-column prop="space" label="行间距" width="100" />
<el-table-column prop="updateTime" label="完成时间" />
<el-table-column prop="motorZHeight" label="喷涂高度" />
<el-table-column prop="gasPressure" label="氮气气压" />
<el-table-column prop="volume" label="基质流速" />
<el-table-column prop="highVoltageValue" label="电压" />
<el-table-column prop="movingSpeed" label="移速" />
<el-table-column prop="spacing" label="行间距" />
<el-table-column prop="times" label="喷涂遍数" />
</el-table> </el-table>
</div> </div>

54
src/views/matrix/index.vue

@ -1,8 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import type { MatrixQuery } from 'apis/matrix' import type { MatrixQuery } from 'apis/matrix'
import { list as listMatrix } from 'apis/matrix'
import { del, list as listMatrix } from 'apis/matrix'
import FtButton from 'components/common/FTButton/index.vue' import FtButton from 'components/common/FTButton/index.vue'
import Edit from 'components/martix/Edit/index.vue' import Edit from 'components/martix/Edit/index.vue'
import { ElMessageBox } from 'element-plus'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
onMounted(() => { onMounted(() => {
@ -27,7 +30,10 @@ const getList = async () => {
} }
const addVisible = ref(false) const addVisible = ref(false)
const formData = ref({})
const addHandle = () => { const addHandle = () => {
formData.value = {}
addVisible.value = true addVisible.value = true
} }
@ -42,6 +48,40 @@ const inputChange = () => {
query.value.pageSize = 10 query.value.pageSize = 10
getList() getList()
} }
const ok = () => {
addVisible.value = false
getList()
}
const selectedData = ref<any[]>([])
const handleSelectionChange = (val: any[]) => {
console.log(val)
selectedData.value = val
}
const editHandle = () => {
formData.value = selectedData.value[0]
addVisible.value = true
}
const delHandle = async () => {
const ids = selectedData.value.map((item: any) => item.id)
ElMessageBox.confirm('确认删除?', '提示', {
type: 'warning',
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
showClose: false,
closeOnClickModal: false,
closeOnPressEscape: false,
closeOnHashChange: false,
}).then(async () => {
await del(ids.join(','))
FtMessage.success('删除成功')
await getList()
})
}
</script> </script>
<template> <template>
@ -55,13 +95,17 @@ const inputChange = () => {
<FtButton type="primary" @click="addHandle"> <FtButton type="primary" @click="addHandle">
新增 新增
</FtButton> </FtButton>
<FtButton>编辑</FtButton>
<FtButton>删除</FtButton>
<FtButton :disabled="selectedData.length !== 1" @click="editHandle">
编辑
</FtButton>
<FtButton :disabled="selectedData.length === 0" @click="delHandle">
删除
</FtButton>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="table-box"> <div class="table-box">
<el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%">
<el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column prop="name" label="基质名称" /> <el-table-column prop="name" label="基质名称" />
</el-table> </el-table>
@ -70,7 +114,7 @@ const inputChange = () => {
<div class="table-footer"> <div class="table-footer">
<el-pagination size="large" background layout="prev, pager, next, total" :total @change="pageChange" /> <el-pagination size="large" background layout="prev, pager, next, total" :total @change="pageChange" />
</div> </div>
<Edit v-model="addVisible" />
<Edit v-if="addVisible" :form-data @ok="ok" @cancel="addVisible = false" />
</div> </div>
</template> </template>

52
src/views/matrixCraft/index.vue

@ -1,11 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import type { MatrixCraftQuery } from 'apis/matrixCraft' import type { MatrixCraftQuery } from 'apis/matrixCraft'
import { list as listMatrix } from 'apis/matrix' import { list as listMatrix } from 'apis/matrix'
import { list } from 'apis/matrixCraft'
import { del, list } from 'apis/matrixCraft'
import route2 from 'assets/images/route_horizontal.png' import route2 from 'assets/images/route_horizontal.png'
import route1 from 'assets/images/route_vertical.png' import route1 from 'assets/images/route_vertical.png'
import FtButton from 'components/common/FTButton/index.vue' import FtButton from 'components/common/FTButton/index.vue'
import Edit from 'components/martixCraft/Edit/index.vue' import Edit from 'components/martixCraft/Edit/index.vue'
import { ElMessageBox } from 'element-plus'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
onMounted(() => { onMounted(() => {
@ -55,9 +58,22 @@ const editHandle = () => {
addVisible.value = true addVisible.value = true
} }
const delHandle = () => {
const delHandle = async () => {
const ids = selectedData.value.map((item: any) => item.id) const ids = selectedData.value.map((item: any) => item.id)
console.log(ids)
ElMessageBox.confirm('确认删除?', '提示', {
type: 'warning',
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
showClose: false,
closeOnClickModal: false,
closeOnPressEscape: false,
closeOnHashChange: false,
}).then(async () => {
await del(ids.join(','))
FtMessage.success('删除成功')
await getList()
})
} }
const pageChange = (pageNum: number, pageSize: number) => { const pageChange = (pageNum: number, pageSize: number) => {
@ -110,24 +126,30 @@ const ok = () => {
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column prop="matrixName" label="基质名称" />
<el-table-column prop="matrixName" label="基质名称">
<template #default="scope">
<div class="scope-box">
{{ matrixList.find(item => item.id === scope.row.matrixId)?.name }}
</div>
</template>
</el-table-column>
<el-table-column prop="name" label="工艺名称" /> <el-table-column prop="name" label="工艺名称" />
<el-table-column prop="routeType" label="喷涂路线">
<el-table-column prop="matrixPathType" label="喷涂路线">
<template #default="scope"> <template #default="scope">
<div class="scope-box"> <div class="scope-box">
<img v-show="scope.row.routeType === 1" :src="route1" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 2" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 3" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'horizontal'" :src="route1" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'vertical'" :src="route2" width="20px" height="20px" alt="icon">
<img v-show="scope.row.routeType === 'grid'" :src="route2" width="20px" height="20px" alt="icon">
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="height" label="喷涂高度" width="100" />
<el-table-column prop="nitrogenFlowVelocity" label="氮气流速" width="100" />
<el-table-column prop="nitrogenAirPressure" label="氮气气压" width="100" />
<el-table-column prop="matrixFlowVelocity" label="基质流速" width="100" />
<el-table-column prop="voltage" label="电压" width="100" />
<el-table-column prop="movementSpeed" label="移速" width="100" />
<el-table-column prop="space" label="行间距" width="100" />
<el-table-column prop="motorZHeight" label="喷涂高度" />
<el-table-column prop="gasPressure" label="氮气气压" />
<el-table-column prop="volume" label="基质流速" />
<el-table-column prop="highVoltageValue" label="电压" />
<el-table-column prop="movingSpeed" label="移速" />
<el-table-column prop="spacing" label="行间距" />
<el-table-column prop="times" label="喷涂遍数" />
</el-table> </el-table>
</div> </div>

68
src/views/point/index.vue

@ -1,8 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import type { MatrixQuery } from 'apis/matrix' import type { MatrixQuery } from 'apis/matrix'
import { list as listMatrix } from 'apis/matrix'
import { del, list } from 'apis/point'
import FtButton from 'components/common/FTButton/index.vue' import FtButton from 'components/common/FTButton/index.vue'
import Edit from 'components/point/Edit/index.vue' import Edit from 'components/point/Edit/index.vue'
import { ElMessageBox } from 'element-plus'
import { FtMessage } from 'libs/message'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
onMounted(() => { onMounted(() => {
@ -14,20 +17,22 @@ const total = ref(0)
const query = ref<MatrixQuery>({ const query = ref<MatrixQuery>({
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
matrixName: undefined,
}) })
const loading = ref(false) const loading = ref(false)
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
const res = await listMatrix(query.value)
const res = await list(query.value)
tableData.value = res.list tableData.value = res.list
total.value = res.total total.value = res.total
loading.value = false loading.value = false
} }
const addVisible = ref(false) const addVisible = ref(false)
const formData = ref({})
const addHandle = () => { const addHandle = () => {
formData.value = {}
addVisible.value = true addVisible.value = true
} }
@ -37,42 +42,73 @@ const pageChange = (pageNum: number, pageSize: number) => {
getList() getList()
} }
const inputChange = () => {
query.value.pageNum = 1
query.value.pageSize = 10
const ok = () => {
addVisible.value = false
getList() getList()
} }
const selectedData = ref<any[]>([])
const handleSelectionChange = (val: any[]) => {
console.log(val)
selectedData.value = val
}
const editHandle = () => {
formData.value = selectedData.value[0]
addVisible.value = true
}
const delHandle = async () => {
const ids = selectedData.value.map((item: any) => item.id)
ElMessageBox.confirm('确认删除?', '提示', {
type: 'warning',
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
showClose: false,
closeOnClickModal: false,
closeOnPressEscape: false,
closeOnHashChange: false,
}).then(async () => {
await del(ids.join(','))
FtMessage.success('删除成功')
await getList()
})
}
</script> </script>
<template> <template>
<div> <div>
<el-row class="search-box"> <el-row class="search-box">
<el-col :span="12">
<el-input v-model="query.matrixName" class="my-input" placeholder="请输入坐标名称" clearable @input="inputChange" />
</el-col>
<el-col :span="12" />
<el-col :span="12"> <el-col :span="12">
<div style="float: right"> <div style="float: right">
<FtButton type="primary" @click="addHandle"> <FtButton type="primary" @click="addHandle">
新增 新增
</FtButton> </FtButton>
<FtButton>编辑</FtButton>
<FtButton>删除</FtButton>
<FtButton :disabled="selectedData.length !== 1" @click="editHandle">
编辑
</FtButton>
<FtButton :disabled="selectedData.length === 0" @click="delHandle">
删除
</FtButton>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="table-box"> <div class="table-box">
<el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%">
<el-table v-loading="loading" :data="tableData" header-row-class-name="table-header" height="100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column prop="name" label="坐标名称" />
<el-table-column prop="name" label="坐标code" />
<el-table-column prop="name" label="坐标值" />
<el-table-column prop="pointName" label="坐标名称" />
<el-table-column prop="x" label="x" />
<el-table-column prop="y" label="y" />
<el-table-column prop="z" label="z" />
</el-table> </el-table>
</div> </div>
<div class="table-footer"> <div class="table-footer">
<el-pagination size="large" background layout="prev, pager, next, total" :total @change="pageChange" /> <el-pagination size="large" background layout="prev, pager, next, total" :total @change="pageChange" />
</div> </div>
<Edit v-if="addVisible" />
<Edit v-if="addVisible" :form-data @ok="ok" @cancel="addVisible = false" />
</div> </div>
</template> </template>

107
src/views/spray/index.vue

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { list as listMatrix } from 'apis/matrix' import { list as listMatrix } from 'apis/matrix'
import { getListByMatrixId } from 'apis/matrixCraft'
import { getListByMatrixId, update } from 'apis/matrixCraft'
import route from 'assets/images/route.png' import route from 'assets/images/route.png'
import route_active from 'assets/images/route_active.png' import route_active from 'assets/images/route_active.png'
import route_horizontal_active from 'assets/images/route_horizontal2.png' import route_horizontal_active from 'assets/images/route_horizontal2.png'
@ -74,14 +74,14 @@ const form = ref({
matrixId: undefined, matrixId: undefined,
matrixCraftId: undefined, matrixCraftId: undefined,
matrixPathType: 'horizontal', // matrixPathType: 'horizontal', //
motorZHeight: 15, //
gasPressure: 1, // Mpa
volume: 10, // uL
motorZHeight: undefined, //
gasPressure: undefined, // Mpa
volume: undefined, // uL
highVoltage: true, // highVoltage: true, //
highVoltageValue: undefined, // highVoltageValue: undefined, //
spacing: undefined, // spacing: undefined, //
movingSpeed: 20, //
times: 1, //
movingSpeed: undefined, //
times: undefined, //
position: [{ select: true }, { select: false }, { select: false }, { select: false }], position: [{ select: true }, { select: false }, { select: false }, { select: false }],
}) })
@ -149,29 +149,29 @@ const startWork = async () => {
}) })
} }
const pauseWork = async () => {
const params = {
cmdName: 'matrix_spray_pause',
cmdId: '',
}
await sendControl(params)
}
const continueWork = async () => {
const params = {
cmdName: 'matrix_spray_continue',
cmdId: '',
param: {
motorZHeight: form.value.motorZHeight, //
gasPressure: form.value.gasPressure, // Mpa
volume: form.value.volume, // uL
highVoltage: form.value.highVoltage, //
highVoltageValue: form.value.highVoltageValue, //
movingSpeed: form.value.movingSpeed, //
},
}
await sendControl(params)
}
// const pauseWork = async () => {
// const params = {
// cmdName: 'matrix_spray_pause',
// cmdId: '',
// }
// await sendControl(params)
// }
//
// const continueWork = async () => {
// const params = {
// cmdName: 'matrix_spray_continue',
// cmdId: '',
// param: {
// motorZHeight: form.value.motorZHeight, //
// gasPressure: form.value.gasPressure, // Mpa
// volume: form.value.volume, // uL
// highVoltage: form.value.highVoltage, //
// highVoltageValue: form.value.highVoltageValue, //
// movingSpeed: form.value.movingSpeed, //
// },
// }
// await sendControl(params)
// }
const stopWork = async () => { const stopWork = async () => {
const params = { const params = {
@ -226,28 +226,37 @@ const rules = {
} }
const addVisible = ref(false) const addVisible = ref(false)
const ok = () => {
const ok = async () => {
addVisible.value = false addVisible.value = false
matrixCraftList.value = await getListByMatrixId(form.value.matrixId)
} }
const upDateLoading = ref(false) const upDateLoading = ref(false)
const updateCraft = () => {
const updateCraft = async () => {
if (!form.value.matrixCraftId) {
FtMessage.error('请选择工艺')
return
}
upDateLoading.value = true upDateLoading.value = true
// const params = {
// ...form.value,
// id: form.value.matrixCraftId,
// }
setTimeout(() => {
upDateLoading.value = false
}, 3000)
const params = {
...form.value,
id: form.value.matrixCraftId,
}
await update(params)
FtMessage.success('保存成功')
upDateLoading.value = false
} }
const formData = ref({ const formData = ref({
}) })
const addCraft = () => { const addCraft = () => {
console.log(form.value)
formData.value = { formData.value = {
...form.value, ...form.value,
id: undefined,
name: undefined,
} }
console.log(formData.value)
addVisible.value = true addVisible.value = true
} }
</script> </script>
@ -263,12 +272,12 @@ const addCraft = () => {
<ft-button type="primary" @click="updateParam"> <ft-button type="primary" @click="updateParam">
调整参数 调整参数
</ft-button> </ft-button>
<ft-button @click="pauseWork">
暂停喷涂
</ft-button>
<ft-button @click="continueWork">
继续喷涂
</ft-button>
<!-- <ft-button @click="pauseWork"> -->
<!-- 暂停喷涂 -->
<!-- </ft-button> -->
<!-- <ft-button @click="continueWork"> -->
<!-- 继续喷涂 -->
<!-- </ft-button> -->
<ft-button @click="stopWork"> <ft-button @click="stopWork">
结束喷涂 结束喷涂
</ft-button> </ft-button>
@ -325,11 +334,11 @@ const addCraft = () => {
</el-form-item> </el-form-item>
<el-form-item label="氮气气压" prop="gasPressure"> <el-form-item label="氮气气压" prop="gasPressure">
<el-input v-model="form.gasPressure" type="number" /> <el-input v-model="form.gasPressure" type="number" />
<span class="unit-text">MPa</span>
<span class="unit-text">Mpa</span>
</el-form-item> </el-form-item>
<el-form-item label="基质流速" prop="volume"> <el-form-item label="基质流速" prop="volume">
<el-input v-model="form.volume" type="number" /> <el-input v-model="form.volume" type="number" />
<span class="unit-text">UL/min</span>
<span class="unit-text">uL/min</span>
</el-form-item> </el-form-item>
<el-form-item label="是否加电" prop="highVoltageValue"> <el-form-item label="是否加电" prop="highVoltageValue">
<div class="voltage-box"> <div class="voltage-box">
@ -374,11 +383,11 @@ const addCraft = () => {
</el-form-item> </el-form-item>
<el-form-item label="氮气气压" prop="gasPressure"> <el-form-item label="氮气气压" prop="gasPressure">
<el-input v-model="updateForm.gasPressure" type="number" /> <el-input v-model="updateForm.gasPressure" type="number" />
<span class="unit-text">MPa</span>
<span class="unit-text">Mpa</span>
</el-form-item> </el-form-item>
<el-form-item label="基质流速" prop="volume"> <el-form-item label="基质流速" prop="volume">
<el-input v-model="updateForm.volume" type="number" /> <el-input v-model="updateForm.volume" type="number" />
<span class="unit-text">UL/min</span>
<span class="unit-text">uL/min</span>
</el-form-item> </el-form-item>
<el-form-item label="是否加电" prop="highVoltageValue"> <el-form-item label="是否加电" prop="highVoltageValue">
<div class="voltage-box"> <div class="voltage-box">
@ -402,7 +411,7 @@ const addCraft = () => {
</el-form> </el-form>
</el-drawer> </el-drawer>
<start-spray v-if="visible" v-model="text" :source-data="form" @cancel="visible = false" /> <start-spray v-if="visible" v-model="text" :source-data="form" @cancel="visible = false" />
<Edit v-if="addVisible" :matrix-list :form-data @ok="ok" @cancel="addVisible = false" />
<Edit v-if="addVisible" :matrix-list :form-data other-page @ok="ok" @cancel="addVisible = false" />
</div> </div>
</template> </template>

2
src/views/spraySet/index.vue

@ -14,7 +14,7 @@ const startWork = () => {
title: '提示', title: '提示',
message: h('div', null, [ message: h('div', null, [
h('p', null, '请确认清洗/预充/除湿均已完成 '), h('p', null, '请确认清洗/预充/除湿均已完成 '),
h('p', null, '请确认外部氮气压力大于0.35MPa'),
h('p', null, '请确认外部氮气压力大于0.35Mpa'),
]), ]),
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',

4
vite.config.ts

@ -76,8 +76,8 @@ export default defineConfig({
host: '0.0.0.0', host: '0.0.0.0',
proxy: { proxy: {
'/api': { '/api': {
// target: 'http://192.168.1.199:8080',
target: 'http://192.168.1.200:8080',
target: 'http://192.168.1.199:8080',
// target: 'http://192.168.1.200:8080',
// secure: false, // secure: false,
changeOrigin: true, // 是否跨域 changeOrigin: true, // 是否跨域
rewrite: path => path.replace(/^\/api/, 'api'), rewrite: path => path.replace(/^\/api/, 'api'),

Loading…
Cancel
Save