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 @@ + + + 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 @@ + + + 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" > 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 @@ /> - - + + + +