修改治具字段名

增加 lodash 库
This commit is contained in:
tao
2025-12-24 11:08:40 +08:00
parent cef3725a6e
commit e604d75e31
9 changed files with 64 additions and 38 deletions

2
components.d.ts vendored
View File

@@ -36,6 +36,7 @@ declare module 'vue' {
ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
ARow: typeof import('ant-design-vue/es')['Row']
ASelect: typeof import('ant-design-vue/es')['Select']
ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
ASteps: typeof import('ant-design-vue/es')['Steps']
@@ -54,6 +55,7 @@ declare module 'vue' {
ILucideMonitor: typeof import('~icons/lucide/monitor')['default']
ILucidePackage: typeof import('~icons/lucide/package')['default']
ILucideRefreshCw: typeof import('~icons/lucide/refresh-cw')['default']
ILucideRotateCw: typeof import('~icons/lucide/rotate-cw')['default']
ILucideServer: typeof import('~icons/lucide/server')['default']
ILucideSettings: typeof import('~icons/lucide/settings')['default']
ILucideShieldCheck: typeof import('~icons/lucide/shield-check')['default']

8
package-lock.json generated
View File

@@ -8,9 +8,11 @@
"name": "rd_mes_front_hmi",
"version": "0.0.1",
"dependencies": {
"@types/lodash": "^4.17.21",
"ant-design-vue": "^4.2.6",
"axios": "^1.10.0",
"jsencrypt": "^3.5.4",
"lodash": "^4.17.21",
"pinia": "^3.0.3",
"unplugin-vue-components": "^28.7.0",
"vue": "^3.5.13",
@@ -943,6 +945,12 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
"license": "MIT"
},
"node_modules/@types/node": {
"version": "24.0.3",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-24.0.3.tgz",

View File

@@ -9,9 +9,11 @@
"preview": "vite preview"
},
"dependencies": {
"@types/lodash": "^4.17.21",
"ant-design-vue": "^4.2.6",
"axios": "^1.10.0",
"jsencrypt": "^3.5.4",
"lodash": "^4.17.21",
"pinia": "^3.0.3",
"unplugin-vue-components": "^28.7.0",
"vue": "^3.5.13",

View File

@@ -1,9 +1,9 @@
import request from "@/api/request";
import type { FixtureCombinationData, FixtureCombinationQuery } from "./model";
import type { MaskCombinationData, MaskCombinationQuery } from "./model";
import type { ID } from "@/api/common";
// 查询治具组合列表
export function listMaskCombination(params: FixtureCombinationQuery) {
export function listMaskCombination(params: MaskCombinationQuery) {
return request({
url: "/tpm/mask/combination/list",
method: "get",
@@ -12,7 +12,7 @@ export function listMaskCombination(params: FixtureCombinationQuery) {
}
// 查询治具组合包含的治具列表
export function listCombinationAssignMask(id: ID, params: FixtureCombinationQuery) {
export function listCombinationAssignMask(id: ID, params: MaskCombinationQuery) {
return request({
url: "/tpm/mask/combination/" + id + "/masks",
method: "get",
@@ -21,7 +21,7 @@ export function listCombinationAssignMask(id: ID, params: FixtureCombinationQuer
}
// 高级查询治具组合列表
export function advListMaskCombination(params: FixtureCombinationQuery) {
export function advListMaskCombination(params: MaskCombinationQuery) {
return request({
url: "/tpm/mask/combination/advList",
method: "get",
@@ -38,7 +38,7 @@ export function getMaskCombination(id: ID) {
}
// 新增治具组合
export function addMaskCombination(data: FixtureCombinationData) {
export function addMaskCombination(data: MaskCombinationData) {
return request({
url: "/tpm/mask/combination",
method: "post",
@@ -47,7 +47,7 @@ export function addMaskCombination(data: FixtureCombinationData) {
}
// 修改治具组合
export function updateMaskCombination(data: FixtureCombinationData) {
export function updateMaskCombination(data: MaskCombinationData) {
return request({
url: "/tpm/mask/combination",
method: "put",
@@ -64,7 +64,7 @@ export function delMaskCombination(id: ID) {
}
// 新增治具组合与治具关联关系
export function addMaskCombinationAssignment(data: FixtureCombinationData) {
export function addMaskCombinationAssignment(data: MaskCombinationData) {
return request({
url: "/tpm/mask/combination/assignment",
method: "post",

View File

@@ -2,7 +2,7 @@ import { BaseEntity, PageQuery, type ID } from "@/api/common";
/**
*
*/
export interface FixtureCombinationQuery extends PageQuery {
export interface MaskCombinationQuery extends PageQuery {
combinationName?: string;
combinationCode?: string;
combinationStatus?: string;
@@ -15,7 +15,7 @@ export interface FixtureCombinationQuery extends PageQuery {
/**
*
*/
export interface FixtureCombinationData extends BaseEntity {
export interface MaskCombinationData extends BaseEntity {
combinationName?: string;
combinationCode?: string;
combinationStatus?: string;

View File

@@ -20,7 +20,7 @@
</header>
</template>
<script setup>
<script setup lang="ts">
import { useRouter } from 'vue-router';
import { Modal } from 'ant-design-vue';
import { useAuthStore, useUserStore } from '@/store';
@@ -57,6 +57,13 @@ defineProps({
}
});
defineSlots<{
'default'(): any;
'left-opts'(): any;
'title'(): any;
'right-opts'(): any;
}>();
const emit = defineEmits(['back']);
const router = useRouter();

View File

@@ -44,10 +44,10 @@ const routes = [
import("@/views/pwoManage/infeed/rawMaterial/index.vue"),
},
{
path: "fixture",
name: "Fixture",
path: "mask",
name: "Mask",
component: () =>
import("@/views/pwoManage/infeed/fixture/index.vue"),
import("@/views/pwoManage/infeed/mask/index.vue"),
},
],
},

View File

@@ -8,7 +8,7 @@ const route = useRoute();
const menuItems = [
{ label: '主材', key: 'PrimaryMaterial', progress: 30 },
{ label: '材料', key: 'RawMaterial', progress: 50 },
{ label: '治具', key: 'Fixture', progress: 80 },
{ label: '治具', key: 'Mask', progress: 80 },
];
const activeKey = computed(() => route.name as string);
@@ -30,8 +30,8 @@ defineExpose({
</script>
<template>
<a-row :gutter="24" class="infeed-layout">
<a-col :span="4">
<a-row class="infeed-layout">
<a-col :span="4" class="menu-wrapper">
<div class="menu-list">
<span class="infeed-title">进站</span>
<div
@@ -130,7 +130,14 @@ defineExpose({
}
}
.menu-wrapper {
padding: 12px;
border-radius: 7px;
background-color: #f3f3f3;
}
.content-wrapper {
height: 100%;
padding: 12px;
}
</style>

View File

@@ -2,9 +2,9 @@
import { ref, onMounted } from 'vue';
import { message } from 'ant-design-vue';
import type { ColumnsType } from 'ant-design-vue/es/table/interface';
import { listMaskCombination, listCombinationAssignMask } from "@/api/pwoManage/fixtureCombination";
import { listMaskCombination, listCombinationAssignMask } from "@/api/pwoManage/maskCombination";
interface FixtureTableItem {
interface MaskTableItem {
key: string;
operationTitle: string;
operationCode: string;
@@ -13,7 +13,7 @@ interface FixtureTableItem {
[key: string]: any;
}
interface FixtureCombinationItem {
interface MaskCombinationItem {
key: string;
combinationCode: string;
combinationName: string;
@@ -21,7 +21,7 @@ interface FixtureCombinationItem {
[key: string]: any;
}
const fixtureColumns = [
const maskColumns = [
{ title: '序号', dataIndex: 'index', key: 'index', align: 'center', width: 80 },
{ title: '工序编码', dataIndex: 'operationCode', key: 'operationCode', align: 'center' },
{ title: '工序名称', dataIndex: 'operationTitle', key: 'operationTitle', align: 'center' },
@@ -30,24 +30,24 @@ const fixtureColumns = [
];
//
const fixtureTableData = ref<FixtureTableItem[]>([]);
const maskTableData = ref<MaskTableItem[]>([]);
const fixtureInput = ref<string>('');
const maskInput = ref<string>('');
const openFixtureModal = ref(false)
const fixtureCombinationColumns = [
const openMaskModal = ref(false)
const maskCombinationColumns = [
{ title: '序号', dataIndex: 'index', key: 'index', align: 'center', width: 80 },
{ title: '组合编码', dataIndex: 'combinationCode', key: 'combinationCode', align: 'center' },
{ title: '组合名称', dataIndex: 'combinationName', key: 'combinationName', align: 'center' },
{ title: '组合状态', dataIndex: 'combinationStatus', key: 'combinationStatus', align: 'center' },
{ title: '操作', dataIndex: 'action', key: 'action', align: 'center', width: 100 },
]
const fixtureCombinationTableData = ref<FixtureCombinationItem[]>([])
const maskCombinationTableData = ref<MaskCombinationItem[]>([])
const fetchCombinationList = async () => {
try {
const { rows, total } = await listMaskCombination({})
if (total as number <= 0) throw new Error('未查询到组合列表');
fixtureCombinationTableData.value = rows;
maskCombinationTableData.value = rows;
} catch (error: any) {
message.error(error.message || '获取工单信息失败');
}
@@ -63,7 +63,7 @@ const handleBind = async (id: number) => {
const newCombination = rows.filter(item => !existingCombination.value.has(item.id))
newCombination.forEach(item => {
fixtureTableData.value.push({
maskTableData.value.push({
key: item.id,
operationCode: item.operationCode,
operationTitle: item.operationTitle,
@@ -74,7 +74,7 @@ const handleBind = async (id: number) => {
})
message.success('绑定成功')
openFixtureModal.value = false
openMaskModal.value = false
}
//
@@ -99,13 +99,13 @@ fetchCombinationList()
</script>
<template>
<div class="fixture__container">
<div class="mask__container">
<a-row class="main-content" :gutter="24">
<a-col :span="14" class="fixture-item__container">
<a-col :span="14" class="mask-item__container">
<div class="main-title">治具组合信息</div>
<a-button size="large" @click="() => openFixtureModal = true">绑定治具组合</a-button>
<a-button size="large" @click="() => openMaskModal = true">绑定治具组合</a-button>
<div class="table-wrapper" ref="customTable">
<a-table :dataSource="fixtureTableData" :columns="fixtureColumns as ColumnsType<FixtureTableItem>"
<a-table :dataSource="maskTableData" :columns="maskColumns as ColumnsType<MaskTableItem>"
:pagination="false" bordered sticky size="middle" :scroll="{ y: tableHeight }">
<template #bodyCell="{ column, index }">
<template v-if="column.key === 'index'">{{ index + 1 }}</template>
@@ -113,11 +113,11 @@ fetchCombinationList()
</a-table>
</div>
</a-col>
<a-col :span="10" class="fixture-item__container">
<a-col :span="10" class="mask-item__container">
<div class="main-title">治具校验</div>
<a-row>
<a-col :span="20">
<a-input size="large" v-model:value="fixtureInput" @pressEnter="" placeholder="按下回车校验" />
<a-input size="large" v-model:value="maskInput" @pressEnter="" placeholder="按下回车校验" />
</a-col>
<a-col :span="3" :offset="1">
<a-button size="large" @click="">校验</a-button>
@@ -136,8 +136,8 @@ fetchCombinationList()
</a-col>
</a-row>
<a-modal v-model:open="openFixtureModal" title="绑定治具组合" width="50vw" :bodyStyle="{ padding: '20px 0' }">
<a-table :dataSource="fixtureCombinationTableData" :columns="fixtureCombinationColumns as ColumnsType<FixtureCombinationItem>"
<a-modal v-model:open="openMaskModal" title="绑定治具组合" width="50vw" :bodyStyle="{ padding: '20px 0' }">
<a-table :dataSource="maskCombinationTableData" :columns="maskCombinationColumns as ColumnsType<MaskCombinationItem>"
:pagination="false" bordered sticky :scroll="{ y: tableHeight }">
<template #bodyCell="{ column, index, record }">
<template v-if="column.key === 'index'">{{ index + 1 }}</template>
@@ -151,7 +151,7 @@ fetchCombinationList()
</template>
<style scoped lang="scss">
.fixture__container {
.mask__container {
height: 100%;
display: flex;
flex-direction: column;
@@ -161,7 +161,7 @@ fetchCombinationList()
flex: 1;
overflow: hidden;
.fixture-item__container {
.mask-item__container {
display: flex;
flex-direction: column;
gap: 16px;