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/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/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/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/utils/dict.ts b/src/utils/dict.ts index 92d89451e..095fe6ad4 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/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/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' + } + } +]))