From 73a491573f193a78b06bfe34741f35310eeb54c6 Mon Sep 17 00:00:00 2001 From: mahao Date: Mon, 11 Mar 2024 17:24:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/item/index.ts | 60 +++++ src/api/qms/qualityclass/index.ts | 55 ++++ src/utils/dict.ts | 7 + src/views/qms/item/index.vue | 244 +++++++++++++++++ src/views/qms/item/item.data.ts | 176 +++++++++++++ src/views/qms/qualityclass/index.vue | 245 ++++++++++++++++++ .../qms/qualityclass/qualityclass.data.ts | 152 +++++++++++ 7 files changed, 939 insertions(+) create mode 100644 src/api/qms/item/index.ts create mode 100644 src/api/qms/qualityclass/index.ts create mode 100644 src/views/qms/item/index.vue create mode 100644 src/views/qms/item/item.data.ts create mode 100644 src/views/qms/qualityclass/index.vue create mode 100644 src/views/qms/qualityclass/qualityclass.data.ts diff --git a/src/api/qms/item/index.ts b/src/api/qms/item/index.ts new file mode 100644 index 000000000..4c76802b9 --- /dev/null +++ b/src/api/qms/item/index.ts @@ -0,0 +1,60 @@ +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) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/qms/item/senior', data }) + } else { + return await request.get({ url: `/qms/item/page`, params }) + } +} + +// 查询质检项目定义详情 +export const getItem = async (id: number) => { + return await request.get({ url: `/qms/item/get?id=` + id }) +} + +// 新增质检项目定义 +export const createItem = async (data: ItemVO) => { + return await request.post({ url: `/qms/item/create`, data }) +} + +// 修改质检项目定义 +export const updateItem = async (data: ItemVO) => { + return await request.put({ url: `/qms/item/update`, data }) +} + +// 删除质检项目定义 +export const deleteItem = async (id: number) => { + return await request.delete({ url: `/qms/item/delete?id=` + id }) +} + +// 导出质检项目定义 Excel +export const exportItem = async (params) => { + return await request.download({ url: `/qms/item/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/item/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/qms/qualityclass/index.ts b/src/api/qms/qualityclass/index.ts new file mode 100644 index 000000000..e0b7b27d5 --- /dev/null +++ b/src/api/qms/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: '/qms/qualityclass/senior', data }) + } else { + return await request.get({ url: `/qms/qualityclass/page`, params }) + } +} + +// 查询质检类别详情 +export const getQualityclass = async (id: number) => { + return await request.get({ url: `/qms/qualityclass/get?id=` + id }) +} + +// 新增质检类别 +export const createQualityclass = async (data: QualityclassVO) => { + return await request.post({ url: `/qms/qualityclass/create`, data }) +} + +// 修改质检类别 +export const updateQualityclass = async (data: QualityclassVO) => { + return await request.put({ url: `/qms/qualityclass/update`, data }) +} + +// 删除质检类别 +export const deleteQualityclass = async (id: number) => { + return await request.delete({ url: `/qms/qualityclass/delete?id=` + id }) +} + +// 导出质检类别 Excel +export const exportQualityclass = async (params) => { + return await request.download({ url: `/qms/qualityclass/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/qualityclass/get-import-template' }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 1418edfc1..c08388364 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -274,4 +274,11 @@ export enum DICT_TYPE { CONTAINER_STATUS = 'container_status', // 容器状态 PREDICT_TIME_TYPE = 'predict_time_type', // 预测时间类型 PACK_UNIT_TYPE = 'pack_unit_type', // 包装规格类型 + TRANSFER_REASON = 'transfer_reason', // 调拨出入库原因 + PURCHASERECEIPT_SOURCE_TYPE="purchasereceipt_source_type",//采购收货数据来源 + + + // ========== 业务 - QMS ========== + QUALIFY_STATUS = 'qualify_status' + } diff --git a/src/views/qms/item/index.vue b/src/views/qms/item/index.vue new file mode 100644 index 000000000..3854704a3 --- /dev/null +++ b/src/views/qms/item/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/qms/item/item.data.ts b/src/views/qms/item/item.data.ts new file mode 100644 index 000000000..ee96434f2 --- /dev/null +++ b/src/views/qms/item/item.data.ts @@ -0,0 +1,176 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemRules = reactive({ + concurrencyStamp: [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: { + component: 'SelectV2' + }, + }, + { + label: '质检科目编码', + field: 'qmsClass', + sort: 'custom', + isSearch: true, + }, + { + label: '数据类型', + field: 'dataType', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '校验方式', + field: 'dataVerify', + sort: 'custom', + 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', + isSearch: true, + form: { + component: 'Radio' + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + } +])) diff --git a/src/views/qms/qualityclass/index.vue b/src/views/qms/qualityclass/index.vue new file mode 100644 index 000000000..683f9dff9 --- /dev/null +++ b/src/views/qms/qualityclass/index.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/views/qms/qualityclass/qualityclass.data.ts b/src/views/qms/qualityclass/qualityclass.data.ts new file mode 100644 index 000000000..5e72c29b8 --- /dev/null +++ b/src/views/qms/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: 'ENABLE', + componentProps: { + inactiveValue: 'DISABLE', + activeValue: 'ENABLE' + } + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail:false, + table: { + width: 150, + fixed: 'right' + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false + } +])) +