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/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/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/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/inspectionJob/inspectionJobDetail/index.ts b/src/api/qms/inspectionJob/inspectionJobDetail/index.ts
new file mode 100644
index 000000000..742627e2b
--- /dev/null
+++ b/src/api/qms/inspectionJob/inspectionJobDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface InspectionJobDetailVO {
+ number: string
+ applicationDate: localdate
+ applicationTime: Date
+ requestStartTime: Date
+ requestEndTime: Date
+ finishTime: Date
+ supplierCode: string
+ materialCode: string
+ batch: string
+ requestInspectionNum: number
+ referenceOrderCode: string
+ referenceOrderRow: number
+ referenceCertificateCode: string
+ referenceCertificateRow: number
+ inspectionSchemeCode: string
+ inspectionStageCode: string
+ applicationPackageCode: string
+ inspectionLevel: string
+ aqlValue: number
+ available: string
+}
+
+// 查询检验申请列表
+export const getInspectionJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/inspection/inspection-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/inspection/inspection-job-detail/page`, params })
+ }
+}
+
+// 查询检验申请详情
+export const getInspectionJobDetail = async (id: number) => {
+ return await request.get({ url: `/inspection/inspection-job-detail/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionJobDetail = async (data: InspectionJobDetailVO) => {
+ return await request.post({ url: `/inspection/inspection-job-detail/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionJobDetail = async (data: InspectionJobDetailVO) => {
+ return await request.put({ url: `/inspection/inspection-job-detail/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionJobDetail = async (id: number) => {
+ return await request.delete({ url: `/inspection/inspection-job-detail/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionJobDetail = async (params) => {
+ return await request.download({ url: `/inspection/inspection-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/inspection/inspection-job-detail/get-import-template' })
+}
diff --git a/src/api/qms/inspectionJob/inspectionJobMain/index.ts b/src/api/qms/inspectionJob/inspectionJobMain/index.ts
new file mode 100644
index 000000000..7bb8b4411
--- /dev/null
+++ b/src/api/qms/inspectionJob/inspectionJobMain/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface InspectionJobMainVO {
+ number: string
+ applicationDate: localdate
+ applicationTime: Date
+ requestStartTime: Date
+ requestEndTime: Date
+ finishTime: Date
+ supplierCode: string
+ materialCode: string
+ batch: string
+ requestInspectionNum: number
+ referenceOrderCode: string
+ referenceOrderRow: number
+ referenceCertificateCode: string
+ referenceCertificateRow: number
+ inspectionSchemeCode: string
+ inspectionStageCode: string
+ applicationPackageCode: string
+ inspectionLevel: string
+ aqlValue: number
+ available: string
+}
+
+// 查询检验申请列表
+export const getInspectionJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/inspection/inspection-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/inspection/inspection-job-main/page`, params })
+ }
+}
+
+// 查询检验申请详情
+export const getInspectionJobMain = async (id: number) => {
+ return await request.get({ url: `/inspection/inspection-job-main/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionJobMain = async (data: InspectionJobMainVO) => {
+ return await request.post({ url: `/inspection/inspection-job-main/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionJobMain = async (data: InspectionJobMainVO) => {
+ return await request.put({ url: `/inspection/inspection-job-main/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionJobMain = async (id: number) => {
+ return await request.delete({ url: `/inspection/inspection-job-main/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionJobMain = async (params) => {
+ return await request.download({ url: `/inspection/inspection-job-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/inspection/inspection-job-main/get-import-template' })
+}
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/inspectionRequest/index.ts b/src/api/qms/inspectionRequest/index.ts
new file mode 100644
index 000000000..0b064dc02
--- /dev/null
+++ b/src/api/qms/inspectionRequest/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface InspectionMainVO {
+ number: string
+ applicationDate: localdate
+ applicationTime: Date
+ requestStartTime: Date
+ requestEndTime: Date
+ finishTime: Date
+ supplierCode: string
+ materialCode: string
+ batch: string
+ requestInspectionNum: number
+ referenceOrderCode: string
+ referenceOrderRow: number
+ referenceCertificateCode: string
+ referenceCertificateRow: number
+ inspectionSchemeCode: string
+ inspectionStageCode: string
+ applicationPackageCode: string
+ inspectionLevel: string
+ aqlValue: number
+ available: string
+}
+
+// 查询检验申请列表
+export const getInspectionMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/inspection/inspection-main/senior', data })
+ } else {
+ return await request.get({ url: `/inspection/inspection-main/page`, params })
+ }
+}
+
+// 查询检验申请详情
+export const getInspectionMain = async (id: number) => {
+ return await request.get({ url: `/inspection/inspection-main/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionMain = async (data: InspectionMainVO) => {
+ return await request.post({ url: `/inspection/inspection-main/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionMain = async (data: InspectionMainVO) => {
+ return await request.put({ url: `/inspection/inspection-main/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionMain = async (id: number) => {
+ return await request.delete({ url: `/inspection/inspection-main/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionMain = async (params) => {
+ return await request.download({ url: `/inspection/inspection-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/inspection/inspection-main/get-import-template' })
+}
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/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..c2b247e56
--- /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: `/qms/sampling-scheme/create`, data })
+}
+
+// 修改采样方案
+export const updateSamplingScheme = async (data: SamplingSchemeVO) => {
+ return await request.put({ url: `/qms/sampling-scheme/update`, data })
+}
+
+// 删除采样方案
+export const deleteSamplingScheme = async (id: number) => {
+ return await request.delete({ url: `/qms/sampling-scheme/delete?id=` + id })
+}
+
+// 导出采样方案 Excel
+export const exportSamplingScheme = async (params) => {
+ return await request.download({ url: `/qms/sampling-scheme/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/sampling-scheme/get-import-template' })
+}
diff --git a/src/components/Detail/src/Detail.vue b/src/components/Detail/src/Detail.vue
index 790198bfc..4b0b7512f 100644
--- a/src/components/Detail/src/Detail.vue
+++ b/src/components/Detail/src/Detail.vue
@@ -25,7 +25,7 @@
/>
-
+
@@ -97,22 +97,25 @@
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -142,6 +145,7 @@
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.personCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.itemCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.stepsCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.collectCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/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 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ titleNameRef }}
+
+
+
+
+
+
+
+
+
+
+ 名称:{{ processRouteInfoSchema.processrouteInfo.processName}}
+ 编码:{{ processRouteInfoSchema.processrouteInfo.processrouteCode}}
+ 版本:{{ processRouteInfoSchema.processrouteInfo.routeVersion}}
+
+
+
+
+
+
+
+
+ {{ scope.row.preNodeName }}
+
+
+
+
+
+
+ {{ scope.row.nodeName }}
+
+
+
+
+
+
+ {{ scope.row.nextNodeName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.planNoDay }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.formNo }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.reworkbillNo }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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'
+ }
+ }
+]))
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: '代码',
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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)
}
diff --git a/src/views/qms/inspection/inspectionJob/index.vue b/src/views/qms/inspection/inspectionJob/index.vue
new file mode 100644
index 000000000..392c0797f
--- /dev/null
+++ b/src/views/qms/inspection/inspectionJob/index.vue
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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'
+ }
+ }
+]))
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..547a9671a
--- /dev/null
+++ b/src/views/qms/samplingScheme/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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'
+ }
+ }
+]))
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',
diff --git a/src/views/wms/productionManage/productredress/productredressJobMain/index.vue b/src/views/wms/productionManage/productredress/productredressJobMain/index.vue
index 5f6a7d630..2a74d12e2 100644
--- a/src/views/wms/productionManage/productredress/productredressJobMain/index.vue
+++ b/src/views/wms/productionManage/productredress/productredressJobMain/index.vue
@@ -54,6 +54,7 @@
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