diff --git a/.env.production b/.env.production index 0abb59e..581dd50 100644 --- a/.env.production +++ b/.env.production @@ -16,7 +16,7 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false VITE_GLOB_API_URL=/cpte-wms #后台接口全路径地址(必填) -VITE_GLOB_DOMAIN_URL=http://127.0.0.1:8080/cpte-wms +VITE_GLOB_DOMAIN_URL=http://10.180.9.60:8000/cpte-wms # 接口父路径前缀 VITE_GLOB_API_URL_PREFIX= diff --git a/index.html b/index.html index e0643b1..5dec4b8 100644 --- a/index.html +++ b/index.html @@ -159,7 +159,7 @@
-
+
diff --git a/public/resource/img/logo.png b/public/resource/img/logo.png index f409d73..9404060 100644 Binary files a/public/resource/img/logo.png and b/public/resource/img/logo.png differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png index f409d73..9404060 100644 Binary files a/src/assets/images/logo.png and b/src/assets/images/logo.png differ diff --git a/src/assets/loginmini/icon/logo.png b/src/assets/loginmini/icon/logo.png index 492ce7a..9404060 100644 Binary files a/src/assets/loginmini/icon/logo.png and b/src/assets/loginmini/icon/logo.png differ diff --git a/src/components/jeecg/JVxeTable/src/JVxeTable.ts b/src/components/jeecg/JVxeTable/src/JVxeTable.ts index c77713c..415c8a6 100644 --- a/src/components/jeecg/JVxeTable/src/JVxeTable.ts +++ b/src/components/jeecg/JVxeTable/src/JVxeTable.ts @@ -1,4 +1,4 @@ -import { defineComponent, h, nextTick, ref, useSlots } from 'vue'; +import { defineComponent, h, ref, useSlots } from 'vue'; import { vxeEmits, vxeProps } from './vxe.data'; import { useData, useRefs, useResolveComponent as rc } from './hooks/useData'; import { useColumns } from './hooks/useColumns'; diff --git a/src/components/jeecg/JVxeTable/src/vxe.data.ts b/src/components/jeecg/JVxeTable/src/vxe.data.ts index e558ed8..d819113 100644 --- a/src/components/jeecg/JVxeTable/src/vxe.data.ts +++ b/src/components/jeecg/JVxeTable/src/vxe.data.ts @@ -119,7 +119,7 @@ export const vxeProps = () => ({ // 新增按钮配置 addBtnCfg: propTypes.object, // 删除按钮配置 - removeBtnCfg: propTypes.object, + removeBtnCfg: propTypes.object }); export const vxeEmits = ['save', 'added', 'removed', 'inserted', 'dragged', 'selectRowChange', 'pageChange', 'valueChange', 'blur']; diff --git a/src/views/agvTask/AgvTask.api.ts b/src/views/agvTask/AgvTask.api.ts new file mode 100644 index 0000000..8975ea5 --- /dev/null +++ b/src/views/agvTask/AgvTask.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/agvTask/list', + save='/agvTask/add', + edit='/agvTask/edit', + deleteOne = '/agvTask/delete', + deleteBatch = '/agvTask/deleteBatch', + importExcel = '/agvTask/importExcel', + exportXls = '/agvTask/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param handleSuccess + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/src/views/agvTask/AgvTask.data.ts b/src/views/agvTask/AgvTask.data.ts new file mode 100644 index 0000000..047a645 --- /dev/null +++ b/src/views/agvTask/AgvTask.data.ts @@ -0,0 +1,70 @@ +import {BasicColumn} from '/@/components/Table'; +import { render } from '@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '任务ID', + align: "center", + width: '170px', + dataIndex: 'id' + }, + { + title: '容器', + align: "center", + width: '120px', + dataIndex: 'carrierCode' + }, + { + title: '业务类型', + align: "center", + width: '120px', + dataIndex: 'type_dictText' + }, + { + title: '任务状态', + align: "center", + width: '120px', + dataIndex: 'status_dictText', + customRender: ({ text }) => { + //入库状态:已创建、已审核、收货中、收货完成、已关闭、已取消。 + const statusColorMap = { + '已创建': 'orange', + '执行中': 'cyan', + '已到达': 'blue', + '已完成': 'green', + '已取消': 'red' + }; + const color = statusColorMap[text] || 'red'; + return render.renderTag(text, color); + } + }, + { + title: '起点', + align: "center", + width: '120px', + dataIndex: 'startCode' + }, + { + title: '终点', + align: "center", + width: '120px', + dataIndex: 'endCode' + }, + { + title: '优先级', + align: "center", + width: '60px', + dataIndex: 'priority' + }, + { + title: '返回报文', + align: "center", + dataIndex: 'resMessage' + }, + { + title: '创建时间', + align: 'center', + dataIndex: 'createTime', + sorter: true, + }, +]; diff --git a/src/views/agvTask/AgvTaskList.vue b/src/views/agvTask/AgvTaskList.vue new file mode 100644 index 0000000..57c1b17 --- /dev/null +++ b/src/views/agvTask/AgvTaskList.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/views/agvTask/V20251106_1__menu_insert_AgvTask.sql b/src/views/agvTask/V20251106_1__menu_insert_AgvTask.sql new file mode 100644 index 0000000..fee19f3 --- /dev/null +++ b/src/views/agvTask/V20251106_1__menu_insert_AgvTask.sql @@ -0,0 +1,40 @@ +-- 注意:该页面对应的前台目录为views/agvTask文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +-- 主菜单 +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('176240183424201', NULL, 'AGV任务表', '/agvTask/agvTaskList', 'agvTask/AgvTaskList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0); + +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424202', '176240183424201', '添加AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424203', '176240183424201', '编辑AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424204', '176240183424201', '删除AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424205', '176240183424201', '批量删除AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424206', '176240183424201', '导出excel_AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176240183424207', '176240183424201', '导入excel_AGV任务表', NULL, NULL, 0, NULL, NULL, 2, 'agvTask:data_agv_task:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-06 12:03:54', NULL, NULL, 0, 0, '1', 0); + +-- 角色授权(以 admin 角色为例,role_id 可替换) +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424208', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424201', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424209', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424202', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424210', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424203', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424211', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424204', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424212', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424205', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424213', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424206', NULL, '2025-11-06 12:03:54', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176240183424214', 'f6817f48af4fb3af11b9e8bf182f618b', '176240183424207', NULL, '2025-11-06 12:03:54', '127.0.0.1'); \ No newline at end of file diff --git a/src/views/agvTask/components/AgvTaskForm.vue b/src/views/agvTask/components/AgvTaskForm.vue new file mode 100644 index 0000000..75594a0 --- /dev/null +++ b/src/views/agvTask/components/AgvTaskForm.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/agvTask/components/AgvTaskModal.vue b/src/views/agvTask/components/AgvTaskModal.vue new file mode 100644 index 0000000..36e02be --- /dev/null +++ b/src/views/agvTask/components/AgvTaskModal.vue @@ -0,0 +1,81 @@ + + + + + + diff --git a/src/views/base/area/AreaList.vue b/src/views/base/area/AreaList.vue index 95cef4e..3f161f3 100644 --- a/src/views/base/area/AreaList.vue +++ b/src/views/base/area/AreaList.vue @@ -13,7 +13,7 @@ - + diff --git a/src/views/base/stock/Stock.data.ts b/src/views/base/stock/Stock.data.ts index e17a6fd..70af32d 100644 --- a/src/views/base/stock/Stock.data.ts +++ b/src/views/base/stock/Stock.data.ts @@ -1,8 +1,5 @@ import {BasicColumn} from '/@/components/Table'; -import {FormSchema} from '/@/components/Table'; -import { rules} from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; -import { getWeekMonthQuarterYear } from '/@/utils'; //列表数据 export const columns: BasicColumn[] = [ { @@ -10,6 +7,30 @@ export const columns: BasicColumn[] = [ align: "center", dataIndex: 'stockCode' }, + { + title: '容器类型', + align: "center", + dataIndex: 'stockType_dictText' + }, + { + title: '状态', + align: 'center', + dataIndex: 'status_dictText', + customRender: ({ text }) => { + const color = text == '占用' ? 'red' : text == '空闲' ? 'green' : 'gray'; + return render.renderTag(text, color); + }, + }, + { + title: '库位', + align: "center", + dataIndex: 'pointId_dictText' + }, + { + title: '是否启用', + align: 'center', + dataIndex: 'izActive', + }, { title: '描述', align: "center", @@ -22,9 +43,3 @@ export const columns: BasicColumn[] = [ }, ]; -// 高级查询数据 -export const superQuerySchema = { - stockCode: {title: '容器编码',order: 0,view: 'text', type: 'string',}, - description: {title: '描述',order: 1,view: 'text', type: 'string',}, - createTime: {title: '创建日期',order: 3,view: 'datetime', type: 'string',}, -}; diff --git a/src/views/base/stock/StockList.vue b/src/views/base/stock/StockList.vue index 6a5a2d9..c59b41b 100644 --- a/src/views/base/stock/StockList.vue +++ b/src/views/base/stock/StockList.vue @@ -7,15 +7,29 @@ - + - - - + + + + + + + + + + @@ -35,9 +49,11 @@ - + @@ -67,20 +81,20 @@ diff --git a/src/views/receive/asn/V20251103_1__menu_insert_Asn.sql b/src/views/receive/asn/V20251103_1__menu_insert_Asn.sql new file mode 100644 index 0000000..fc40b8a --- /dev/null +++ b/src/views/receive/asn/V20251103_1__menu_insert_Asn.sql @@ -0,0 +1,40 @@ +-- 注意:该页面对应的前台目录为views/receive文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +-- 主菜单 +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('176216432288201', NULL, '入库单', '/receive/asnList', 'receive/AsnList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0); + +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288202', '176216432288201', '添加入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288203', '176216432288201', '编辑入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288204', '176216432288201', '删除入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288205', '176216432288201', '批量删除入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288206', '176216432288201', '导出excel_入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('176216432288207', '176216432288201', '导入excel_入库单', NULL, NULL, 0, NULL, NULL, 2, 'receive:data_asn:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-11-03 18:05:22', NULL, NULL, 0, 0, '1', 0); + +-- 角色授权(以 admin 角色为例,role_id 可替换) +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288308', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288201', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288309', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288202', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288310', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288203', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288311', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288204', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288312', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288205', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288313', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288206', NULL, '2025-11-03 18:05:22', '127.0.0.1'); +INSERT INTO sys_role_permission (id, role_id, permission_id, data_rule_ids, operate_date, operate_ip) VALUES ('176216432288314', 'f6817f48af4fb3af11b9e8bf182f618b', '176216432288207', NULL, '2025-11-03 18:05:22', '127.0.0.1'); \ No newline at end of file diff --git a/src/views/receive/asn/components/AsnForm.vue b/src/views/receive/asn/components/AsnForm.vue new file mode 100644 index 0000000..8509b22 --- /dev/null +++ b/src/views/receive/asn/components/AsnForm.vue @@ -0,0 +1,329 @@ + + + + diff --git a/src/views/receive/asn/components/AsnModal.vue b/src/views/receive/asn/components/AsnModal.vue new file mode 100644 index 0000000..816ba6e --- /dev/null +++ b/src/views/receive/asn/components/AsnModal.vue @@ -0,0 +1,67 @@ + + + + diff --git a/src/views/system/fillRule/index.vue b/src/views/system/fillRule/index.vue index 93d5e1c..1a9b32e 100644 --- a/src/views/system/fillRule/index.vue +++ b/src/views/system/fillRule/index.vue @@ -3,9 +3,9 @@