This commit is contained in:
andy 2026-05-26 15:22:23 +08:00
parent da45bb7597
commit edceeafe48
4 changed files with 39 additions and 54 deletions

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{ {
"name":"csy-ui", "name": "mes",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "csy-ui", "name": "mes",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@vicons/ionicons5": "^0.12.0", "@vicons/ionicons5": "^0.12.0",

View File

@ -2,8 +2,8 @@ import { request } from '@/utils/request'
// 生产订单 类型定义 // 生产订单 类型定义
export interface OrderItem { export interface OrderItem {
id?: number id?: number,
productionCode?: string
name?: string name?: string
code?: string code?: string
@ -13,6 +13,7 @@ export interface OrderItem {
quantity?: number quantity?: number
projectId?: number projectId?: number
projectName?: string
parentId?: number parentId?: number

View File

@ -118,9 +118,9 @@ const routes: RouteRecordRaw[] = [
}, },
//运营管理 //运营管理
{ {
path: 'biz/product', path: 'biz/orderItem',
name: 'product', name: 'product',
component: () => import('@/views/biz/product/index.vue'), component: () => import('@/views/biz/orderItem/index.vue'),
meta: { title: '商品管理', icon: 'ListOutline' } meta: { title: '商品管理', icon: 'ListOutline' }
}, },
{ {

View File

@ -36,20 +36,20 @@
<n-space> <n-space>
<n-button type="primary" @click="handleAdd"> <n-button type="primary" @click="handleAdd">
<template #icon><n-icon><AddOutline /></n-icon></template> <template #icon><n-icon><AddOutline /></n-icon></template>
新增 新增/补单
</n-button> </n-button>
<n-button @click="importModalVisible = true"> <!-- <n-button @click="importModalVisible = true">
<template #icon><n-icon><CloudUploadOutline /></n-icon></template> <template #icon><n-icon><CloudUploadOutline /></n-icon></template>
导入 导入
</n-button> </n-button>
<n-button @click="handleExport"> <n-button @click="handleExport">
<template #icon><n-icon><DownloadOutline /></n-icon></template> <template #icon><n-icon><DownloadOutline /></n-icon></template>
导出{{ selectedIds.length > 0 ? `(${selectedIds.length})` : '' }} 导出{{ selectedIds.length > 0 ? `(${selectedIds.length})` : '' }}
</n-button> </n-button> -->
<n-button type="error" :disabled="selectedIds.length === 0" @click="handleBatchDelete"> <!-- <n-button type="error" :disabled="selectedIds.length === 0" @click="handleBatchDelete">
<template #icon><n-icon><TrashOutline /></n-icon></template> <template #icon><n-icon><TrashOutline /></n-icon></template>
删除 删除
</n-button> </n-button> -->
</n-space> </n-space>
</div> </div>
@ -70,57 +70,39 @@
<!-- 新增/编辑弹窗 --> <!-- 新增/编辑弹窗 -->
<n-modal v-model:show="modalVisible" preset="card" :title="modalTitle" style="width: 600px"> <n-modal v-model:show="modalVisible" preset="card" :title="modalTitle" style="width: 600px">
<n-form ref="formRef" :model="formData" :rules="formRules" label-placement="left" label-width="100px"> <n-form ref="formRef" :model="formData" :rules="formRules" label-placement="left" label-width="100px">
<n-form-item label="生产令号" path="productionCode">
<n-input v-model:value="formData.productionCode" placeholder="请输入生产令号" />
</n-form-item>
<n-form-item label="物料名称" path="name"> <n-form-item label="物料名称" path="name">
<n-input v-model:value="formData.name" placeholder="请输入物料名称" /> <n-input v-model:value="formData.name" placeholder="请输入物料名称" readonly />
</n-form-item> </n-form-item>
<n-form-item label="物料编码" path="code"> <n-form-item label="物料编码" path="code">
<n-input v-model:value="formData.code" placeholder="请输入物料编码" /> <n-input v-model:value="formData.code" placeholder="请输入物料编码" readonly />
</n-form-item> </n-form-item>
<n-form-item label="产品序列" path="sort"> <n-form-item label="产品序列" path="sort">
<n-input v-model:value="formData.sort" placeholder="请输入产品序列" /> <n-input v-model:value="formData.sort" placeholder="请输入产品序列" readonly />
</n-form-item> </n-form-item>
<n-form-item label="生产数量" path="quantity"> <n-form-item label="生产数量" path="quantity">
<n-input v-model:value="formData.quantity" placeholder="请输入生产数量" /> <n-input v-model:value="formData.quantity" placeholder="请输入生产数量" readonly />
</n-form-item> </n-form-item>
<n-form-item label="产品id" path="projectId"> <n-form-item label="产品名称" path="projectName">
<n-input v-model:value="formData.projectId" placeholder="请输入产品id" /> <n-input v-model:value="formData.projectName" placeholder="请输入产品名称" readonly />
</n-form-item> </n-form-item>
<n-form-item label="父主键id" path="parentId"> <n-form-item label="是否半成品" path="sfProduct">
<n-input v-model:value="formData.parentId" placeholder="请输入父主键id" />
</n-form-item>
<n-form-item label="是否半成品, 1是 0不是" path="sfProduct">
<n-input v-model:value="formData.sfProduct" placeholder="请输入是否半成品, 1是 0不是" /> <n-input v-model:value="formData.sfProduct" placeholder="请输入是否半成品, 1是 0不是" />
</n-form-item> </n-form-item>
<n-form-item label="是否采购, 1是 0不是" path="procurement"> <n-form-item label="是否采购" path="procurement">
<n-input v-model:value="formData.procurement" placeholder="请输入是否采购, 1是 0不是" /> <n-input v-model:value="formData.procurement" placeholder="请输入是否采购, 1是 0不是" />
</n-form-item> </n-form-item>
<n-form-item label="开始时间" path="beginTime"> <n-form-item label="预计开始时间" path="beginTime">
<n-date-picker v-model:value="formData.beginTime" type="datetime" clearable style="width: 100%" /> <n-date-picker v-model:value="formData.beginTime" type="datetime" clearable style="width: 100%" />
</n-form-item> </n-form-item>
<n-form-item label="结束时间" path="endTime"> <n-form-item label="预计结束时间" path="endTime">
<n-date-picker v-model:value="formData.endTime" type="datetime" clearable style="width: 100%" /> <n-date-picker v-model:value="formData.endTime" type="datetime" clearable style="width: 100%" />
</n-form-item> </n-form-item>
<n-form-item label="实际开始时间" path="actualStartTime">
<n-date-picker v-model:value="formData.actualStartTime" type="datetime" clearable style="width: 100%" />
</n-form-item>
<n-form-item label="实际结束时间" path="actualEndTime">
<n-date-picker v-model:value="formData.actualEndTime" type="datetime" clearable style="width: 100%" />
</n-form-item>
<n-form-item label="派工接收人" path="assingWorkId"> <n-form-item label="派工接收人" path="assingWorkId">
<n-input v-model:value="formData.assingWorkId" placeholder="请输入派工接收人" /> <n-input v-model:value="formData.assingWorkId" placeholder="请输入派工接收人" />
</n-form-item> </n-form-item>
<n-form-item label="派工时间" path="assingWorkTime">
<n-date-picker v-model:value="formData.assingWorkTime" type="datetime" clearable style="width: 100%" />
</n-form-item>
<n-form-item label="派工操作人" path="assingWorkOperationId">
<n-input v-model:value="formData.assingWorkOperationId" placeholder="请输入派工操作人" />
</n-form-item>
<n-form-item label="派工操作时间;派工操作时间" path="assingWorkOperationTime">
<n-date-picker v-model:value="formData.assingWorkOperationTime" type="datetime" clearable style="width: 100%" />
</n-form-item>
<n-form-item label="是否开工;是否开工" path="starter">
<n-input v-model:value="formData.starter" placeholder="请输入是否开工;是否开工" />
</n-form-item>
</n-form> </n-form>
<template #footer> <template #footer>
<n-space justify="end"> <n-space justify="end">
@ -198,11 +180,14 @@ const modalTitle = ref('')
const importModalVisible = ref(false) const importModalVisible = ref(false)
const formRef = ref() const formRef = ref()
const defaultFormData: OrderItem = { const defaultFormData: OrderItem = {
id: undefined,
productionCode:'',
name: '', name: '',
code: '', code: '',
sort: undefined, sort: undefined,
quantity: undefined, quantity: undefined,
projectId: undefined, projectId: undefined,
projectName:'',
parentId: undefined, parentId: undefined,
sfProduct: undefined, sfProduct: undefined,
procurement: undefined, procurement: undefined,
@ -227,26 +212,25 @@ const formRules = {
// //
const columns: DataTableColumns<OrderItem> = [ const columns: DataTableColumns<OrderItem> = [
{ type: 'selection' }, { type: 'selection' },
{ title: '主键id', key: 'id' }, { title: '产品名称', key: 'projectName' },
{ title: '物料名称', key: 'name' }, { title: '物料名称', key: 'name' },
{ title: '物料编码', key: 'code' }, { title: '物料编码', key: 'code' },
{ title: '产品序列', key: 'sort' }, { title: '产品序列', key: 'sort' },
{ title: '生产数量', key: 'quantity' }, { title: '生产数量', key: 'quantity' },
{ title: '产品id', key: 'projectId' }, { title: '是否半成品', key: 'sfProduct' },
{ title: '是否半成品, 1是 0不是', key: 'sfProduct' }, { title: '是否采购', key: 'procurement' },
{ title: '是否采购, 1是 0不是', key: 'procurement' },
{ title: '开始时间', key: 'beginTime' }, { title: '开始时间', key: 'beginTime' },
{ title: '结束时间', key: 'endTime' }, { title: '结束时间', key: 'endTime' },
{ title: '实际开始时间', key: 'actualStartTime' }, { title: '实际开始时间', key: 'actualStartTime' },
{ title: '实际结束时间', key: 'actualEndTime' }, { title: '实际结束时间', key: 'actualEndTime' },
{ title: '备注', key: 'remark' }, { title: '派工操作人', key: 'assingWorkOperationName' },
{ title: '创建时间', key: 'createTime', width: 180 }, { title: '派工操作时间', key: 'assingWorkOperationTime' },
{ title: '创建人', key: 'createBy' }, { title: '派工接收人', key: 'assingWorkName' },
{ title: '派工接收人', key: 'assingWorkId' },
{ title: '派工时间', key: 'assingWorkTime' }, { title: '派工时间', key: 'assingWorkTime' },
{ title: '派工操作人', key: 'assingWorkOperationId' }, { title: '是否开工', key: 'starter' },
{ title: '派工操作时间;派工操作时间', key: 'assingWorkOperationTime' }, { title: '备注', key: 'remark' },
{ title: '是否开工;是否开工', key: 'starter' }, // { title: '', key: 'createTime', width: 100 },
// { title: '', key: 'createBy' },
{ {
title: '操作', title: '操作',
key: 'actions', key: 'actions',
@ -258,7 +242,7 @@ const columns: DataTableColumns<OrderItem> = [
default: () => [h(NIcon, null, { default: () => h(CreateOutline) }), ' 编辑'] default: () => [h(NIcon, null, { default: () => h(CreateOutline) }), ' 编辑']
}), }),
h(NButton, { size: 'small', quaternary: true, type: 'error', onClick: () => handleDelete(row) }, { h(NButton, { size: 'small', quaternary: true, type: 'error', onClick: () => handleDelete(row) }, {
default: () => [h(NIcon, null, { default: () => h(TrashOutline) }), ' 删除'] default: () => [h(NIcon, null, { default: () => h(TrashOutline) }), ' 派工']
}) })
]) ])
} }