diff --git a/src/api/eam/classTypeRole/index.ts b/src/api/eam/classTypeRole/index.ts
new file mode 100644
index 000000000..506a8abe3
--- /dev/null
+++ b/src/api/eam/classTypeRole/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface ClassTypeRoleVO {
+ id: number
+ workerRoleId: string
+ engineerRoleId: string
+ type: string
+ factoryAreaCode: string
+ workshopCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询厂区班组角色维护列表
+export const getClassTypeRolePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/class-type-role/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/class-type-role/page`, params })
+ }
+}
+
+// 查询厂区班组角色维护详情
+export const getClassTypeRole = async (id: number) => {
+ return await request.get({ url: `/eam/basic/class-type-role/get?id=` + id })
+}
+
+// 新增厂区班组角色维护
+export const createClassTypeRole = async (data: ClassTypeRoleVO) => {
+ return await request.post({ url: `/eam/basic/class-type-role/create`, data })
+}
+
+// 修改厂区班组角色维护
+export const updateClassTypeRole = async (data: ClassTypeRoleVO) => {
+ return await request.put({ url: `/eam/basic/class-type-role/update`, data })
+}
+
+// 删除厂区班组角色维护
+export const deleteClassTypeRole = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/class-type-role/delete?id=` + id })
+}
+
+// 导出厂区班组角色维护 Excel
+export const exportClassTypeRole = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/class-type-role/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/class-type-role/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/class-type-role/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/basicDocumentType/index.ts b/src/api/eam/documentType/index.ts
similarity index 59%
rename from src/api/eam/basicDocumentType/index.ts
rename to src/api/eam/documentType/index.ts
index d7809baf4..af93a8bd5 100644
--- a/src/api/eam/basicDocumentType/index.ts
+++ b/src/api/eam/documentType/index.ts
@@ -20,48 +20,48 @@ export const getDocumentTypePage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
- return await request.post({ url: '/eam/document-type/senior', data })
+ return await request.post({ url: '/eam/basic/document-type/senior', data })
} else {
- return await request.get({ url: `/eam/document-type/page`, params })
+ return await request.get({ url: `/eam/basic/document-type/page`, params })
}
}
// 查询文档类型详情
export const getDocumentType = async (id: number) => {
- return await request.get({ url: `/eam/document-type/get?id=` + id })
+ return await request.get({ url: `/eam/basic/document-type/get?id=` + id })
}
// 新增文档类型
export const createDocumentType = async (data: DocumentTypeVO) => {
- return await request.post({ url: `/eam/document-type/create`, data })
+ return await request.post({ url: `/eam/basic/document-type/create`, data })
}
// 修改文档类型
export const updateDocumentType = async (data: DocumentTypeVO) => {
- return await request.put({ url: `/eam/document-type/update`, data })
+ return await request.put({ url: `/eam/basic/document-type/update`, data })
}
// 删除文档类型
export const deleteDocumentType = async (id: number) => {
- return await request.delete({ url: `/eam/document-type/delete?id=` + id })
+ return await request.delete({ url: `/eam/basic/document-type/delete?id=` + id })
}
// 导出文档类型 Excel
export const exportDocumentType = async (params) => {
if (params.isSearch) {
const data = {...params}
- return await request.downloadPost({ url: `/eam/document-type/export-excel-senior`, data })
+ return await request.downloadPost({ url: `/eam/basic/document-type/export-excel-senior`, data })
}else{
- return await request.download({ url: `/eam/document-type/export-excel`, params })
+ return await request.download({ url: `/eam/basic/document-type/export-excel`, params })
}
}
// 下载用户导入模板
export const importTemplate = () => {
- return request.download({ url: '/eam/document-type/get-import-template' })
+ return request.download({ url: '/eam/basic/document-type/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: DocumentTypeVO) => {
- return await request.post({ url: `/eam/document-type/ables` , data })
+ return await request.post({ url: `/eam/basic/document-type/ables` , data })
}
diff --git a/src/api/eam/documentTypeSelectSet/index.ts b/src/api/eam/documentTypeSelectSet/index.ts
new file mode 100644
index 000000000..f58a4858e
--- /dev/null
+++ b/src/api/eam/documentTypeSelectSet/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+import {BasicSpotCheckSelectSetVO} from "@/api/eam/basicSpotCheckSelectSet";
+
+export interface DocumentTypeSelectSetVO {
+ id: number
+ name: string
+ itemCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询文档类型选择集列表
+export const getDocumentTypeSelectSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/document-type-select-set/senior', data })
+ } else {
+ return await request.get({ url: `/eam/document-type-select-set/page`, params })
+ }
+}
+
+// 查询文档类型选择集详情
+export const getDocumentTypeSelectSet = async (id: number) => {
+ return await request.get({ url: `/eam/document-type-select-set/get?id=` + id })
+}
+
+// 新增文档类型选择集
+export const createDocumentTypeSelectSet = async (data: DocumentTypeSelectSetVO) => {
+ return await request.post({ url: `/eam/document-type-select-set/create`, data })
+}
+
+// 修改文档类型选择集
+export const updateDocumentTypeSelectSet = async (data: DocumentTypeSelectSetVO) => {
+ return await request.put({ url: `/eam/document-type-select-set/update`, data })
+}
+
+// 删除文档类型选择集
+export const deleteDocumentTypeSelectSet = async (id: number) => {
+ return await request.delete({ url: `/eam/document-type-select-set/delete?id=` + id })
+}
+
+// 导出文档类型选择集 Excel
+export const exportDocumentTypeSelectSet = async (params) => {
+ return await request.download({ url: `/eam/document-type-select-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/document-type-select-set/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: DocumentTypeSelectSetVO) => {
+ return await request.post({ url: `/eam/document-type-select-set/ables` , data })
+}
diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts
index 93636ff0d..ac8b3e736 100644
--- a/src/api/system/role/index.ts
+++ b/src/api/system/role/index.ts
@@ -59,3 +59,8 @@ export const exportRole = (params) => {
params
})
}
+
+// 查询角色列表
+export const getRoleNoPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/role/noPage', params })
+}
diff --git a/src/api/wms/relegateRecordDetail/index.ts b/src/api/wms/relegateRecordDetail/index.ts
new file mode 100644
index 000000000..3127b99cf
--- /dev/null
+++ b/src/api/wms/relegateRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordDetailVO {
+ id: number
+ masterId: number
+ itemCode: string
+ downItemCode: string
+ businessType: string
+ uom: string
+ qty: number
+ inventoryStatus: string
+ fromBatch: string
+ fromPackingNumber: string
+ fromLocationCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toPackingNumber: string
+ toBatch: string
+ toLocationCode: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ available: string
+ remark: string
+ departmentCode: string
+ siteId: number
+ extraProperties: string
+ status: string
+ concurrencyStamp: number
+ serialNumber: string
+ ruleUserId: number
+}
+
+// 查询物料降级记录子列表
+export const getRelegateRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-detail/page`, params })
+ }
+}
+
+// 查询物料降级记录子详情
+export const getRelegateRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-detail/get?id=` + id })
+}
+
+// 新增物料降级记录子
+export const createRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.post({ url: `/wms/relegate-record-detail/create`, data })
+}
+
+// 修改物料降级记录子
+export const updateRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.put({ url: `/wms/relegate-record-detail/update`, data })
+}
+
+// 删除物料降级记录子
+export const deleteRelegateRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-detail/delete?id=` + id })
+}
+
+// 导出物料降级记录子 Excel
+export const exportRelegateRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRecordMain/index.ts b/src/api/wms/relegateRecordMain/index.ts
new file mode 100644
index 000000000..78d63d873
--- /dev/null
+++ b/src/api/wms/relegateRecordMain/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordMainVO {
+ id: number
+ requestNumber: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询物料降级记录主列表
+export const getRelegateRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-main/page`, params })
+ }
+}
+
+// 查询物料降级记录主详情
+export const getRelegateRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-main/get?id=` + id })
+}
+
+// 新增物料降级记录主
+export const createRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.post({ url: `/wms/relegate-record-main/create`, data })
+}
+
+// 修改物料降级记录主
+export const updateRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.put({ url: `/wms/relegate-record-main/update`, data })
+}
+
+// 删除物料降级记录主
+export const deleteRelegateRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-main/delete?id=` + id })
+}
+
+// 导出物料降级记录主 Excel
+export const exportRelegateRecordMain = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRequestMain/index.ts b/src/api/wms/relegateRequestMain/index.ts
index 1b3ca3018..03e02454a 100644
--- a/src/api/wms/relegateRequestMain/index.ts
+++ b/src/api/wms/relegateRequestMain/index.ts
@@ -65,4 +65,34 @@ export const exportRelegateRequestMain = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/relegate-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/handle?id=' + id })
}
\ No newline at end of file
diff --git a/src/api/wms/supplierdeliverInspectionDetail/index.ts b/src/api/wms/supplierdeliverInspectionDetail/index.ts
index c17a4d8f5..4f5855e68 100644
--- a/src/api/wms/supplierdeliverInspectionDetail/index.ts
+++ b/src/api/wms/supplierdeliverInspectionDetail/index.ts
@@ -56,4 +56,8 @@ export const exportSupplierdeliverInspectionDetail = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/supplierdeliver-inspection-detail/get-import-template' })
-}
\ No newline at end of file
+}
+// 查看质检报告
+export const queryQualityInspection = (asnNumber:string) => {
+ return request.get({ url: `/wms/supplierdeliver-request-main/queryQualityInspection?asnNumber=` + asnNumber })
+}
diff --git a/src/api/wms/workshop/index.ts b/src/api/wms/workshop/index.ts
index 727253443..e2a23282a 100644
--- a/src/api/wms/workshop/index.ts
+++ b/src/api/wms/workshop/index.ts
@@ -55,4 +55,9 @@ export const exportWorkshop = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/workshop/get-import-template' })
+}
+
+// 查询车间列表
+export const getWorkshopNoPage = async (params) => {
+ return await request.get({ url: `/wms/workshop/noPage`, params })
}
\ No newline at end of file
diff --git a/src/components/Annex/src/Annex.vue b/src/components/Annex/src/Annex.vue
index 812be654f..ffb0dc15c 100644
--- a/src/components/Annex/src/Annex.vue
+++ b/src/components/Annex/src/Annex.vue
@@ -4,7 +4,7 @@
+ @update:modelValue="handleAnnexSuccess" v-if="showAddBtn&&annexData.annexList.length<5"/>
@@ -67,6 +67,10 @@ const props = defineProps({
type: Boolean,
required: false
},
+ showAddBtn: {
+ type: Boolean,
+ required: true
+ },
})
// 子传父的时候需要先定义好emit这个方法
const emit = defineEmits(['handleAnnexSuccess', 'deleteAnnexSuccess','previewAnnexHandle'])
diff --git a/src/config/axios/config.ts b/src/config/axios/config.ts
index 7f7b94732..811650873 100644
--- a/src/config/axios/config.ts
+++ b/src/config/axios/config.ts
@@ -16,7 +16,7 @@ const config: {
/**
* 接口请求超时时间
*/
- request_timeout: 3000000,
+ request_timeout: 30000,
/**
* 默认接口请求类型
diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts
index 1a4741b69..36261ac26 100644
--- a/src/config/axios/service.ts
+++ b/src/config/axios/service.ts
@@ -31,7 +31,7 @@ let requestList: any[] = []
// 是否正在刷新中
let isRefreshToken = false
// 请求白名单,无须token的接口
-const whiteList: string[] = ['/login', '/refresh-token']
+const whiteList: string[] = ['/login', '/refresh-token','/queryQualityInspection']
// 创建axios实例
const service: AxiosInstance = axios.create({
diff --git a/src/permission.ts b/src/permission.ts
index 1650d3504..c3f5307c0 100644
--- a/src/permission.ts
+++ b/src/permission.ts
@@ -21,7 +21,8 @@ const whiteList = [
'/auth-redirect',
'/bind',
'/register',
- '/oauthLogin/gitee'
+ '/oauthLogin/gitee',
+ '/purchasereceiptReport'
]
// 路由加载前
diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts
index f8e08bce4..3f156883c 100644
--- a/src/router/modules/remaining.ts
+++ b/src/router/modules/remaining.ts
@@ -244,6 +244,16 @@ const remainingRouter: AppRouteRecordRaw[] = [
noTagsView: true
}
},
+ {
+ path: '/purchasereceiptReport',
+ component: () => import('@/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue'),
+ name: 'NoFound',
+ meta: {
+ hidden: true,
+ title: t('ts.查看质检报告'),
+ noTagsView: true
+ }
+ },
{
path: '/bpm',
component: Layout,
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
index 731adaa35..27a6ee73a 100644
--- a/src/utils/dict.ts
+++ b/src/utils/dict.ts
@@ -341,5 +341,6 @@ export enum DICT_TYPE {
// ========== eam - 业务 - ==========
DEVICE_TYPE = 'device_type', // 设备类型
IS_UPDATED = 'is_updated', //是否可修改
-
-}
+ DATA_SCOPE = 'data_scope', // 数据范围
+ ROLE_STATUS = 'role_status' // 角色状态
+}
\ No newline at end of file
diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts
index bd999713c..e2cc243c6 100644
--- a/src/utils/disposition/defaultButtons.ts
+++ b/src/utils/disposition/defaultButtons.ts
@@ -518,6 +518,17 @@ export function mainListPlanUploadQualityReportBtn(option:any) {
hasPermi: ''
})
}
+export function mainListPlanCheckQualityReportBtn(option:any) {
+ return __defaultBtnOption(option,{
+ label: t(`ts.查看质检报告`).replace('ts.', ''),
+ name: 'mainPlanCheckQualityReport',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
// 主列表-计划流程-提交审批按钮
export function mainListPlanSubBtn(option:any) {
diff --git a/src/views/eam/classTypeRole/classTypeRole.data.ts b/src/views/eam/classTypeRole/classTypeRole.data.ts
new file mode 100644
index 000000000..0d6c35938
--- /dev/null
+++ b/src/views/eam/classTypeRole/classTypeRole.data.ts
@@ -0,0 +1,191 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as deptApi from '@/api/system/dept'
+import * as roleApi from '@/api/system/role'
+import { Role } from '@/views/system/role/role.data'
+import { selectAllFactoryArea } from '@/api/system/dept'
+import * as WorkshopApi from '@/api/wms/workshop'
+import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
+
+const roleList = await roleApi.getSimpleRoleList({})
+const workshopList = await WorkshopApi.getWorkshopPage({ pageNo: 1, pageSize: 100 })
+const roleListNoPage = await roleApi.getRoleNoPage({})
+const workshopNoPage = await WorkshopApi.getWorkshopNoPage({ pageNo: 1, pageSize: 100 })
+// 表单校验
+export const ClassTypeRoleRules = reactive({
+ workerRoleId: [required],
+ engineerRoleId: [required],
+ workerRoleName: [required],
+ engineerRoleName: [required],
+ workshopName: [required],
+ type: [required],
+ factoryAreaCode: [required],
+ concurrencyStamp: [required]
+})
+
+export const ClassTypeRole = useCrudSchemas(reactive
([
+ {
+ label: '维修工角色',
+ field: 'workerRoleId',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: roleListNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return roleList.find((item) => item.id == cellValue)?.name
+ },
+ },
+ {
+ label: '维修工角色',
+ field: 'workerRoleName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择角色', // 输入框占位文本
+ searchField: 'id', // 查询弹窗赋值字段
+ searchTitle: '维修工角色', // 查询弹窗标题
+ searchAllSchemas: Role.allSchemas, // 查询弹窗所需类
+ searchPage: roleApi.getRolePage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ },
+ },
+ {
+ label: '工程师角色',
+ field: 'engineerRoleId',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: roleListNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return roleList.find((item) => item.id == cellValue)?.name
+ },
+ },
+ {
+ label: '工程师角色',
+ field: 'engineerRoleName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择角色', // 输入框占位文本
+ searchField: 'id', // 查询弹窗赋值字段
+ searchTitle: '工程师角色', // 查询弹窗标题
+ searchAllSchemas: Role.allSchemas, // 查询弹窗所需类
+ searchPage: roleApi.getRolePage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ },
+ },
+ {
+ label: '班组',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.BASIC_TEAM_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: workshopNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'code'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return workshopList.list.find((item) => item.code == cellValue)?.name
+ },
+ },
+ {
+ label: '车间编号',
+ field: 'workshopName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/classTypeRole/index.vue b/src/views/eam/classTypeRole/index.vue
new file mode 100644
index 000000000..e5e1645b1
--- /dev/null
+++ b/src/views/eam/classTypeRole/index.vue
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicDocumentType/basicDocumentType.data.ts b/src/views/eam/documentType/documentType.data.ts
similarity index 100%
rename from src/views/eam/basicDocumentType/basicDocumentType.data.ts
rename to src/views/eam/documentType/documentType.data.ts
diff --git a/src/views/eam/basicDocumentType/index.vue b/src/views/eam/documentType/index.vue
similarity index 98%
rename from src/views/eam/basicDocumentType/index.vue
rename to src/views/eam/documentType/index.vue
index 50e79ca47..0f46e6cf1 100644
--- a/src/views/eam/basicDocumentType/index.vue
+++ b/src/views/eam/documentType/index.vue
@@ -59,8 +59,8 @@
diff --git a/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue b/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue
new file mode 100644
index 000000000..56c68f242
--- /dev/null
+++ b/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/spotCheckItem/spotCheckItem.data.ts b/src/views/eam/spotCheckItem/spotCheckItem.data.ts
index 4d7e8db78..a04484032 100644
--- a/src/views/eam/spotCheckItem/spotCheckItem.data.ts
+++ b/src/views/eam/spotCheckItem/spotCheckItem.data.ts
@@ -77,13 +77,13 @@ export const SpotCheckItem = useCrudSchemas(reactive([
label: '是否启用',
field: 'available',
sort: 'custom',
- dictType: DICT_TYPE.TRUE_FALSE,
- dictClass: 'string', // 默认都是字符串类型其他暂不考虑
- isTable: true,
- isDetail: false,
- isSearch: false,
- isTableForm: false,
- isForm: false,
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
},
{
label: '备注',
diff --git a/src/views/system/role/role.data.ts b/src/views/system/role/role.data.ts
new file mode 100644
index 000000000..7a8bf3517
--- /dev/null
+++ b/src/views/system/role/role.data.ts
@@ -0,0 +1,85 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RoleRules = reactive({
+ name: [required],
+ code: [required],
+})
+
+export const Role = useCrudSchemas(reactive([
+ {
+ label: '角色ID',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '角色名称',
+ field: 'name',
+ sort: 'custom',
+ },
+ {
+ label: '角色权限字符串',
+ field: 'code',
+ sort: 'custom',
+ width: 200,
+ },
+ {
+ label: '显示顺序',
+ field: 'sort',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '数据权限范围',
+ field: 'dataScope',
+ sort: 'custom',
+ dictType: DICT_TYPE.DATA_SCOPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ width: 200,
+ },
+ {
+ label: '数据部门范围',
+ field: 'dataScopeDeptIds',
+ sort: 'custom',
+ },
+ {
+ label: '角色状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.ROLE_STATUS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '角色类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.SYSTEM_ROLE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ 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/relegate/relegateRecord/index.vue b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/index.vue
new file mode 100644
index 000000000..4860432a5
--- /dev/null
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts
new file mode 100644
index 000000000..bca43b73f
--- /dev/null
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRecord/relegateRecordMain.data.ts
@@ -0,0 +1,204 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RelegateRecordMainRules = reactive({
+ departmentCode: [required],
+ interfaceType: [required],
+ number: [required],
+ businessType: [required],
+})
+
+export const RelegateRecordMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '申请单号',
+ field: 'requestNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '执行时间',
+ field: 'executeTime',
+ 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: 'activeDate',
+ 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: 'available',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '申请时间',
+ field: 'requestTime',
+ 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: 'dueTime',
+ 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: 'departmentCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '用户组',
+ field: 'userGroupCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '接口类型',
+ field: 'interfaceType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '代码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: 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')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
index 36313533a..8155622b9 100644
--- a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
+++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
@@ -48,7 +48,7 @@
+ :detailButtonIsShowAdd="true"
+ :detailButtonIsShowDelete="true" />
{
return []
}
return [
+ defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:relegate-request-main:close'}), // 关闭
+ defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:relegate-request-main:reAdd'}), //重新添加
+ defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:relegate-request-main:submit'}), // 提交审批
+ defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:relegate-request-main:refused'}), // 驳回
+ defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:relegate-request-main:agree'}), // 审批通过
+ defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:relegate-request-main:handle'}), // 处理
defaultButtons.mainListEditBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'wms:relegate-request-main:update' }), // 编辑
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:relegate-request-main:delete' }), // 删除
]
diff --git a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
index 5f3724f1b..be42e4a99 100644
--- a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
+++ b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
@@ -29,7 +29,7 @@
v-model:sort="tableObject.sort"
>
-
+
{{ row.number }}
diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue
index b117408b4..b795dc5dd 100644
--- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue
+++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue
@@ -81,6 +81,16 @@
:isShowReduceButton="false"
:isShowFooterButtton="false"
/>
+
+
+
+
@@ -219,7 +229,8 @@ const butttondata = (row,$index) => {
color: '',
hasPermi: 'wms:purchasereceipt-job-main:close',
link: true // 文本展现按钮
- }
+ },
+ defaultButtons.mainListPlanCheckQualityReportBtn({}), // 查看质检报告
]
}
@@ -233,8 +244,18 @@ const buttonTableClick = async (val, row) => {
handleClose(row.masterId)
} else if (val == 'mainJobAcc') { // 承接
console.log('列表-操作按钮事件-承接')
+ }else if(val == 'mainPlanCheckQualityReport'){
+ // 查看质检报告
+ checkQualityReport(row)
}
}
+// 查看质检报告
+const showQualityReport = ref(false)
+const qualityReport = ref('')
+const checkQualityReport = async (row)=>{
+ showQualityReport.value = true
+ qualityReport.value = `${import.meta.env.VITE_REPORT_URL}/purchasereceiptReport?asnNumber=${row.asnNumber}`
+}
/** 关闭按钮操作 */
const handleClose = async (id: number) => {
diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
index 482d324ff..10b9b0134 100644
--- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
+++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
@@ -89,6 +89,16 @@
:isShowReduceButton="false"
:isShowFooterButtton="false"
/>
+
+
+
+
@@ -162,6 +172,7 @@ const butttondata = (row,$index) => {
return [
defaultButtons.mainInspectRequestBtn({hasPermi:'wms:purchasereceipt-record-main:createInspectRequest',hide:row.inspectRequestFlag == "FALSE" }),// 生成到货检验申请
defaultButtons.mainPutawayRequestBtn({hasPermi:'wms:purchasereceipt-record-main:createPutawayRequest',hide:row.putawayRequestFlag == "FALSE" }),// 生成采购上架申请
+ defaultButtons.mainListPlanCheckQualityReportBtn({}), // 查看质检报告
]
}
@@ -171,8 +182,18 @@ const buttonTableClick = async (val, row) => {
handleCreatePutawayRequest(row.number)
}else if(val == 'inspectRequest'){//生成到货检验申请
handleCreateInspectRequest(row.number)
+ }else if(val == 'mainPlanCheckQualityReport'){
+ // 查看质检报告
+ checkQualityReport(row)
}
}
+// 查看质检报告
+const showQualityReport = ref(false)
+const qualityReport = ref('')
+const checkQualityReport = async (row)=>{
+ showQualityReport.value = true
+ qualityReport.value = `${import.meta.env.VITE_REPORT_URL}/purchasereceiptReport?asnNumber=${row.asnNumber}`
+}
/** 生成采购上架申请按钮操作 */
const handleCreatePutawayRequest = async (number:string) => {
diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue
new file mode 100644
index 000000000..2c26037f1
--- /dev/null
+++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue
index 14a4a00e4..ce8ac9b9c 100644
--- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue
+++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue
@@ -54,6 +54,8 @@
:isBusiness="true"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
+ :isShowReduceButtonSelection="true"
+ @tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@formFormDateChange="formFormDateChange"
@@ -126,8 +128,16 @@
/>
-
-
+
+
+
+