From 2dab3bd5546b4dd714b79b2f2548237d62d026b9 Mon Sep 17 00:00:00 2001 From: zhousq Date: Mon, 1 Apr 2024 15:00:26 +0800 Subject: [PATCH 01/12] =?UTF-8?q?2024-04-01=20=E5=87=A0=E6=97=A5=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=8E=92=E4=BA=A7=E5=8F=8A=E5=B7=A5=E8=89=BA=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=E5=BD=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/orderDay/index.ts | 102 ++++ src/utils/dict.ts | 6 + .../mes/orderDay/components/BasicFormV2.vue | 459 ++++++++++++++++++ .../mes/orderDay/components/orderDetail.vue | 237 +++++++++ .../mes/orderDay/components/schedule.vue | 332 +++++++++++++ src/views/mes/orderDay/index.vue | 331 +++++++++++++ src/views/mes/orderDay/orderDay.data.ts | 327 +++++++++++++ .../processroute/components/configDialog.vue | 102 +++- .../processroute/components/graphbase.data.ts | 8 +- 9 files changed, 1893 insertions(+), 11 deletions(-) create mode 100644 src/api/mes/orderDay/index.ts create mode 100644 src/views/mes/orderDay/components/BasicFormV2.vue create mode 100644 src/views/mes/orderDay/components/orderDetail.vue create mode 100644 src/views/mes/orderDay/components/schedule.vue create mode 100644 src/views/mes/orderDay/index.vue create mode 100644 src/views/mes/orderDay/orderDay.data.ts diff --git a/src/api/mes/orderDay/index.ts b/src/api/mes/orderDay/index.ts new file mode 100644 index 000000000..0b88e4782 --- /dev/null +++ b/src/api/mes/orderDay/index.ts @@ -0,0 +1,102 @@ +import request from '@/config/axios' + +export interface OrderDayVO { + status: string + remark: string + planNoMonth: string + planNoDay: string + productCode: string + workroomCode: string + lineCode: string + planCount: number + processrouteCode: string + tempProcessroute: string + standardBom: string + tempBom: string + workMode: string + planDate: Date + startTime: Date + endTime: Date + taskMode: string +} + +// 查询生产日计划列表 +export const getOrderDayPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/orderday/senior', data }) + } else { + return await request.get({ url: `/mes/orderday/page`, params }) + } +} + +// 查询生产日计划详情 +export const getOrderDay = async (id: number) => { + return await request.get({ url: `/mes/orderday/get?id=` + id }) +} + +// 新增生产日计划 +export const createOrderDay = async (data: OrderDayVO) => { + return await request.post({ url: `/mes/orderday/create`, data }) +} + +// 修改生产日计划 +export const updateOrderDay = async (data: OrderDayVO) => { + return await request.put({ url: `/mes/orderday/update`, data }) +} + +// 删除生产日计划 +export const deleteOrderDay = async (id: number) => { + return await request.delete({ url: `/mes/orderday/delete?id=` + id }) +} + +// 导出生产日计划 Excel +export const exportOrderDay = async (params) => { + return await request.download({ url: `/mes/orderday/export-excel`, params }) +} +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/orderday/get-import-template' }) +} +// 根据产品编码获取Bom +export const getBoms = async (code: String) => { + return request.get({ url: '/mes/common/geBomByProductCode?code='+code }) +} +// 根据产品编码获取工艺路线 +export const getProcessroutes = async (code: String) => { + return request.get({ url: '/mes/common/getProcessRouteByProductCode?code='+code }) +} +// 根据车间编码获取产线列表 +export const getProductlines = async (code: String) => { + return request.get({ url: '/mes/common/getLinesByWorkRoomCode?code='+code }) +} +// 获取产线信息 +export const getProductlineInfo = async (code: String) => { + return request.get({ url: '/mes/common/getLinesByWorkRoomCode?code='+code }) +} +// 根据工艺路线的工序信息 +export const getProcessroutesDetail = async (code) => { + return await request.get({ url: `/mes/orderday/getProcessInfo?code=`+ code }) +} +// 根据获取计划BOM信息 +export const getPlanBom = async (params) => { + return await request.get({ url: `/mes/orderday/getBomInfo`,params }) +} +// 根据计划的车间、产线、计划时间 查询已经配置的人员 +export const getPlanWorks = async (params) => { + return await request.get({ url: `/mes/orderday/getWorkGroup`,params }) +} +// 根据车间、产线 查询已配置的设备 +export const getPlanDevices = async (params) => { + return await request.get({ url: `/mes/orderday/getDeviceInfo`,params }) +} + +///发布计划 +export const publishPlan = async (params) => { + return await request.post({ url: `/mes/orderday/publishPlan`,params }) +} +//终止计划 +export const stopPlan = async (params) => { + return await request.post({ url: `/mes/orderday/stopPlan`,params }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index e40305070..ec2cf47ac 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -279,4 +279,10 @@ export enum DICT_TYPE { PLAN_PRODUCTION_TYPE = "plan_production_type", // 生产计划类型 DELIVER_TYPE="deliver_type",//发货类型 BILL_TYPE="bill_type", // 发票类型 + // ========== 业务 - mes ========== + MESDO_STATUS= 'mes_do_status', // 工单执行状态 + MES_WORKBILL_MODEL='mes_workbill_model',// 工单模式 单工单(根据产品数量生成多个工单)、批量工单(一个产品一个工单) + MES_TASK_MODE='mes_task_mode', //生产模式 派工方式、领工方式 + MES_PLANDO_STATUS='mes_plando_status' //计划执行状 + } diff --git a/src/views/mes/orderDay/components/BasicFormV2.vue b/src/views/mes/orderDay/components/BasicFormV2.vue new file mode 100644 index 000000000..a155e9cdc --- /dev/null +++ b/src/views/mes/orderDay/components/BasicFormV2.vue @@ -0,0 +1,459 @@ + + + diff --git a/src/views/mes/orderDay/components/orderDetail.vue b/src/views/mes/orderDay/components/orderDetail.vue new file mode 100644 index 000000000..ce6d955bd --- /dev/null +++ b/src/views/mes/orderDay/components/orderDetail.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/src/views/mes/orderDay/components/schedule.vue b/src/views/mes/orderDay/components/schedule.vue new file mode 100644 index 000000000..0d05bb829 --- /dev/null +++ b/src/views/mes/orderDay/components/schedule.vue @@ -0,0 +1,332 @@ + + + + + diff --git a/src/views/mes/orderDay/index.vue b/src/views/mes/orderDay/index.vue new file mode 100644 index 000000000..f7193af01 --- /dev/null +++ b/src/views/mes/orderDay/index.vue @@ -0,0 +1,331 @@ + + + diff --git a/src/views/mes/orderDay/orderDay.data.ts b/src/views/mes/orderDay/orderDay.data.ts new file mode 100644 index 000000000..1f9cd3889 --- /dev/null +++ b/src/views/mes/orderDay/orderDay.data.ts @@ -0,0 +1,327 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' +import * as WorkshopApi from '@/api/wms/workshop' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import { on } from '@/utils/domUtils' + +// 表单校验 +export const OrderDayRules = reactive({ + planNoDay: [ + { required: true, message: '请输入一个日计划编号', trigger: 'blur' } + ], + planNoMonth: [ + { required: true, message: '请输入一个月计划编号', trigger: 'blur' } + ], + productCode: [ + { required: true, message: '请选择一个产品', trigger: 'blur' } + ], + workroomCode: [ + { required: true, message: '请选择一个车间', trigger: 'blur' } + ], + lineCode: [ + { required: true, message: '请选择一个产线', trigger: 'blur' } + ], + workMode: [ + { required: true, message: '请选择工单生成方式', trigger: 'blur' } + ], + startTime: [ + { required: true, message: '请输入计划生产开始时间', trigger: 'blur' } + ], + endTime: [ + { required: true, message: '请输入计划生产完成时间', trigger: 'blur' } + ], + planDate: [ + { required: true, message: '请输入计划日期', trigger: 'blur' } + ], + taskMode: [ + { required: true, message: '请选择一个生产方式', trigger: 'blur' } + ], +}) + +export const OrderDay = useCrudSchemas(reactive([ + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + width: '60px', + }, + { + label: '日计划单号', + field: 'planNoDay', + sort: 'custom', + isSearch: true, + required: true, + }, + { + label: '月计划单号', + field: 'planNoMonth', + sort: 'custom', + isSearch: true, + required: false, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isForm: false, + isTable: true, + isDetail:true, + isSearch: false, + width: '80px', + dictType: DICT_TYPE.MES_PLANDO_STATUS, + dictClass: 'string', + form: { + component: 'Select', + }, + }, + { + label: '产品编号', + field: 'productCode', + sort: 'custom', + isSearch: true, + required: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '产品编码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '产品信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + isHideFilterButton:true, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'type', + action: 'in', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + value: 'FG,SEMI',//,SEMI] + isMainValue: false + }, + + ] + } + } + }, + { + label: '车间编码', + field: 'workroomCode', + sort: 'custom', + isSearch: true, + required: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '车间', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + + }, + { + label: '产线编码', + field: 'lineCode', + sort: 'custom', + isSearch: true, + required: true, + form:{ + component:'Select', + componentProps:{ + options:[{lablel:'1',value:'1'}] + } + } + }, + { + label: '计划数量', + field: 'planCount', + sort: 'custom', + required: true, + form: { + component: 'InputNumber', + value: 1 + }, + }, + { + label: '工艺路线编码', + field: 'processrouteCode', + sort: 'custom', + form: { + component:'Select', + componentProps: { + options: [] + } + } + }, + { + label: '临时工艺', + field: 'tempProcessroute', + sort: 'custom', + width: '80px', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + }, + { + label: 'BOM编码', + field: 'standardBom', + sort: 'custom', + form: { + component:'Select', + componentProps: { + options: [{lablel:'bom',value:'bom'}] + } + } + }, + { + label: '替代BOM', + field: 'tempBom', + sort: 'custom', + width: '80px', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + } + } + }, + { + label: '工单模式', + field: 'workMode', + width: '80px', + sort: 'custom', + dictType: DICT_TYPE.MES_WORKBILL_MODEL, + dictClass: 'string', + form: { + component: 'Select', + value: 'BATCH', + }, + }, + { + label: '计划日期', + field: 'planDate', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + type: 'date', + valueFormat: 'YYYY-MM-DD', + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'date', + valueFormat: 'x' + } + }, + }, + { + label: '开始时间', + field: 'startTime', + sort: 'custom', + formatter: dateFormatter, + required: true, + form: { + component: 'TimePicker', + componentProps: { + type: 'time', + dateFormat: 'HH:mm', + //valueFormat: 'x', + } + }, + }, + { + label: '结束时间', + field: 'endTime', + sort: 'custom', + formatter: dateFormatter, + isReadonly:true, + form: { + component: 'TimePicker', + componentProps: { + type: 'time', + dateFormat: 'HH:mm', + } + }, + }, + { + label: '生产模式', + field: 'taskMode', + width : '80px', + sort: 'custom', + dictType: DICT_TYPE.MES_TASK_MODE, + dictClass: 'string', + form: { + component: 'Select', + value:'ASSIGN' + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'datetime', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + isSearch: false, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable:false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/processroute/components/configDialog.vue b/src/views/mes/processroute/components/configDialog.vue index 3f041b99b..71006812c 100644 --- a/src/views/mes/processroute/components/configDialog.vue +++ b/src/views/mes/processroute/components/configDialog.vue @@ -43,7 +43,28 @@ -
+
+ +
+ + + + + + + + + + @@ -53,9 +74,9 @@ 产品信息 -

产品名称:{{ productData.name }}

-

产品编码:{{ productData.code }}

-

产品描述:{{ productData.desc1 }}

+

产品名称:{{ productData.name }}

+

产品编码:{{ productData.code }}

+

产品描述:{{ productData.desc1 }}

diff --git a/src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts b/src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts index 47e4fad1c..7ad1d9b66 100644 --- a/src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts +++ b/src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts @@ -1,213 +1,316 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' + // 获取当前操作人的部门 + import { TableColumn } from '@/types/table' + import { useUserStore } from '@/store/modules/user' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + // 表单校验 export const ProductredressRecordMainRules = reactive({ }) export const ProductredressRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true, + }, { label: '申请单号', field: 'requestNumber', sort: 'custom', isSearch: true, + table: { + width: 180, + }, }, { label: '任务单号', field: 'jobNumber', sort: 'custom', + table: { + width: 180, + }, }, - { - label: '生产计划单号', - field: 'productionPlanNumber', - sort: 'custom', - }, - { - label: '车间代码', - field: 'workshopCode', - sort: 'custom', - }, - { - label: '班组', - field: 'team', - sort: 'custom', - }, - { - label: '班次', - field: 'shift', - sort: 'custom', - }, - { - label: '明细', - field: 'details', - sort: 'custom', - }, + // { + // label: '生产计划单号', + // field: 'productionPlanNumber', + // sort: 'custom', + // }, + // { + // label: '车间代码', + // field: 'workshopCode', + // sort: 'custom', + // }, + // { + // label: '班组', + // field: 'team', + // sort: 'custom', + // }, + // { + // label: '班次', + // field: 'shift', + // sort: 'custom', + // }, + // { + // label: '明细', + // field: 'details', + // sort: 'custom', + // }, { label: '出库事务类型', field: 'outTransactionType', sort: 'custom', - form: { - component: 'SelectV2' - }, + isForm:false, + isTable:false }, { label: '入库事务类型', field: 'inTransactionType', sort: 'custom', - form: { - component: 'SelectV2' - }, + isForm:false, + isTable:false }, { label: '执行时间', field: 'executeTime', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, + isForm: false }, { label: '生效日期', field: 'activeDate', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, + isForm: false }, { label: '是否可用', field: 'available', sort: 'custom', + isForm:false, + isTable:false }, { label: '申请时间', field: 'requestTime', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, + isForm: false }, { label: '截止时间', field: 'dueTime', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, + isForm: false }, { label: '部门', field: 'departmentCode', sort: 'custom', + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '接口类型', field: 'interfaceType', sort: 'custom', - form: { - component: 'SelectV2' - }, - }, - { - label: '单据号', - field: 'number', - sort: 'custom', - }, - { - label: '收货类型', - field: 'type', - sort: 'custom', - form: { - component: 'SelectV2' - }, + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '业务类型', field: 'businessType', sort: 'custom', - form: { - component: 'SelectV2' - }, + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '备注', field: 'remark', sort: 'custom', - }, - { - label: '创建时间', - field: 'createTime', - sort: 'custom', - formatter: dateFormatter, - isForm: false, - }, - { - label: '创建者Id', - field: 'creator', - sort: 'custom', - isForm: false, - }, - { - label: '代码', - field: 'code', - sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '到仓库代码', field: 'toWarehouseCode', sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '到库区类型范围', field: 'toAreaTypes', sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { label: '到库区代码范围', field: 'toAreaCodes', sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable:false, }, { - label: '最后更新时间', - field: 'updateTime', + label: '创建者', + field: 'creator', sort: 'custom', - formatter: dateFormatter, isForm: false, + table: { + width: 150 + }, }, { - label: '最后更新者用户名', + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false + }, + { + label: '最后更新者', field: 'updater', sort: 'custom', isForm: false, + table: { + width: 150 + }, }, { - label: '操作', - field: 'action', - isForm: false, + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { - width: 150, - fixed: 'right' - } + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false } ])) @@ -220,227 +323,259 @@ export const ProductredressRecordDetailRules = reactive({ export const ProductredressRecordDetail = useCrudSchemas(reactive([ { - label: 'id', - field: 'id', + label: '包装号', + field: 'packingNumber', sort: 'custom', + table: { + width: 180 + }, isForm: false, }, { - label: '生产线代码', - field: 'productionlineCode', + label: '批次', + field: 'batch', sort: 'custom', - isSearch: true, + table: { + width: 150 + }, + isForm: false, }, { - label: '工位代码', - field: 'workStationCode', + label: '物品代码', + field: 'itemCode', sort: 'custom', + table: { + width: 150 + } }, { - label: '工序代码', - field: 'processCode', + label: '物品名称', + field: 'itemName', sort: 'custom', + table: { + width: 150 + }, }, { - label: '包装号', - field: 'packingNumber', + label: '物品描述1', + field: 'itemDesc1', sort: 'custom', + table: { + width: 150 + }, }, { - label: '器具号', - field: 'containerNumber', + label: '物品描述2', + field: 'itemDesc2', sort: 'custom', + table: { + width: 150 + }, }, { - label: '批次', - field: 'batch', + label: '项目代码', + field: 'projectCode', sort: 'custom', - isSearch: true, + table: { + width: 150 + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, }, { label: '生产日期', field: 'produceDate', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, + isForm: false }, { label: '过期日期', field: 'expireDate', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { + style: {width: '100%'}, type: 'datetime', - valueFormat: 'x' + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', } }, - }, - { - label: '库存状态', - field: 'inventoryStatus', - sort: 'custom', - form: { - component: 'Radio' - }, - }, - { - label: '到库位代码', - field: 'toLocationCode', - sort: 'custom', - }, - { - label: '到库位组代码', - field: 'toLocationGroupCode', - sort: 'custom', - }, - { - label: '到库区代码', - field: 'toAreaCode', - sort: 'custom', - }, - { - label: '到货主代码', - field: 'toOwnerCode', - sort: 'custom', - }, - { - label: '订单号', - field: 'woNumber', - sort: 'custom', - }, - { - label: '订单行', - field: 'woLine', - sort: 'custom', + isForm: false }, { label: '包装数量', field: 'packQty', sort: 'custom', + table: { + width: 150 + } }, { label: '包装规格', field: 'packUnit', sort: 'custom', + table: { + width: 150 + } }, { label: 'BOM版本', field: 'bomVersion', sort: 'custom', + table: { + width: 150 + } }, { - label: '明细', - field: 'backFlushDetails', + label: '库存状态', + field: 'inventoryStatus', sort: 'custom', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + table: { + width: 150 + } }, { - label: '主表ID', - field: 'masterId', + label: '到库位代码', + field: 'toLocationCode', sort: 'custom', - form: { - component: 'InputNumber', - value: 0 - }, + table: { + width: 150 + } }, { - label: '单据号', - field: 'number', + label: '到库位组代码', + field: 'toLocationGroupCode', sort: 'custom', + table: { + width: 150 + } }, { - label: '物品代码', - field: 'itemCode', + label: '到库区代码', + field: 'toAreaCode', sort: 'custom', + table: { + width: 150 + } }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // } + // }, { label: '备注', field: 'remark', sort: 'custom', + table: { + width: 150 + } }, { - label: '创建时间', - field: 'createTime', - sort: 'custom', - formatter: dateFormatter, - isForm: false, - }, - { - label: '创建者Id', + label: '创建者', field: 'creator', sort: 'custom', isForm: false, + table: { + width: 150 + }, }, { - label: '地点ID', - field: 'siteId', - sort: 'custom', - }, - { - label: '物品名称', - field: 'itemName', - sort: 'custom', - }, - { - label: '物品描述1', - field: 'itemDesc1', - sort: 'custom', - }, - { - label: '物品描述2', - field: 'itemDesc2', - sort: 'custom', - }, - { - label: '项目代码', - field: 'projectCode', - sort: 'custom', - }, - { - label: '数量', - field: 'qty', - sort: 'custom', - }, - { - label: '计量单位', - field: 'uom', + label: '创建时间', + field: 'createTime', sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false }, { - label: '接口类型', - field: 'interfaceType', + label: '最后更新者', + field: 'updater', sort: 'custom', - form: { - component: 'SelectV2' - }, + isForm: false, + table: { + width: 150 + }, }, { label: '最后更新时间', field: 'updateTime', sort: 'custom', formatter: dateFormatter, - isForm: false, - }, - { - label: '最后更新者用户名', - field: 'updater', - sort: 'custom', - isForm: false, - }, - { - label: '操作', - field: 'action', - isForm: false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { - width: 150, - fixed: 'right' - } + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false } ])) diff --git a/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts b/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts index 974240ab1..633782a63 100644 --- a/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts +++ b/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts @@ -112,6 +112,7 @@ export const ProductredressRequestMain = useCrudSchemas(reactive([ field: 'toWarehouseCode', sort: 'custom', isForm:false, + isTable:false, table: { width: 150 }, @@ -121,6 +122,7 @@ export const ProductredressRequestMain = useCrudSchemas(reactive([ field: 'departmentCode', sort: 'custom', isForm:false, + isTable:false, table: { width: 150 }, @@ -172,6 +174,7 @@ export const ProductredressRequestMain = useCrudSchemas(reactive([ label: '备注', field: 'remark', sort: 'custom', + isTable:false, }, { label: '到库区类型范围', @@ -410,6 +413,8 @@ export const ProductredressRequestDetail = useCrudSchemas(reactive { label: '计量单位', field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', sort: 'custom', table: { width: 150 From 72adb3849403deecec5df1436a0102c1a215639e Mon Sep 17 00:00:00 2001 From: gaojs Date: Mon, 1 Apr 2024 16:16:41 +0800 Subject: [PATCH 05/12] =?UTF-8?q?MES=E4=B8=8B=E5=A2=9E=E5=8A=A0QMS?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/abilityInfo/index.ts | 56 +++ src/api/mes/hrPersonAbility/index.ts | 58 +++ src/api/mes/item/index.ts | 61 +++ src/api/mes/opersteps/index.ts | 55 +++ src/api/mes/operstepsType/index.ts | 57 +++ src/api/mes/qualityclass/index.ts | 55 +++ src/api/mes/qualityform/index.ts | 55 +++ src/api/mes/qualityformdetail/index.ts | 61 +++ src/api/mes/qualityformlog/index.ts | 58 +++ src/api/mes/qualitygroup/index.ts | 55 +++ src/api/mes/reworkSingle/index.ts | 60 +++ src/utils/dict.ts | 17 +- src/views/mes/abilityInfo/abilityInfo.data.ts | 172 +++++++++ src/views/mes/abilityInfo/index.vue | 244 ++++++++++++ .../hrPersonAbility/hrPersonAbility.data.ts | 210 +++++++++++ src/views/mes/hrPersonAbility/index.vue | 257 +++++++++++++ src/views/mes/item/index.vue | 353 ++++++++++++++++++ src/views/mes/item/item.data.ts | 203 ++++++++++ src/views/mes/opersteps/index.vue | 244 ++++++++++++ src/views/mes/opersteps/opersteps.data.ts | 165 ++++++++ src/views/mes/operstepsType/index.vue | 244 ++++++++++++ .../mes/operstepsType/operstepsType.data.ts | 167 +++++++++ src/views/mes/qualityclass/index.vue | 245 ++++++++++++ .../mes/qualityclass/qualityclass.data.ts | 152 ++++++++ src/views/mes/qualityform/index.vue | 297 +++++++++++++++ src/views/mes/qualityform/qualityform.data.ts | 316 ++++++++++++++++ src/views/mes/qualityformlog/index.vue | 244 ++++++++++++ .../mes/qualityformlog/qualityformlog.data.ts | 197 ++++++++++ src/views/mes/qualitygroup/index.vue | 244 ++++++++++++ .../mes/qualitygroup/qualitygroup.data.ts | 151 ++++++++ src/views/mes/reworkSingle/index.vue | 258 +++++++++++++ .../mes/reworkSingle/reworkSingle.data.ts | 219 +++++++++++ 32 files changed, 5229 insertions(+), 1 deletion(-) create mode 100644 src/api/mes/abilityInfo/index.ts create mode 100644 src/api/mes/hrPersonAbility/index.ts create mode 100644 src/api/mes/item/index.ts create mode 100644 src/api/mes/opersteps/index.ts create mode 100644 src/api/mes/operstepsType/index.ts create mode 100644 src/api/mes/qualityclass/index.ts create mode 100644 src/api/mes/qualityform/index.ts create mode 100644 src/api/mes/qualityformdetail/index.ts create mode 100644 src/api/mes/qualityformlog/index.ts create mode 100644 src/api/mes/qualitygroup/index.ts create mode 100644 src/api/mes/reworkSingle/index.ts create mode 100644 src/views/mes/abilityInfo/abilityInfo.data.ts create mode 100644 src/views/mes/abilityInfo/index.vue create mode 100644 src/views/mes/hrPersonAbility/hrPersonAbility.data.ts create mode 100644 src/views/mes/hrPersonAbility/index.vue create mode 100644 src/views/mes/item/index.vue create mode 100644 src/views/mes/item/item.data.ts create mode 100644 src/views/mes/opersteps/index.vue create mode 100644 src/views/mes/opersteps/opersteps.data.ts create mode 100644 src/views/mes/operstepsType/index.vue create mode 100644 src/views/mes/operstepsType/operstepsType.data.ts create mode 100644 src/views/mes/qualityclass/index.vue create mode 100644 src/views/mes/qualityclass/qualityclass.data.ts create mode 100644 src/views/mes/qualityform/index.vue create mode 100644 src/views/mes/qualityform/qualityform.data.ts create mode 100644 src/views/mes/qualityformlog/index.vue create mode 100644 src/views/mes/qualityformlog/qualityformlog.data.ts create mode 100644 src/views/mes/qualitygroup/index.vue create mode 100644 src/views/mes/qualitygroup/qualitygroup.data.ts create mode 100644 src/views/mes/reworkSingle/index.vue create mode 100644 src/views/mes/reworkSingle/reworkSingle.data.ts diff --git a/src/api/mes/abilityInfo/index.ts b/src/api/mes/abilityInfo/index.ts new file mode 100644 index 000000000..f7c2c0228 --- /dev/null +++ b/src/api/mes/abilityInfo/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface AbilityInfoVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + ablityCode: string + ablityName: string + trainMinHours: number + operMinHours: number +} + +// 查询能力矩阵信息列表 +export const getAbilityInfoPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/ability-info/senior', data }) + } else { + return await request.get({ url: `/mes/ability-info/page`, params }) + } +} + +// 查询能力矩阵信息详情 +export const getAbilityInfo = async (id: number) => { + return await request.get({ url: `/mes/ability-info/get?id=` + id }) +} + +// 新增能力矩阵信息 +export const createAbilityInfo = async (data: AbilityInfoVO) => { + return await request.post({ url: `/mes/ability-info/create`, data }) +} + +// 修改能力矩阵信息 +export const updateAbilityInfo = async (data: AbilityInfoVO) => { + return await request.put({ url: `/mes/ability-info/update`, data }) +} + +// 删除能力矩阵信息 +export const deleteAbilityInfo = async (id: number) => { + return await request.delete({ url: `/mes/ability-info/delete?id=` + id }) +} + +// 导出能力矩阵信息 Excel +export const exportAbilityInfo = async (params) => { + return await request.download({ url: `/mes/ability-info/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/ability-info/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/hrPersonAbility/index.ts b/src/api/mes/hrPersonAbility/index.ts new file mode 100644 index 000000000..f076d1a72 --- /dev/null +++ b/src/api/mes/hrPersonAbility/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface HrPersonAbilityVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + personId: number + personCode: string + ablityCode: string + ablityLevel: number + studyDuration: number + workDuration: number +} + +// 查询人员能力矩阵配置列表 +export const getHrPersonAbilityPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/hr-person-ability/senior', data }) + } else { + return await request.get({ url: `/mes/hr-person-ability/page`, params }) + } +} + +// 查询人员能力矩阵配置详情 +export const getHrPersonAbility = async (id: number) => { + return await request.get({ url: `/mes/hr-person-ability/get?id=` + id }) +} + +// 新增人员能力矩阵配置 +export const createHrPersonAbility = async (data: HrPersonAbilityVO) => { + return await request.post({ url: `/mes/hr-person-ability/create`, data }) +} + +// 修改人员能力矩阵配置 +export const updateHrPersonAbility = async (data: HrPersonAbilityVO) => { + return await request.put({ url: `/mes/hr-person-ability/update`, data }) +} + +// 删除人员能力矩阵配置 +export const deleteHrPersonAbility = async (id: number) => { + return await request.delete({ url: `/mes/hr-person-ability/delete?id=` + id }) +} + +// 导出人员能力矩阵配置 Excel +export const exportHrPersonAbility = async (params) => { + return await request.download({ url: `/mes/hr-person-ability/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/hr-person-ability/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/item/index.ts b/src/api/mes/item/index.ts new file mode 100644 index 000000000..f915865c4 --- /dev/null +++ b/src/api/mes/item/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface ItemVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + itemCode: string + itemName: string + itemType: string + qmsClass: string + dataType: string + dataVerify: string + dataStandvalue: string + dataDescripe: string +} + +// 查询质检项目定义列表 +export const getItemPage = async (params) => { + console.log(params); + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/item/senior', data }) + } else { + return await request.get({ url: `/mes/item/page`, params }) + } +} + +// 查询质检项目定义详情 +export const getItem = async (id: number) => { + return await request.get({ url: `/mes/item/get?id=` + id }) +} + +// 新增质检项目定义 +export const createItem = async (data: ItemVO) => { + return await request.post({ url: `/mes/item/create`, data }) +} + +// 修改质检项目定义 +export const updateItem = async (data: ItemVO) => { + return await request.put({ url: `/mes/item/update`, data }) +} + +// 删除质检项目定义 +export const deleteItem = async (id: number) => { + return await request.delete({ url: `/mes/item/delete?id=` + id }) +} + +// 导出质检项目定义 Excel +export const exportItem = async (params) => { + return await request.download({ url: `/mes/item/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/item/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/opersteps/index.ts b/src/api/mes/opersteps/index.ts new file mode 100644 index 000000000..a4e8b65fe --- /dev/null +++ b/src/api/mes/opersteps/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface OperstepsVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + stepsCode: string + stepsName: string + collectCode: string +} + +// 查询MES操作步骤信息列表 +export const getOperstepsPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/opersteps/senior', data }) + } else { + return await request.get({ url: `/mes/opersteps/page`, params }) + } +} + +// 查询MES操作步骤信息详情 +export const getOpersteps = async (id: number) => { + return await request.get({ url: `/mes/opersteps/get?id=` + id }) +} + +// 新增MES操作步骤信息 +export const createOpersteps = async (data: OperstepsVO) => { + return await request.post({ url: `/mes/opersteps/create`, data }) +} + +// 修改MES操作步骤信息 +export const updateOpersteps = async (data: OperstepsVO) => { + return await request.put({ url: `/mes/opersteps/update`, data }) +} + +// 删除MES操作步骤信息 +export const deleteOpersteps = async (id: number) => { + return await request.delete({ url: `/mes/opersteps/delete?id=` + id }) +} + +// 导出MES操作步骤信息 Excel +export const exportOpersteps = async (params) => { + return await request.download({ url: `/mes/opersteps/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/opersteps/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/operstepsType/index.ts b/src/api/mes/operstepsType/index.ts new file mode 100644 index 000000000..05190786b --- /dev/null +++ b/src/api/mes/operstepsType/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface OperstepsTypeVO { + collectCode: string + collectName: string + collectType: string + adpaterClass: string + argLsit: string + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number +} + +// 查询操作步骤类型配置列表 +export const getOperstepsTypePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/opersteps-type/senior', data }) + } else { + return await request.get({ url: `/mes/opersteps-type/page`, params }) + } +} + +// 查询操作步骤类型配置详情 +export const getOperstepsType = async (id: number) => { + return await request.get({ url: `/mes/opersteps-type/get?id=` + id }) +} + +// 新增操作步骤类型配置 +export const createOperstepsType = async (data: OperstepsTypeVO) => { + return await request.post({ url: `/mes/opersteps-type/create`, data }) +} + +// 修改操作步骤类型配置 +export const updateOperstepsType = async (data: OperstepsTypeVO) => { + return await request.put({ url: `/mes/opersteps-type/update`, data }) +} + +// 删除操作步骤类型配置 +export const deleteOperstepsType = async (id: number) => { + return await request.delete({ url: `/mes/opersteps-type/delete?id=` + id }) +} + +// 导出操作步骤类型配置 Excel +export const exportOperstepsType = async (params) => { + return await request.download({ url: `/mes/opersteps-type/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/opersteps-type/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/qualityclass/index.ts b/src/api/mes/qualityclass/index.ts new file mode 100644 index 000000000..137a6bd35 --- /dev/null +++ b/src/api/mes/qualityclass/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface QualityclassVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + code: string + name: string + groupCode: string +} + +// 查询质检类别列表 +export const getQualityclassPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/qualityclass/senior', data }) + } else { + return await request.get({ url: `/mes/qualityclass/page`, params }) + } +} + +// 查询质检类别详情 +export const getQualityclass = async (id: number) => { + return await request.get({ url: `/mes/qualityclass/get?id=` + id }) +} + +// 新增质检类别 +export const createQualityclass = async (data: QualityclassVO) => { + return await request.post({ url: `/mes/qualityclass/create`, data }) +} + +// 修改质检类别 +export const updateQualityclass = async (data: QualityclassVO) => { + return await request.put({ url: `/mes/qualityclass/update`, data }) +} + +// 删除质检类别 +export const deleteQualityclass = async (id: number) => { + return await request.delete({ url: `/mes/qualityclass/delete?id=` + id }) +} + +// 导出质检类别 Excel +export const exportQualityclass = async (params) => { + return await request.download({ url: `/mes/qualityclass/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/qualityclass/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/qualityform/index.ts b/src/api/mes/qualityform/index.ts new file mode 100644 index 000000000..df55b949a --- /dev/null +++ b/src/api/mes/qualityform/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface QualityformVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + formNo: string + formName: string + formType: string +} + +// 查询质检表单列表 +export const getQualityformPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/qualityform/senior', data }) + } else { + return await request.get({ url: `/mes/qualityform/page`, params }) + } +} + +// 查询质检表单详情 +export const getQualityform = async (id: number) => { + return await request.get({ url: `/mes/qualityform/get?id=` + id }) +} + +// 新增质检表单 +export const createQualityform = async (data: QualityformVO) => { + return await request.post({ url: `/mes/qualityform/create`, data }) +} + +// 修改质检表单 +export const updateQualityform = async (data: QualityformVO) => { + return await request.put({ url: `/mes/qualityform/update`, data }) +} + +// 删除质检表单 +export const deleteQualityform = async (id: number) => { + return await request.delete({ url: `/mes/qualityform/delete?id=` + id }) +} + +// 导出质检表单 Excel +export const exportQualityform = async (params) => { + return await request.download({ url: `/mes/qualityform/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/qualityform/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/qualityformdetail/index.ts b/src/api/mes/qualityformdetail/index.ts new file mode 100644 index 000000000..dea2b85a0 --- /dev/null +++ b/src/api/mes/qualityformdetail/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface QualityformdetailVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + formNo: string + itemCode: string + itemName: string + itemType: string + qmsClass: string + dataType: string + dataVerify: string + dataStandvalue: string + dataDescripe: string +} + +// 查询质检表单子表列表 +export const getQualityformdetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/qualityformdetail/senior', data }) + } else { + return await request.get({ url: `/mes/qualityformdetail/page`, params }) + } +} + +// 查询质检表单子表详情 +export const getQualityformdetail = async (id: number) => { + return await request.get({ url: `/mes/qualityformdetail/get?id=` + id }) +} + +// 新增质检表单子表 +export const createQualityformdetail = async (data: QualityformdetailVO) => { + return await request.post({ url: `/mes/qualityformdetail/create`, data }) +} + +// 修改质检表单子表 +export const updateQualityformdetail = async (data: QualityformdetailVO) => { + return await request.put({ url: `/mes/qualityformdetail/update`, data }) +} + +// 删除质检表单子表 +export const deleteQualityformdetail = async (id: number) => { + return await request.delete({ url: `/mes/qualityformdetail/delete?id=` + id }) +} + +// 导出质检表单子表 Excel +export const exportQualityformdetail = async (params) => { + return await request.download({ url: `/mes/qualityformdetail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/qualityformdetail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/qualityformlog/index.ts b/src/api/mes/qualityformlog/index.ts new file mode 100644 index 000000000..bc19550b6 --- /dev/null +++ b/src/api/mes/qualityformlog/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface QualityformlogVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + masterId: number + formNo: string + operation: string + operator: string + operateContent: string + operateTime: Date +} + +// 查询质检表单日志列表 +export const getQualityformlogPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/qualityformlog/senior', data }) + } else { + return await request.get({ url: `/mes/qualityformlog/page`, params }) + } +} + +// 查询质检表单日志详情 +export const getQualityformlog = async (id: number) => { + return await request.get({ url: `/mes/qualityformlog/get?id=` + id }) +} + +// 新增质检表单日志 +export const createQualityformlog = async (data: QualityformlogVO) => { + return await request.post({ url: `/mes/qualityformlog/create`, data }) +} + +// 修改质检表单日志 +export const updateQualityformlog = async (data: QualityformlogVO) => { + return await request.put({ url: `/mes/qualityformlog/update`, data }) +} + +// 删除质检表单日志 +export const deleteQualityformlog = async (id: number) => { + return await request.delete({ url: `/mes/qualityformlog/delete?id=` + id }) +} + +// 导出质检表单日志 Excel +export const exportQualityformlog = async (params) => { + return await request.download({ url: `/mes/qualityformlog/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/qualityformlog/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/qualitygroup/index.ts b/src/api/mes/qualitygroup/index.ts new file mode 100644 index 000000000..8825bbaa0 --- /dev/null +++ b/src/api/mes/qualitygroup/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface QualitygroupVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + code: string + name: string + groupCode: string +} + +// 查询质检分组列表 +export const getQualitygroupPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/qualitygroup/senior', data }) + } else { + return await request.get({ url: `/mes/qualitygroup/page`, params }) + } +} + +// 查询质检分组详情 +export const getQualitygroup = async (id: number) => { + return await request.get({ url: `/mes/qualitygroup/get?id=` + id }) +} + +// 新增质检分组 +export const createQualitygroup = async (data: QualitygroupVO) => { + return await request.post({ url: `/mes/qualitygroup/create`, data }) +} + +// 修改质检分组 +export const updateQualitygroup = async (data: QualitygroupVO) => { + return await request.put({ url: `/mes/qualitygroup/update`, data }) +} + +// 删除质检分组 +export const deleteQualitygroup = async (id: number) => { + return await request.delete({ url: `/mes/qualitygroup/delete?id=` + id }) +} + +// 导出质检分组 Excel +export const exportQualitygroup = async (params) => { + return await request.download({ url: `/mes/qualitygroup/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/qualitygroup/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/mes/reworkSingle/index.ts b/src/api/mes/reworkSingle/index.ts new file mode 100644 index 000000000..596a908cc --- /dev/null +++ b/src/api/mes/reworkSingle/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface ReworkSingleVO { + deleteTime: Date + id: number + status: string + concurrencyStamp: number + remark: string + deleter: string + siteId: number + reworkType: string + productionCode: string + reworkAction: string + replaceFlag: string + reworkPersoncode: string + reworkTime: Date + reworkResult: string + reworkbillNo: string +} + +// 查询返工登记单件列表 +export const getReworkSinglePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/rework-single/senior', data }) + } else { + return await request.get({ url: `/mes/rework-single/page`, params }) + } +} + +// 查询返工登记单件详情 +export const getReworkSingle = async (id: number) => { + return await request.get({ url: `/mes/rework-single/get?id=` + id }) +} + +// 新增返工登记单件 +export const createReworkSingle = async (data: ReworkSingleVO) => { + return await request.post({ url: `/mes/rework-single/create`, data }) +} + +// 修改返工登记单件 +export const updateReworkSingle = async (data: ReworkSingleVO) => { + return await request.put({ url: `/mes/rework-single/update`, data }) +} + +// 删除返工登记单件 +export const deleteReworkSingle = async (id: number) => { + return await request.delete({ url: `/mes/rework-single/delete?id=` + id }) +} + +// 导出返工登记单件 Excel +export const exportReworkSingle = async (params) => { + return await request.download({ url: `/mes/rework-single/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/rework-single/get-import-template' }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index aad05ea83..4e8d433ed 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -279,12 +279,27 @@ export enum DICT_TYPE { PLAN_PRODUCTION_TYPE = "plan_production_type", // 生产计划类型 DELIVER_TYPE="deliver_type",//发货类型 BILL_TYPE="bill_type", // 发票类型 + // ========== 业务 - mes ========== MESDO_STATUS= 'mes_do_status', // 工单执行状态 MES_WORKBILL_MODEL='mes_workbill_model',// 工单模式 单工单(根据产品数量生成多个工单)、批量工单(一个产品一个工单) MES_TASK_MODE='mes_task_mode', //生产模式 派工方式、领工方式 MES_PLANDO_STATUS='mes_plando_status', //计划执行状 - //========== mes-QMS ========== + + + //========== QMS ========== SAMPLING_TYPE = "sampling_type", // 取样类型 EVALUATION_MODE = "evaluation_mode", // 评估模式 + + + // ========== 业务 - mes -gaojs ========== + QUALIFY_STATUS = 'qualify_status',//质检状态 + QUALIFY_ITEM_DATA_TYPE='qualify_item_data_type',//质检项目数据类型 + QUALIFY_ITEM_VERIFY_MODE='qualify_item_verify_mode',//质检项目校验方式 + QUALIFY_FORM_OPERATION='qualify_form_operation',//质检表单操作 + OPERSTEP_COLLECT_TYPE='operstep_collect_type',//操作步骤采集方式 + REWORK_TYPE='rework_type',//工作类型:返工登记、返修登记 + REWORK_STATUS='rework_status',//返工返修状态:待返修,返修中,返修完成 + REWORK_REPLACE_FLAG='rework_replace_flag',//是否有替换件 + } diff --git a/src/views/mes/abilityInfo/abilityInfo.data.ts b/src/views/mes/abilityInfo/abilityInfo.data.ts new file mode 100644 index 000000000..37f01205e --- /dev/null +++ b/src/views/mes/abilityInfo/abilityInfo.data.ts @@ -0,0 +1,172 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const AbilityInfoRules = reactive({ + ablityCode: [required], + ablityName: [required], + trainMinHours: [required], + operMinHours: [required], +}) + +export const AbilityInfo = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '技能编号', + field: 'ablityCode', + sort: 'custom', + isSearch: true, + }, + { + label: '技能名称', + field: 'ablityName', + sort: 'custom', + isSearch: true, + }, + { + label: '要求培训时长', + field: 'trainMinHours', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 1 + } + } + }, + { + label: '操作时长', + field: 'operMinHours', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 1 + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/abilityInfo/index.vue b/src/views/mes/abilityInfo/index.vue new file mode 100644 index 000000000..f73f10e03 --- /dev/null +++ b/src/views/mes/abilityInfo/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts b/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts new file mode 100644 index 000000000..02febd8b6 --- /dev/null +++ b/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts @@ -0,0 +1,210 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as AbilityInfoApi from '@/api/mes/abilityInfo' +import { AbilityInfo } from '../abilityInfo/abilityInfo.data' + + +// 表单校验 +export const HrPersonAbilityRules = reactive({ + ablityCode: [required], + personCode: [required], + +}) + +export const HrPersonAbility = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '人员ID', + field: 'personId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '人员工号', + field: 'personCode', + sort: 'custom', + isSearch: true, + }, + { + label: '能力编号', + field: 'ablityCode', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '能力矩阵信息', // 查询弹窗标题 + searchAllSchemas: AbilityInfo.allSchemas, // 查询弹窗所需类 + searchField: 'ablityCode', // 查询弹窗赋值字段 + searchPage: AbilityInfoApi.getAbilityInfoPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'status', + value: '1', + action: '==' + }] + } + } + }, + { + label: '能力等级', + field: 'ablityLevel', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '学习累计时长', + field: 'studyDuration', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 1 + } + }, + }, + { + label: '工作累计时长', + field: 'workDuration', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 1 + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/hrPersonAbility/index.vue b/src/views/mes/hrPersonAbility/index.vue new file mode 100644 index 000000000..e0558d661 --- /dev/null +++ b/src/views/mes/hrPersonAbility/index.vue @@ -0,0 +1,257 @@ + + + diff --git a/src/views/mes/item/index.vue b/src/views/mes/item/index.vue new file mode 100644 index 000000000..3ddf781ac --- /dev/null +++ b/src/views/mes/item/index.vue @@ -0,0 +1,353 @@ + + + diff --git a/src/views/mes/item/item.data.ts b/src/views/mes/item/item.data.ts new file mode 100644 index 000000000..870ae975a --- /dev/null +++ b/src/views/mes/item/item.data.ts @@ -0,0 +1,203 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as QualitygroupApi from '@/api/mes/qualitygroup' +import { Qualitygroup } from '../qualitygroup/qualitygroup.data' + +// 表单校验 +export const ItemRules = reactive({ + concurrencyStamp: [required], + itemCode: [{ required: true, message: '请输入编码', trigger: 'blur' }], + itemType: [required], + dataType: [required] +}) + +export const Item = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '项目编码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + }, + { + label: '项目名称', + field: 'itemName', + sort: 'custom', + isSearch: true, + }, + { + label: '类别编码', + field: 'itemType', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '质检科目信息', // 查询弹窗标题 + searchAllSchemas: Qualitygroup.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: QualitygroupApi.getQualitygroupPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'status', + value: '1', + action: '==' + }] + } + } + }, + { + label: '质检科目编码', + field: 'qmsClass', + sort: 'custom', + isSearch: true, + + }, + { + label: '数据类型', + field: 'dataType', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_ITEM_DATA_TYPE, + dictClass: 'string', + isSearch: true, + }, + { + label: '校验方式', + field: 'dataVerify', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_ITEM_VERIFY_MODE, + dictClass: 'string', + isSearch: true, + }, + { + label: '数据参考值', + field: 'dataStandvalue', + sort: 'custom', + isSearch: false, + }, + { + label: '数据录入说明', + field: 'dataDescripe', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + }, + { + label: '是否可用', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + } +])) diff --git a/src/views/mes/opersteps/index.vue b/src/views/mes/opersteps/index.vue new file mode 100644 index 000000000..896b1659e --- /dev/null +++ b/src/views/mes/opersteps/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/opersteps/opersteps.data.ts b/src/views/mes/opersteps/opersteps.data.ts new file mode 100644 index 000000000..96dc16c9d --- /dev/null +++ b/src/views/mes/opersteps/opersteps.data.ts @@ -0,0 +1,165 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as OperstepsTypeApi from '@/api/mes/operstepsType' +import { OperstepsType } from '../operstepsType/operstepsType.data' + +// 表单校验 +export const OperstepsRules = reactive({ + concurrencyStamp: [required], +}) + +export const Opersteps = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '步骤编码', + field: 'stepsCode', + sort: 'custom', + isSearch: true, + }, + { + label: '步骤名称', + field: 'stepsName', + sort: 'custom', + isSearch: true, + }, + { + label: '采集类型编码', + field: 'collectCode', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '操作步骤类型配置信息', // 查询弹窗标题 + searchAllSchemas: OperstepsType.allSchemas, // 查询弹窗所需类 + searchField: 'collectCode', // 查询弹窗赋值字段 + searchPage: OperstepsTypeApi.getOperstepsTypePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'status', + value: '1', + action: '==' + }] + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/operstepsType/index.vue b/src/views/mes/operstepsType/index.vue new file mode 100644 index 000000000..7079cc3f5 --- /dev/null +++ b/src/views/mes/operstepsType/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/operstepsType/operstepsType.data.ts b/src/views/mes/operstepsType/operstepsType.data.ts new file mode 100644 index 000000000..a907499fa --- /dev/null +++ b/src/views/mes/operstepsType/operstepsType.data.ts @@ -0,0 +1,167 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const OperstepsTypeRules = reactive({ + collectCode: [required], + collectName: [required], + collectType: [required], + adpaterClass: [required], + argLsit: [required], +}) + +export const OperstepsType = useCrudSchemas(reactive([ + { + label: '类型编码', + field: 'collectCode', + sort: 'custom', + isSearch: true, + }, + { + label: '类型名称', + field: 'collectName', + sort: 'custom', + isSearch: true, + }, + { + label: '采集方式', + field: 'collectType', + sort: 'custom', + dictType: DICT_TYPE.OPERSTEP_COLLECT_TYPE, + dictClass: 'string', + isSearch: true, + }, + { + label: '适配器类名称', + field: 'adpaterClass', + sort: 'custom', + isSearch: true, + }, + { + label: '参数列表', + field: 'argLsit', + sort: 'custom', + isSearch: true, + }, + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/qualityclass/index.vue b/src/views/mes/qualityclass/index.vue new file mode 100644 index 000000000..bd691dd60 --- /dev/null +++ b/src/views/mes/qualityclass/index.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/views/mes/qualityclass/qualityclass.data.ts b/src/views/mes/qualityclass/qualityclass.data.ts new file mode 100644 index 000000000..ddc384661 --- /dev/null +++ b/src/views/mes/qualityclass/qualityclass.data.ts @@ -0,0 +1,152 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const QualityclassRules = reactive({ + concurrencyStamp: [required], + code: [{ required: true, message: '请输入代码', trigger: 'blur' }], + name: [required], +}) + +export const Qualityclass = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + }, + { + label: '编码名称', + field: 'name', + sort: 'custom', + isSearch: true, + }, + { + label: '分组类别', + field: 'groupCode', + sort: 'custom', + isSearch: true, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail:false, + table: { + width: 150, + fixed: 'right' + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + } +])) + diff --git a/src/views/mes/qualityform/index.vue b/src/views/mes/qualityform/index.vue new file mode 100644 index 000000000..fafd85101 --- /dev/null +++ b/src/views/mes/qualityform/index.vue @@ -0,0 +1,297 @@ + + + diff --git a/src/views/mes/qualityform/qualityform.data.ts b/src/views/mes/qualityform/qualityform.data.ts new file mode 100644 index 000000000..421e47020 --- /dev/null +++ b/src/views/mes/qualityform/qualityform.data.ts @@ -0,0 +1,316 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as ItemApi from '@/api/mes/item' +import { Item } from '../item/item.data' +import * as QualitygroupApi from '@/api/mes/qualitygroup' +import { Qualitygroup } from '../qualitygroup/qualitygroup.data' +import { Detail } from '@/components/Detail' + +// 表单校验 +export const QualityformRules = reactive({ + formName: [required], +}) + +export const Qualityform = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '表单编号', + field: 'formNo', + sort: 'custom', + isSearch: true, + isForm: false, + isDetail: true + }, + { + label: '表单名称', + field: 'formName', + sort: 'custom', + isSearch: true, + }, + { + label: '表单类别', + field: 'formType', + sort: 'custom', + isSearch: true, + + }, + { + label: '质检项目编码', + field: 'itemCode', + sort: 'custom', + isDetail: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '质检项目信息', // 查询弹窗标题 + searchAllSchemas: Item.allSchemas, // 查询弹窗所需类 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法 + multiple:true, + searchCondition: [{ + key: 'status', + value: '1', + action: '==', + isSearch: true, + isMainValue: false + }] + } + } + }, + { + label: '是否可用', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + + +export const QualityformDetail = useCrudSchemas(reactive([ + { + label: '表单编号', + field: 'formNo', + sort: 'custom', + isSearch: false, + isForm: false, + isDetail: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '项目编码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + isForm: true, + isDetail: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '质检项目信息', // 查询弹窗标题 + searchAllSchemas: Item.allSchemas, // 查询弹窗所需类 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法 + multiple:true, + searchCondition: [{ + key: 'status', + value: '1', + action: '==' + }] + // searchCondition: [{ + // key:'formNo', // 查询列表中字段 + // value:'formNo', // 指主表某字段 + // //message: '请选择生产线信息!', // 当前置条件为空时 弹出信息提示 + // isMainValue: true // 表示查询条件是主表的字段的值 + // }, + // { + // key:'status', // 查询列表中字段 + // value:'1', // 指查询具体值 + // isMainValue: false // 表示查询条件不是主表的字段的值 + // } + // ] + } + } + }, + { + label: '项目名称', + field: 'itemName', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: '类别编码', + field: 'itemType', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: '质检科目编码', + field: 'qmsClass', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: '数据类型', + field: 'dataType', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_ITEM_DATA_TYPE, + dictClass: 'string', + isSearch: true, + isForm: false, + }, + { + label: '校验方式', + field: 'dataVerify', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_ITEM_VERIFY_MODE, + dictClass: 'string', + isSearch: true, + isForm: false, + }, + { + label: '数据参考值', + field: 'dataStandvalue', + sort: 'custom', + isSearch: false, + isForm: false, + }, + { + label: '数据录入说明', + field: 'dataDescripe', + sort: 'custom', + isSearch: false, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + }, + { + label: '是否可用', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: true, + isForm: false, + } +])) + +export const QualityformDetailRules = reactive({ + itemCode: [required] +}) \ No newline at end of file diff --git a/src/views/mes/qualityformlog/index.vue b/src/views/mes/qualityformlog/index.vue new file mode 100644 index 000000000..bcde626fc --- /dev/null +++ b/src/views/mes/qualityformlog/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/qualityformlog/qualityformlog.data.ts b/src/views/mes/qualityformlog/qualityformlog.data.ts new file mode 100644 index 000000000..039f5c5e3 --- /dev/null +++ b/src/views/mes/qualityformlog/qualityformlog.data.ts @@ -0,0 +1,197 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const QualityformlogRules = reactive({ + concurrencyStamp: [required], + masterId: [required], +}) + +export const Qualityformlog = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'Radio' + }, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false, + isDetail:false, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '主表编号', + field: 'masterId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '表单编号', + field: 'formNo', + sort: 'custom', + isSearch: true, + }, + { + label: '操作类型', + field: 'operation', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_FORM_OPERATION, + dictClass: 'string', + isSearch: true, + }, + { + label: '操作人员', + field: 'operator', + sort: 'custom', + isSearch: true, + }, + { + label: '操作内容', + field: 'operateContent', + sort: 'custom', + isSearch: true, + form: { + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + }, + }, + { + label: '操作时间', + field: 'operateTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '操作', + field: 'action', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/mes/qualitygroup/index.vue b/src/views/mes/qualitygroup/index.vue new file mode 100644 index 000000000..2255e5593 --- /dev/null +++ b/src/views/mes/qualitygroup/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/qualitygroup/qualitygroup.data.ts b/src/views/mes/qualitygroup/qualitygroup.data.ts new file mode 100644 index 000000000..7cf7a5bf9 --- /dev/null +++ b/src/views/mes/qualitygroup/qualitygroup.data.ts @@ -0,0 +1,151 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const QualitygroupRules = reactive({ + concurrencyStamp: [required], + code: [required], + name: [required], +}) + +export const Qualitygroup = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false, + isDetail:false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + }, + { + label: '编码名称', + field: 'name', + sort: 'custom', + isSearch: true, + }, + { + label: '分组类别', + field: 'groupCode', + sort: 'custom', + isSearch: true, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.QUALIFY_STATUS, + dictClass: 'string', + isForm: true, + isSearch: true, + isTable: true, + form: { + component: 'Switch', + value: '2', + componentProps: { + inactiveValue: '2', + activeValue: '1' + } + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail:false, + table: { + width: 150, + fixed: 'right' + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + } +])) diff --git a/src/views/mes/reworkSingle/index.vue b/src/views/mes/reworkSingle/index.vue new file mode 100644 index 000000000..2265bb135 --- /dev/null +++ b/src/views/mes/reworkSingle/index.vue @@ -0,0 +1,258 @@ + + + diff --git a/src/views/mes/reworkSingle/reworkSingle.data.ts b/src/views/mes/reworkSingle/reworkSingle.data.ts new file mode 100644 index 000000000..50db92f86 --- /dev/null +++ b/src/views/mes/reworkSingle/reworkSingle.data.ts @@ -0,0 +1,219 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +// 表单校验 +export const ReworkSingleRules = reactive({ + reworkType: [required], + productionCode:[required], + replaceFlag:[required], + status:[required], +}) + +export const ReworkSingle = useCrudSchemas(reactive([ + { + label: '删除时间', + field: 'deleteTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '主键', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + }, + { + label: '删除用户名', + field: 'deleter', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '位置ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '单据号', + field: 'reworkbillNo', + sort: 'custom', + isSearch: true, + isForm: false, + isDetail: true + }, + { + label: '工作类型', + field: 'reworkType', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.REWORK_TYPE, + dictClass: 'string', + }, + { + label: '产品编码', + field: 'productionCode', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '产品编码', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'type', + action: 'in', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + value: 'BCP,CCP',//,SEMI] + isMainValue: false + }] + } + } + }, + { + label: '返修动作', + field: 'reworkAction', + sort: 'custom', + isSearch: true, + }, + { + label: '是否有替换件', + field: 'replaceFlag', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.REWORK_REPLACE_FLAG, + dictClass: 'string', + }, + { + label: '返修人员', + field: 'reworkPersoncode', + sort: 'custom', + isSearch: true, + }, + { + label: '返修时间', + field: 'reworkTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '返修结果', + field: 'reworkResult', + sort: 'custom', + isSearch: true, + }, + + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.REWORK_STATUS, + dictClass: 'string', + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) From 57213081e0100bfe6232d2aba079c5240ff28d09 Mon Sep 17 00:00:00 2001 From: zhaoyiran Date: Mon, 1 Apr 2024 16:22:05 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/aql/index.ts | 103 ++++++ src/api/qms/inspectionMethod/index.ts | 53 +++ src/api/qms/sampleCode/index.ts | 57 +++ src/api/qms/samplingScheme/index.ts | 50 +++ src/views/qms/aql/aql.data.ts | 332 ++++++++++++++++++ src/views/qms/aql/index.vue | 244 +++++++++++++ src/views/qms/inspectionMethod/index.vue | 244 +++++++++++++ .../inspectionMethod/inspectionMethod.data.ts | 75 ++++ src/views/qms/sampleCode/index.vue | 244 +++++++++++++ src/views/qms/sampleCode/sampleCode.data.ts | 101 ++++++ src/views/qms/samplingProcess/index.vue | 3 +- src/views/qms/samplingScheme/index.vue | 244 +++++++++++++ .../qms/samplingScheme/samplingScheme.data.ts | 61 ++++ 13 files changed, 1810 insertions(+), 1 deletion(-) create mode 100644 src/api/qms/aql/index.ts create mode 100644 src/api/qms/inspectionMethod/index.ts create mode 100644 src/api/qms/sampleCode/index.ts create mode 100644 src/api/qms/samplingScheme/index.ts create mode 100644 src/views/qms/aql/aql.data.ts create mode 100644 src/views/qms/aql/index.vue create mode 100644 src/views/qms/inspectionMethod/index.vue create mode 100644 src/views/qms/inspectionMethod/inspectionMethod.data.ts create mode 100644 src/views/qms/sampleCode/index.vue create mode 100644 src/views/qms/sampleCode/sampleCode.data.ts create mode 100644 src/views/qms/samplingScheme/index.vue create mode 100644 src/views/qms/samplingScheme/samplingScheme.data.ts diff --git a/src/api/qms/aql/index.ts b/src/api/qms/aql/index.ts new file mode 100644 index 000000000..2f1cef229 --- /dev/null +++ b/src/api/qms/aql/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface AqlVO { + id: number + sampleProgCode: string + inspectionQualification: string + sampleCharacterCode: string + sampleSize: number + a0010: number + r0010: number + a0015: number + r0015: number + a0025: number + r0025: number + a0040: number + r0040: number + a0065: number + r0065: number + a010: number + r010: number + a015: number + r015: number + a025: number + r025: number + a040: number + r040: number + a065: number + r065: number + a10: number + r10: number + a15: number + r15: number + a25: number + r25: number + a40: number + r40: number + a65: number + r65: number + a10: number + r10: number + a15: number + r15: number + a25: number + r25: number + a40: number + r40: number + a65: number + r65: number + a100: number + r100: number + a150: number + r150: number + a250: number + r250: number + a400: number + r400: number + a650: number + r650: number + a1000: number + r1000: number + available: string +} + +// 查询aql列表 +export const getAqlPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/qms/aql/senior', data }) + } else { + return await request.get({ url: `/qms/aql/page`, params }) + } +} + +// 查询aql详情 +export const getAql = async (id: number) => { + return await request.get({ url: `/qms/aql/get?id=` + id }) +} + +// 新增aql +export const createAql = async (data: AqlVO) => { + return await request.post({ url: `/qms/aql/create`, data }) +} + +// 修改aql +export const updateAql = async (data: AqlVO) => { + return await request.put({ url: `/qms/aql/update`, data }) +} + +// 删除aql +export const deleteAql = async (id: number) => { + return await request.delete({ url: `/qms/aql/delete?id=` + id }) +} + +// 导出aql Excel +export const exportAql = async (params) => { + return await request.download({ url: `/qms/aql/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/aql/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/qms/inspectionMethod/index.ts b/src/api/qms/inspectionMethod/index.ts new file mode 100644 index 000000000..dec4aa7dc --- /dev/null +++ b/src/api/qms/inspectionMethod/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface InspectionMethodVO { + id: number + code: string + describe: string + version: string + status: string + operationGuidance: string + videoAddress: string + available: string +} + +// 查询检验方法列表 +export const getInspectionMethodPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/qms/inspection-method/senior', data }) + } else { + return await request.get({ url: `/qms/inspection-method/page`, params }) + } +} + +// 查询检验方法详情 +export const getInspectionMethod = async (id: number) => { + return await request.get({ url: `/qms/inspection-method/get?id=` + id }) +} + +// 新增检验方法 +export const createInspectionMethod = async (data: InspectionMethodVO) => { + return await request.post({ url: `/qms/inspection-method/create`, data }) +} + +// 修改检验方法 +export const updateInspectionMethod = async (data: InspectionMethodVO) => { + return await request.put({ url: `/qms/inspection-method/update`, data }) +} + +// 删除检验方法 +export const deleteInspectionMethod = async (id: number) => { + return await request.delete({ url: `/qms/inspection-method/delete?id=` + id }) +} + +// 导出检验方法 Excel +export const exportInspectionMethod = async (params) => { + return await request.download({ url: `/qms/inspection-method/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/inspection-method/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/qms/sampleCode/index.ts b/src/api/qms/sampleCode/index.ts new file mode 100644 index 000000000..828f162f7 --- /dev/null +++ b/src/api/qms/sampleCode/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface SampleCodeVO { + id: number + code: string + batchLow limiting: number + batchUpperLimiting: number + s1: number + s2: number + s3: number + s4: number + g1: number + g2: number + g3: number + available: string +} + +// 查询样本字码列表 +export const getSampleCodePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/qms/sample-code/senior', data }) + } else { + return await request.get({ url: `/qms/sample-code/page`, params }) + } +} + +// 查询样本字码详情 +export const getSampleCode = async (id: number) => { + return await request.get({ url: `/qms/sample-code/get?id=` + id }) +} + +// 新增样本字码 +export const createSampleCode = async (data: SampleCodeVO) => { + return await request.post({ url: `/qms/sample-code/create`, data }) +} + +// 修改样本字码 +export const updateSampleCode = async (data: SampleCodeVO) => { + return await request.put({ url: `/qms/sample-code/update`, data }) +} + +// 删除样本字码 +export const deleteSampleCode = async (id: number) => { + return await request.delete({ url: `/qms/sample-code/delete?id=` + id }) +} + +// 导出样本字码 Excel +export const exportSampleCode = async (params) => { + return await request.download({ url: `/qms/sample-code/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/sample-code/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/qms/samplingScheme/index.ts b/src/api/qms/samplingScheme/index.ts new file mode 100644 index 000000000..746af373f --- /dev/null +++ b/src/api/qms/samplingScheme/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface SamplingSchemeVO { + id: number + code: string + describe: string + status: string + available: string +} + +// 查询采样方案列表 +export const getSamplingSchemePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/qms/sampling-scheme/senior', data }) + } else { + return await request.get({ url: `/qms/sampling-scheme/page`, params }) + } +} + +// 查询采样方案详情 +export const getSamplingScheme = async (id: number) => { + return await request.get({ url: `/qms/sampling-scheme/get?id=` + id }) +} + +// 新增采样方案 +export const createSamplingScheme = async (data: SamplingSchemeVO) => { + return await request.post({ url: `/basic/sampling-scheme/create`, data }) +} + +// 修改采样方案 +export const updateSamplingScheme = async (data: SamplingSchemeVO) => { + return await request.put({ url: `/basic/sampling-scheme/update`, data }) +} + +// 删除采样方案 +export const deleteSamplingScheme = async (id: number) => { + return await request.delete({ url: `/basic/sampling-scheme/delete?id=` + id }) +} + +// 导出采样方案 Excel +export const exportSamplingScheme = async (params) => { + return await request.download({ url: `/basic/sampling-scheme/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/basic/sampling-scheme/get-import-template' }) +} diff --git a/src/views/qms/aql/aql.data.ts b/src/views/qms/aql/aql.data.ts new file mode 100644 index 000000000..9f72b97cf --- /dev/null +++ b/src/views/qms/aql/aql.data.ts @@ -0,0 +1,332 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const AqlRules = reactive({ + sampleProgCode: [required], + inspectionQualification: [required], + sampleCharacterCode: [required], + sampleSize: [required], + available: [required], +}) + +export const Aql = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '编码', + field: 'sampleProgCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验严格性', + field: 'inspectionQualification', + sort: 'custom', + dictType: DICT_TYPE.INSPECTION_SEVERITY, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '样本字码', + field: 'sampleCharacterCode', + sort: 'custom', + isSearch: true, + }, + { + label: '样本量', + field: 'sampleSize', + sort: 'custom', + }, + { + label: 'A0_010', + field: 'a0010', + sort: 'custom', + }, + { + label: 'R0_010', + field: 'r0010', + sort: 'custom', + }, + { + label: 'A0_015', + field: 'a0015', + sort: 'custom', + }, + { + label: 'R0_015', + field: 'r0015', + sort: 'custom', + }, + { + label: 'A0_025', + field: 'a0025', + sort: 'custom', + isSearch: true, + }, + { + label: 'R0_025', + field: 'r0025', + sort: 'custom', + }, + { + label: 'A0_040', + field: 'a0040', + sort: 'custom', + }, + { + label: 'R0_040', + field: 'r0040', + sort: 'custom', + }, + { + label: 'A0_065', + field: 'a0065', + sort: 'custom', + isSearch: true, + }, + { + label: 'R0_065', + field: 'r0065', + sort: 'custom', + }, + { + label: 'A0_10', + field: 'a010', + sort: 'custom', + }, + { + label: 'R0_10', + field: 'r010', + sort: 'custom', + }, + { + label: 'A0_15', + field: 'a015', + sort: 'custom', + }, + { + label: 'R0_15', + field: 'r015', + sort: 'custom', + }, + { + label: 'A0_25', + field: 'a025', + sort: 'custom', + }, + { + label: 'R0_25', + field: 'r025', + sort: 'custom', + }, + { + label: 'A0_40', + field: 'a040', + sort: 'custom', + }, + { + label: 'R0_40', + field: 'r040', + sort: 'custom', + }, + { + label: 'A0_65', + field: 'a065', + sort: 'custom', + }, + { + label: 'R0_65', + field: 'r065', + sort: 'custom', + }, + { + label: 'A1_0', + field: 'a10', + sort: 'custom', + }, + { + label: 'R1_0', + field: 'r10', + sort: 'custom', + }, + { + label: 'A1_5', + field: 'a15', + sort: 'custom', + }, + { + label: 'R1_5', + field: 'r15', + sort: 'custom', + }, + { + label: 'A2_5', + field: 'a25', + sort: 'custom', + }, + { + label: 'R2_5', + field: 'r25', + sort: 'custom', + }, + { + label: 'A4_0', + field: 'a40', + sort: 'custom', + }, + { + label: 'R4_0', + field: 'r40', + sort: 'custom', + }, + { + label: 'A6_5', + field: 'a65', + sort: 'custom', + }, + { + label: 'R6_5', + field: 'r65', + sort: 'custom', + }, + { + label: 'A10', + field: 'a10', + sort: 'custom', + }, + { + label: 'R10', + field: 'r10', + sort: 'custom', + }, + { + label: 'A15', + field: 'a15', + sort: 'custom', + }, + { + label: 'R15', + field: 'r15', + sort: 'custom', + }, + { + label: 'A25', + field: 'a25', + sort: 'custom', + }, + { + label: 'R25', + field: 'r25', + sort: 'custom', + }, + { + label: 'A40', + field: 'a40', + sort: 'custom', + }, + { + label: 'R40', + field: 'r40', + sort: 'custom', + }, + { + label: 'A65', + field: 'a65', + sort: 'custom', + }, + { + label: 'R65', + field: 'r65', + sort: 'custom', + }, + { + label: 'A100', + field: 'a100', + sort: 'custom', + }, + { + label: 'R100', + field: 'r100', + sort: 'custom', + }, + { + label: 'A150', + field: 'a150', + sort: 'custom', + }, + { + label: 'R150', + field: 'r150', + sort: 'custom', + }, + { + label: 'A250', + field: 'a250', + sort: 'custom', + }, + { + label: 'R250', + field: 'r250', + sort: 'custom', + }, + { + label: 'A400', + field: 'a400', + sort: 'custom', + }, + { + label: 'R400', + field: 'r400', + sort: 'custom', + }, + { + label: 'A650', + field: 'a650', + sort: 'custom', + }, + { + label: 'R650', + field: 'r650', + sort: 'custom', + }, + { + label: 'A1000', + field: 'a1000', + sort: 'custom', + }, + { + label: 'R1000', + field: 'r1000', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/qms/aql/index.vue b/src/views/qms/aql/index.vue new file mode 100644 index 000000000..aabb6a087 --- /dev/null +++ b/src/views/qms/aql/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/inspectionMethod/index.vue b/src/views/qms/inspectionMethod/index.vue new file mode 100644 index 000000000..51227fc4a --- /dev/null +++ b/src/views/qms/inspectionMethod/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/inspectionMethod/inspectionMethod.data.ts b/src/views/qms/inspectionMethod/inspectionMethod.data.ts new file mode 100644 index 000000000..984bb143b --- /dev/null +++ b/src/views/qms/inspectionMethod/inspectionMethod.data.ts @@ -0,0 +1,75 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const InspectionMethodRules = reactive({ + code: [required], + status: [required], + available: [required], +}) + +export const InspectionMethod = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + }, + { + label: '描述', + field: 'describe', + sort: 'custom', + }, + { + label: '版本', + field: 'version', + sort: 'custom', + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Radio' + }, + }, + { + label: '操作指导', + field: 'operationGuidance', + sort: 'custom', + }, + { + label: '视频地址', + field: 'videoAddress', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/qms/sampleCode/index.vue b/src/views/qms/sampleCode/index.vue new file mode 100644 index 000000000..bc328bf0e --- /dev/null +++ b/src/views/qms/sampleCode/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/sampleCode/sampleCode.data.ts b/src/views/qms/sampleCode/sampleCode.data.ts new file mode 100644 index 000000000..cc6e9ed6d --- /dev/null +++ b/src/views/qms/sampleCode/sampleCode.data.ts @@ -0,0 +1,101 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SampleCodeRules = reactive({ + code: [required], + batchUpperLimiting: [required], + available: [required], +}) + +export const SampleCode = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '采样方案编码', + field: 'code', + sort: 'custom', + isSearch: true, + }, + { + label: '批量下限', + field: 'batchLow limiting', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '批量上限', + field: 'batchUpperLimiting', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: 's1', + field: 's1', + sort: 'custom', + }, + { + label: 's2', + field: 's2', + sort: 'custom', + }, + { + label: 's3', + field: 's3', + sort: 'custom', + }, + { + label: 's4', + field: 's4', + sort: 'custom', + }, + { + label: 'g1', + field: 'g1', + sort: 'custom', + }, + { + label: 'g2', + field: 'g2', + sort: 'custom', + }, + { + label: 'g3', + field: 'g3', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/qms/samplingProcess/index.vue b/src/views/qms/samplingProcess/index.vue index 0ac3084b8..b5108d12f 100644 --- a/src/views/qms/samplingProcess/index.vue +++ b/src/views/qms/samplingProcess/index.vue @@ -99,7 +99,8 @@ const { getList, setSearchParams } = tableMethods // 列表头部按钮 const HeadButttondata = [ - defaultButtons.defaultAddBtn({hasPermi:'wms:samplingProcess:create'}), // 新增 + // defaultButtons.defaultAddBtn({hasPermi:'wms:samplingProcess:create'}), // 新增 + defaultButtons.defaultAddBtn(null), // 新增 defaultButtons.defaultImportBtn({hasPermi:'wms:samplingProcess:import'}), // 导入 defaultButtons.defaultExportBtn({hasPermi:'wms:samplingProcess:export'}), // 导出 defaultButtons.defaultFreshBtn(null), // 刷新 diff --git a/src/views/qms/samplingScheme/index.vue b/src/views/qms/samplingScheme/index.vue new file mode 100644 index 000000000..a1ea82181 --- /dev/null +++ b/src/views/qms/samplingScheme/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/samplingScheme/samplingScheme.data.ts b/src/views/qms/samplingScheme/samplingScheme.data.ts new file mode 100644 index 000000000..bc9feaf8d --- /dev/null +++ b/src/views/qms/samplingScheme/samplingScheme.data.ts @@ -0,0 +1,61 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SamplingSchemeRules = reactive({ + code: [required], + status: [required], + available: [required], +}) + +export const SamplingScheme = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + }, + { + label: '描述', + field: 'describe', + sort: 'custom', + isSearch: true, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Radio' + }, + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) From 74b032a34e00581e62d7fa2b3bc9ed429a6d5ce8 Mon Sep 17 00:00:00 2001 From: bjang03 Date: Mon, 1 Apr 2024 16:29:45 +0800 Subject: [PATCH 07/12] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E4=BD=8D=E6=93=8D=E4=BD=9C=E6=AD=A5=E9=AA=A4=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/workstation/components/Detail.vue | 18 ++++---- src/views/mes/workstation/index.vue | 44 +++++++------------ src/views/mes/workstation/workstation.data.ts | 17 +------ 3 files changed, 27 insertions(+), 52 deletions(-) diff --git a/src/views/mes/workstation/components/Detail.vue b/src/views/mes/workstation/components/Detail.vue index c8b25e83c..81dc468ec 100644 --- a/src/views/mes/workstation/components/Detail.vue +++ b/src/views/mes/workstation/components/Detail.vue @@ -33,7 +33,7 @@ { //主表所需的参数 const masterParmas = ref({ - masterId: '', //主表id + code: '', //主表id number: '', //主表单据号 - status: '' //主表状态 用于控制子表新增编辑按钮显示情况 + status: '', //主表状态 用于控制子表新增编辑按钮显示情况 }) // 列表头部按钮 @@ -395,11 +395,11 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: // 加载明细列表 if (!props.isBasic) { // 设置主表id - masterParmas.value.masterId = row.id + masterParmas.value.code = row.id masterParmas.value.number = row.number masterParmas.value.status = row.status tableObjectRef.value.params = { - masterId: row.id + code: row.code } await getList() } @@ -549,8 +549,8 @@ const buttonTableClick = async (val, row) => { } /** 添加/修改操作 */ const openForm = async (type: string, row?: number) => { - formRef.value.open(type, row, masterParmas.value) - emit('detailOpenForm', type, row) + // formRef.value.open(type, row, masterParmas.value) + emit('detailOpenForm', type, masterParmas.value) } // form 提交 const submitForm = async (formType, data) => { @@ -614,7 +614,7 @@ const searchFormClick = async (searchData) => { isSearch: true, filters: searchData.filters ? searchData.filters - : [{ column: 'masterId', action: '==', value: masterParmas.value.masterId }] + : [{ column: 'code', action: '==', value: masterParmas.value.code }] } detailAllSchemasRef.value = props.detailAllSchemas tableObjectRef.value = tableObject @@ -668,7 +668,7 @@ watch( const { tableObject, tableMethods } = useTable({ getListApi: props.apiPage // 分页接口 }) - tableObject.params.masterId = masterParmas.value.masterId + tableObject.params.code = masterParmas.value.code detailAllSchemasRef.value = props.detailAllSchemas if (props.tableObjectExtend) { props.tableObjectExtend.forEach(item => { diff --git a/src/views/mes/workstation/index.vue b/src/views/mes/workstation/index.vue index 0ee83a64d..8514b3808 100644 --- a/src/views/mes/workstation/index.vue +++ b/src/views/mes/workstation/index.vue @@ -60,18 +60,19 @@ :tabs="TabsList" :apiDelete=tabsDeleteApi @changeTabs="changeTabs" - @tableFormButton="tableFormButton" :detailButtonIsShowAdd="true" :detailButtonIsShowDelete="true" :detailButtonIsShowEdit="false" + @detailOpenForm="detailOpenForm" /> { // 子包装数据 const detailAllSchemas = ref(Team.allSchemas) const apiPage = ref(WorkstationApi.getTeamPage) -const tableKey = ref("workstationDetail"); +const tableKey = ref("Team"); // tabs 切换事件 const changeTabs = (data) =>{ tableKey.value = data.prop @@ -327,16 +328,6 @@ const changeTabs = (data) =>{ tabsDeleteApi = WorkstationApi.deleteOperstepsRelation } } -// const buttondataTable = ref([{ -// label: '取消关联', -// name: 'viewParentPickingNumber', -// hide: false, -// type: 'primary', -// icon: '', -// color: '', -// hasPermi: '', -// link: true, // 文本展现按钮 -// }]) const teamListRef = ref() const { tableObject: selectTeamListTableData, tableMethods: selectTeamListTableMethods } = useTable({ getListApi: WorkstationApi.checkTeamPageList @@ -360,32 +351,31 @@ const { tableObject: selectOperstepsListTableData, tableMethods: OperstepsListTa getListApi: WorkstationApi.checkOperstepsPageList }) const { getList:selectOperstepsList } = OperstepsListTableMethods - -const tableFormButton = async (val , row) => { - if(val == 'Team'){ +const detailOpenForm = async (type, params) => { + if (tableKey.value == 'Team') { selectTeamListTableData.params = { - workstationCode:row.workstationCode + workstationCode: params.code } await selectTeamList() - teamListRef.value.open('create', row, null,'viewDetail')//查看明细数据 - }else if(val == 'Equipment'){ + teamListRef.value.open('viewDetail', params, null, 'viewDetail')//查看明细数据 + } else if (tableKey.value == 'Equipment') { selectEquipmentListTableData.params = { - workstationCode:row.workstationCode + workstationCode: params.code } await selectEquipmentList() - equipmentListRef.value.open('create', row, null,'viewDetail')//查看明细数据 - }else if(val == 'Process'){ + equipmentListRef.value.open('viewDetail', params.code, null, 'viewDetail')//查看明细数据 + } else if (tableKey.value == 'Process') { selectProcessListTableData.params = { - workstationCode:row.workstationCode + workstationCode: params.code } await selectProcessListList() - processListRef.value.open('create', row, null,'viewDetail')//查看明细数据 - }else if(val == 'Production'){ + processListRef.value.open('viewDetail', params.code, null, 'viewDetail')//查看明细数据 + } else if (tableKey.value == 'Production') { selectOperstepsListTableData.params = { - workstationCode:row.workstationCode + workstationCode: params.code } await selectOperstepsList() - operstepsListRef.value.open('create', row, null,'viewDetail')//查看明细数据 + operstepsListRef.value.open('viewDetail', params.code, null, 'viewDetail')//查看明细数据 } } diff --git a/src/views/mes/workstation/workstation.data.ts b/src/views/mes/workstation/workstation.data.ts index 8087e9fac..9813e222b 100644 --- a/src/views/mes/workstation/workstation.data.ts +++ b/src/views/mes/workstation/workstation.data.ts @@ -131,22 +131,7 @@ export const Team = useCrudSchemas(reactive([ isTableForm:true, } ])) -export const TeamSelect = useCrudSchemas(reactive([ - { - label: '代码', - field: 'code', - sort: 'custom', - isSearch: true, - isForm: false - }, - { - label: '名称', - field: 'name', - sort: 'custom', - isSearch: true, - isForm: false - } -])) + export const Equipment = useCrudSchemas(reactive([ { label: '代码', From b6ce3d9bc817e14c5201582b16171dfd492b3a0c Mon Sep 17 00:00:00 2001 From: chenfang Date: Mon, 1 Apr 2024 16:39:52 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE=E6=90=9C=E7=B4=A2=E6=A1=86?= =?UTF-8?q?api=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itemwarehouse/itemwarehouse.data.ts | 36 ++++++++++--------- .../mesBarCode/mesBarCode.data.ts | 2 +- .../deliverJobMain/deliverJobMain.data.ts | 10 ++++++ 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/views/wms/basicDataManage/itemManage/itemwarehouse/itemwarehouse.data.ts b/src/views/wms/basicDataManage/itemManage/itemwarehouse/itemwarehouse.data.ts index d9a08a586..99f6c1c5a 100644 --- a/src/views/wms/basicDataManage/itemManage/itemwarehouse/itemwarehouse.data.ts +++ b/src/views/wms/basicDataManage/itemManage/itemwarehouse/itemwarehouse.data.ts @@ -2,10 +2,10 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import * as ItembasicApi from '@/api/wms/itembasic' import { Itembasic } from '../itembasic/itembasic.data' -import * as AreaApi from '@/api/wms/areabasic' -import { Area } from '../../factoryModeling/areabasic/areabasic.data' -import * as PackageunitApi from '@/api/wms/packageunit' -import { Packageunit } from '../packageunit/packageunit.data' +import * as WarehouseApi from '@/api/wms/warehouse' +import { Warehouse } from '../../factoryModeling/warehouse/warehouse.data' +import * as ItempackageApi from '@/api/wms/itempackage' +import { Itempackaging } from '../itempackage/itempackage.data' export const Itemwarehouse = useCrudSchemas(reactive([ { @@ -36,7 +36,7 @@ export const Itemwarehouse = useCrudSchemas(reactive([ } }, { - label: '区域代码', + label: '仓库代码', field: 'warehouseCode', sort: 'custom', isSearch: true, @@ -47,11 +47,11 @@ export const Itemwarehouse = useCrudSchemas(reactive([ // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择库区代码', // 输入框占位文本 + searchListPlaceholder: '请选择仓库代码', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '库区基础信息', // 查询弹窗标题 - searchAllSchemas: Area.allSchemas, // 查询弹窗所需类 - searchPage: AreaApi.getAreaPage, // 查询弹窗所需分页方法 + searchTitle: '仓库基础信息', // 查询弹窗标题 + searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类 + searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法 searchCondition: [{ key: 'available', value: 'TRUE', @@ -85,17 +85,19 @@ export const Itemwarehouse = useCrudSchemas(reactive([ // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择包装规格代码', // 输入框占位文本 - searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '包装规格基础信息', // 查询弹窗标题 - searchAllSchemas: Packageunit.allSchemas, // 查询弹窗所需类 - searchPage: PackageunitApi.getPackageunitPage, // 查询弹窗所需分页方法 + searchListPlaceholder: '请选择物料包装代码', // 输入框占位文本 + searchField: 'packUnit', // 查询弹窗赋值字段 + searchTitle: '物料包装信息', // 查询弹窗标题 + searchAllSchemas: Itempackaging.allSchemas, // 查询弹窗所需类 + searchPage: ItempackageApi.getItempackagingPage, // 查询弹窗所需分页方法 searchCondition: [{ key: 'available', value: 'TRUE', - action: '==', - isSearch: true, - isMainValue: false + },{ + key: 'itemCode', + value: 'itemCode', + message: "请选择物料代码", + isMainValue: true }] } } diff --git a/src/views/wms/buttMesManage/mesBarCode/mesBarCode.data.ts b/src/views/wms/buttMesManage/mesBarCode/mesBarCode.data.ts index 13f7e68e8..79863758b 100644 --- a/src/views/wms/buttMesManage/mesBarCode/mesBarCode.data.ts +++ b/src/views/wms/buttMesManage/mesBarCode/mesBarCode.data.ts @@ -170,7 +170,7 @@ export const MesBarCode = useCrudSchemas(reactive([ }, { label: '创建时间', - field: 'createTime', + field: 'createTime', sort: 'custom', formatter: dateFormatter, table: { diff --git a/src/views/wms/deliversettlementManage/deliver/deliverJobMain/deliverJobMain.data.ts b/src/views/wms/deliversettlementManage/deliver/deliverJobMain/deliverJobMain.data.ts index 3e307ff01..93cdf7936 100644 --- a/src/views/wms/deliversettlementManage/deliver/deliverJobMain/deliverJobMain.data.ts +++ b/src/views/wms/deliversettlementManage/deliver/deliverJobMain/deliverJobMain.data.ts @@ -76,6 +76,16 @@ export const DeliverJobMain = useCrudSchemas(reactive([ width: 150 }, }, + { + label: '发货类型', + field: 'deliverType', + sort: 'custom', + dictType: DICT_TYPE.DELIVER_TYPE, + dictClass: 'string', + table: { + width: 150 + }, + }, { label: '承运商', field: 'carrierCode', From 0a4d37a57ba0154f035f0a66fec3b3092d76bf28 Mon Sep 17 00:00:00 2001 From: zhaoyiran Date: Mon, 1 Apr 2024 16:43:25 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/samplingScheme/index.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api/qms/samplingScheme/index.ts b/src/api/qms/samplingScheme/index.ts index 746af373f..c2b247e56 100644 --- a/src/api/qms/samplingScheme/index.ts +++ b/src/api/qms/samplingScheme/index.ts @@ -26,25 +26,25 @@ export const getSamplingScheme = async (id: number) => { // 新增采样方案 export const createSamplingScheme = async (data: SamplingSchemeVO) => { - return await request.post({ url: `/basic/sampling-scheme/create`, data }) + return await request.post({ url: `/qms/sampling-scheme/create`, data }) } // 修改采样方案 export const updateSamplingScheme = async (data: SamplingSchemeVO) => { - return await request.put({ url: `/basic/sampling-scheme/update`, data }) + return await request.put({ url: `/qms/sampling-scheme/update`, data }) } // 删除采样方案 export const deleteSamplingScheme = async (id: number) => { - return await request.delete({ url: `/basic/sampling-scheme/delete?id=` + id }) + return await request.delete({ url: `/qms/sampling-scheme/delete?id=` + id }) } // 导出采样方案 Excel export const exportSamplingScheme = async (params) => { - return await request.download({ url: `/basic/sampling-scheme/export-excel`, params }) + return await request.download({ url: `/qms/sampling-scheme/export-excel`, params }) } // 下载用户导入模板 export const importTemplate = () => { - return request.download({ url: '/basic/sampling-scheme/get-import-template' }) + return request.download({ url: '/qms/sampling-scheme/get-import-template' }) } From 1a3a6d8e458700cf032ac1bec3f29bd4293b1147 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Mon, 1 Apr 2024 16:43:35 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/inspectionTemplate/index.ts | 8 + .../inspectionTemplate/addForm.vue | 304 ++++++++++++++++ .../agvLocationrelation.data.ts | 330 ++++++++++++++++++ .../inspectionTemplate/index.vue | 32 +- 4 files changed, 652 insertions(+), 22 deletions(-) create mode 100644 src/api/qms/inspectionTemplate/index.ts create mode 100644 src/views/qms/basicDataManage/inspectionTemplate/addForm.vue create mode 100644 src/views/qms/basicDataManage/inspectionTemplate/agvLocationrelation.data.ts diff --git a/src/api/qms/inspectionTemplate/index.ts b/src/api/qms/inspectionTemplate/index.ts new file mode 100644 index 000000000..78bc8235f --- /dev/null +++ b/src/api/qms/inspectionTemplate/index.ts @@ -0,0 +1,8 @@ +import request from '@/config/axios' + + + +// 查询采样过程列表 +export const getInspectionProcessPage = async (params) => { + return await request.get({ url: `/qms/inspection-process/page`}) +} \ No newline at end of file diff --git a/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue b/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue new file mode 100644 index 000000000..a4079fae9 --- /dev/null +++ b/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue @@ -0,0 +1,304 @@ + + + + diff --git a/src/views/qms/basicDataManage/inspectionTemplate/agvLocationrelation.data.ts b/src/views/qms/basicDataManage/inspectionTemplate/agvLocationrelation.data.ts new file mode 100644 index 000000000..724d49a5a --- /dev/null +++ b/src/views/qms/basicDataManage/inspectionTemplate/agvLocationrelation.data.ts @@ -0,0 +1,330 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as AreaApi from '@/api/wms/areabasic' +import { Area } from '@/views/wms/basicDataManage/factoryModeling/areabasic/areabasic.data' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as InspectionProcessPageApi from '@/api/qms/inspectionTemplate' +// const inspectionProcessPage = await InspectionProcessPageApi.getInspectionProcessPage() + +// 表单校验 +export const AgvLocationrelationRules = reactive({ + positionCode: [ + { required: true, message: '请填写AGV点位', trigger: 'change' } + ], + positionArea: [ + { required: true, message: '请填写AGV库区', trigger: 'change' } + ], + wmsArea: [ + { required: true, message: '请填写WMS库区', trigger: 'change' } + ], + wmsPosition: [ + { required: true, message: '请填写WMS库位', trigger: 'change' } + ] +}) + +export const AgvLocationrelation = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'reqCode', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: 'AGV点位', + field: 'positionCode', + sort: 'custom', + isSearch: false, + }, + { + label: 'AGV库区', + field: 'positionArea', + sort: 'custom', + isSearch: false, + }, + { + label: 'WMS库区', + field: 'wmsArea', + sort: 'custom', + isSearch: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库区代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库区信息', // 查询弹窗标题 + searchAllSchemas: Area.allSchemas, // 查询弹窗所需类 + searchPage: AreaApi.getAreaPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: 'WMS库位', + field: 'wmsPosition', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'areaCode', + value: "wmsArea", + message: '请选择库区代码!', + isMainValue: true + }] + } + } + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + isSearch: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +export const InspectionTemplateMain = useCrudSchemas(reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + form:{ + componentProps:{ + disabled:true, + placeholder:'系统自动获取' + } + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + },{ + label: '版本', + field: 'version', + sort: 'custom', + } +])) +export const InspectionTemplateProcess = useCrudSchemas(reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + form:{ + componentProps:{ + disabled:true, + placeholder:'系统自动获取' + } + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isForm:false + },{ + label: '检验方案模板编码', + field: 'inspectionCode', + sort: 'custom', + },{ + label: '顺序号', + field: 'sequenceCode', + },{ + label: '检验特性编码', + field: 'inspectionCharCode', + sort: 'custom', + form:{ + component:'Select', + // api: () => inspectionProcessPage, + // componentProps:{ + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + } + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + } +])) +export const InspectionTemplateFeatures= useCrudSchemas(reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + form:{ + componentProps:{ + disabled:true, + placeholder:'系统自动获取' + } + } + }, + { + label: '描述', + field: 'describe', + sort: 'custom', + },{ + label: '检验方法编码', + field: 'inspectionMethodCode', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '采样过程编码', + field: 'dynamicUpdateCode', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '动态修改规则编码', + field: 'inspectionMethod', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '是否允许修改特征值', + field: 'isCanUpdate', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '是否破坏性检验', + field: 'isDestructionInspection', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '结果录入方式', + field: 'resultEntryMethod', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '特征类型', + field: 'featureType', + sort: 'custom', + form:{ + component:'Select' + } + },{ + label: '是否设定上限', + field: 'quantifyIsCapping', + sort: 'custom', + },{ + label: '是否设定下限', + field: 'quantifyIsLowlimit', + sort: 'custom', + },{ + label: '目标值', + field: 'quantifyTarget', + sort: 'custom', + },{ + label: '上限值', + field: 'quantifyCapping', + sort: 'custom', + },{ + label: '下限值', + field: 'quantifyLowlimit', + sort: 'custom', + },{ + label: '计量单位', + field: 'quantifyUom', + sort: 'custom', + },{ + label: '小数位', + field: 'quantifyDecimal', + sort: 'custom', + },{ + label: '选择集编码', + field: 'quantifyQuantifyCode', + sort: 'custom', + form:{ + component:'Select' + } + } +])) \ No newline at end of file diff --git a/src/views/qms/basicDataManage/inspectionTemplate/index.vue b/src/views/qms/basicDataManage/inspectionTemplate/index.vue index 0431f7339..463f6d19e 100644 --- a/src/views/qms/basicDataManage/inspectionTemplate/index.vue +++ b/src/views/qms/basicDataManage/inspectionTemplate/index.vue @@ -39,7 +39,7 @@ - --> + - import download from '@/utils/download' -import { AgvLocationrelation,AgvLocationrelationRules } from './agvLocationrelation.data' +import { AgvLocationrelation,AgvLocationrelationRules,InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures } from './agvLocationrelation.data' import * as AgvLocationrelationApi from '@/api/wms/agvLocationrelation' import * as defaultButtons from '@/utils/disposition/defaultButtons' import TableHead from '@/components/TableHead/src/TableHead.vue' import ImportForm from '@/components/ImportForm/src/ImportForm.vue' import Detail from '@/components/Detail/src/Detail.vue' +import AddForm from './addForm.vue' defineOptions({ name: 'AgvLocationrelation' }) @@ -153,25 +160,6 @@ const buttonTableClick = async (val, row) => { /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { - if(type == "update"){ - AgvLocationrelation.allSchemas.formSchema.forEach((item) => { - if (item.field == 'positionCode') { - item.componentProps.disabled = true - } - if (item.field == 'positionArea') { - item.componentProps.disabled = true - } - }) - }else { - AgvLocationrelation.allSchemas.formSchema.forEach((item) => { - if (item.field == 'positionCode') { - item.componentProps.disabled = false - } - if (item.field == 'positionArea') { - item.componentProps.disabled = false - } - }) - } basicFormRef.value.open(type, row) } From c8a370e0de62edb2a3071f3c645339e74102eabb Mon Sep 17 00:00:00 2001 From: zhaoyiran Date: Mon, 1 Apr 2024 16:45:52 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/qms/samplingScheme/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/qms/samplingScheme/index.vue b/src/views/qms/samplingScheme/index.vue index a1ea82181..547a9671a 100644 --- a/src/views/qms/samplingScheme/index.vue +++ b/src/views/qms/samplingScheme/index.vue @@ -54,13 +54,13 @@ - + diff --git a/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts new file mode 100644 index 000000000..3931624dd --- /dev/null +++ b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts @@ -0,0 +1,329 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +import { dateFormatter } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申请主表 + */ +export const InspectionJobMain = useCrudSchemas(reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '申请编码', + field: 'inspectionCode', + sort: 'custom', + isSearch: true, + }, + { + label: '供应商编码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + }, + { + label: '物料编码', + field: 'materialCode', + sort: 'custom', + isSearch: true, + }, + { + label: '物料批次', + field: 'materialBatch', + sort: 'custom', + isSearch: true, + }, + { + label: '订单号', + field: 'orderCode', + sort: 'custom', + isSearch: true, + }, + { + label: '订单行', + field: 'orderRow', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '凭证号', + field: 'certificateCode', + sort: 'custom', + isSearch: true, + }, + { + label: '凭证行', + field: 'certificateRow', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '检验方案编码', + field: 'inspectionSchemeCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验方案Json', + field: 'inspectionSchemeJson', + sort: 'custom', + isSearch: true, + }, + { + label: '检验批次', + field: 'inspectionBatch', + sort: 'custom', + isSearch: true, + }, + { + label: '检验批数量', + field: 'inspectionBatchAmount', + sort: 'custom', + isSearch: true, + }, + { + label: '采样总数量', + field: 'sampleTatalAmount', + sort: 'custom', + isSearch: true, + }, + { + label: '检验类型', + field: 'inspectionType', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '检验批来源', + field: 'inspectionBatchSource', + sort: 'custom', + isSearch: true, + }, + { + label: '检验阶段', + field: 'inspectionStage', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '检验严格性', + field: 'inspectionStringency', + sort: 'custom', + isSearch: true, + }, + { + label: '检验任务包装列表', + field: 'inspectionTaskPackageCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验任务工序列表', + field: 'inspectionTaskProcessCode', + sort: 'custom', + isSearch: true, + }, + { + label: '计划开始时间', + field: 'planStartTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '计划结束时间', + field: 'planEndTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '检验水平', + field: 'inspectionLevel', + sort: 'custom', + isSearch: true, + }, + { + label: 'AQL值', + field: 'aqlValue', + sort: 'custom', + isSearch: true, + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const InspectionJobMainRules = reactive({ + number: [required], + inspectionCode: [required], + supplierCode: [required], + materialCode: [required], + materialBatch: [required], + orderCode: [required], + certificateRow: [required], + inspectionSchemeCode: [required], + inspectionSchemeJson: [required], + inspectionBatch: [required], + inspectionBatchAmount: [required], + sampleTatalAmount: [required], + inspectionType: [required], + inspectionBatchSource: [required], + inspectionStage: [required], + inspectionStringency: [required], + inspectionLevel: [required], + available: [required], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const InspectionJobDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isSearch: true, + isForm: false, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '主表ID', + field: 'masterId', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '任务编码', + field: 'taskCode', + sort: 'custom', + isSearch: true, + }, + { + label: '工序编码', + field: 'processCode', + sort: 'custom', + isSearch: true, + }, + { + label: '工序描述', + field: 'processDescribe', + sort: 'custom', + isSearch: true, + }, + { + label: '顺序号', + field: 'sequenceCode', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '检验特性编号', + field: 'inspectionFeatureCode', + sort: 'custom', + isSearch: true, + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const InspectionJobDetailRules = reactive({ + taskCode: [required], + processCode: [required], + sequenceCode: [required], + available: [required], +}) diff --git a/src/views/qms/inspection/inspectionRequest/index.vue b/src/views/qms/inspection/inspectionRequest/index.vue new file mode 100644 index 000000000..74269bfa7 --- /dev/null +++ b/src/views/qms/inspection/inspectionRequest/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts b/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts new file mode 100644 index 000000000..4b1686ebc --- /dev/null +++ b/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts @@ -0,0 +1,239 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const InspectionMainRules = reactive({ + number: [required], + applicationDate: [required], + applicationTime: [required], + supplierCode: [required], + materialCode: [required], + batch: [required], + referenceOrderCode: [required], + referenceOrderRow: [required], + inspectionSchemeCode: [required], + inspectionStageCode: [required], + inspectionLevel: [required], + available: [required], +}) + +export const InspectionMain = useCrudSchemas(reactive([ + + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '申请日期', + field: 'applicationDate', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '申请时间', + field: 'applicationTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '要求开始时间', + field: 'requestStartTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '要求结束时间', + field: 'requestEndTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '完成时间', + field: 'finishTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '供应商编码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + }, + { + label: '物料编码', + field: 'materialCode', + sort: 'custom', + isSearch: true, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + isSearch: true, + }, + { + label: '待检数量', + field: 'requestInspectionNum', + sort: 'custom', + isSearch: true, + }, + { + label: '参考订单号', + field: 'referenceOrderCode', + sort: 'custom', + isSearch: true, + }, + { + label: '参考订单行', + field: 'referenceOrderRow', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '参考凭证号', + field: 'referenceCertificateCode', + sort: 'custom', + isSearch: true, + }, + { + label: '参考凭证行', + field: 'referenceCertificateRow', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '检验方案编码', + field: 'inspectionSchemeCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验阶段', + field: 'inspectionStageCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验申请包装列表', + field: 'applicationPackageCode', + sort: 'custom', + isSearch: true, + }, + { + label: '检验水平', + field: 'inspectionLevel', + sort: 'custom', + isSearch: true, + }, + { + label: 'AQL值', + field: 'aqlValue', + sort: 'custom', + isSearch: true, + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +]))