Alex 11 месяцев назад
Родитель
Сommit
3ce7d4d246

+ 55 - 0
src/api/marketing/partner.js

@@ -0,0 +1,55 @@
+import request from '@/utils/request';
+
+/**
+ * 获取合伙人推广海报模板列表
+ * @param {Object} params - 查询参数
+ * @returns {Promise}
+ */
+export function getPosterTemplateList(params) {
+    return request.get('/user/userPartnerPosterTemplate/pagelist', { params });
+}
+
+/**
+ * 获取合伙人推广海报模板详情
+ * @param {string|number} id - 模板ID
+ * @returns {Promise}
+ */
+export function getPosterTemplateInfo(id) {
+    return request.get(`/user/userPartnerPosterTemplate/getInfo/${id}`);
+}
+
+/**
+ * 新增合伙人推广海报模板
+ * @param {Object} data - 模板数据
+ * @returns {Promise}
+ */
+export function addPosterTemplate(data) {
+    return request.post('/user/userPartnerPosterTemplate/add', data);
+}
+
+/**
+ * 修改合伙人推广海报模板
+ * @param {Object} data - 模板数据
+ * @returns {Promise}
+ */
+export function updatePosterTemplate(data) {
+    return request.post('/user/userPartnerPosterTemplate/update', data);
+}
+
+/**
+ * 删除合伙人推广海报模板
+ * @param {Array} ids - 模板ID数组
+ * @returns {Promise}
+ */
+export function deletePosterTemplate(ids) {
+    return request.post('/user/userPartnerPosterTemplate/delete', { ids });
+}
+
+/**
+ * 修改合伙人推广海报模板状态
+ * @param {Object} data - { id: number, status: number }
+ * @returns {Promise}
+ */
+export function updatePosterTemplateStatus(data) {
+    return request.post('/user/userPartnerPosterTemplate/updateStatus', data);
+}

+ 18 - 0
src/api/partner.js

@@ -0,0 +1,18 @@
+import request from '@/utils/request';
+
+// 获取合伙人招募规则
+export function getPartnerRule() {
+    return request({
+        url: '/user/userPartnerRule/getInfo',
+        method: 'get'
+    });
+}
+
+// 更新合伙人招募规则
+export function updatePartnerRule(data) {
+    return request({
+        url: '/user/userPartnerRule/update',
+        method: 'post',
+        data
+    });
+}

BIN
src/assets/mobile.png


+ 4 - 3
src/components/CommonPage/SimpleFormModal.vue

@@ -44,6 +44,7 @@ const props = defineProps({
         type: Function,
         default: (data) => data
     }, //格式化提交数据
+    idKey: { type: String, default: 'id' },
     fallbackData: { type: Function, default: (data) => data } //回填数据
 });
 const emit = defineEmits(['success']);
@@ -95,15 +96,15 @@ const handleSumbit = () => {
     formRef.value?.submitForm().then((data) => {
         console.log(data, '格式化数据data');
 
-        data.id = form.value?.id;
-        let url = data.id ? props.baseUrl.update : props.baseUrl.add;
+        data[props.idKey] = form.value[props.idKey];
+        let url = data[props.idKey] ? props.baseUrl.update : props.baseUrl.add;
         data = props.isMerge ? { ...mergeData.value, ...data } : data;
         let format = props.formatData(data);
         proxy.$http.post(url, format).then((res) => {
             if (res.data.code !== 200) return EleMessage.error(res.data.msg);
             visible.value = false;
             emit('success', data);
-            EleMessage.success(format.id ? '编辑成功' : '操作成功');
+            EleMessage.success(format[props.idKey] ? '编辑成功' : '操作成功');
         });
     });
 };

+ 490 - 0
src/sys_menu.sql

@@ -0,0 +1,490 @@
+/*
+Navicat MySQL Data Transfer
+
+Source Server         : 书嗨-test
+Source Server Version : 50744
+Source Host           : 47.104.88.16:3306
+Source Database       : shuhi
+
+Target Server Type    : MYSQL
+Target Server Version : 50744
+File Encoding         : 65001
+
+Date: 2025-02-16 19:54:58
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
+  `menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
+  `parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',
+  `order_num` int(4) DEFAULT '0' COMMENT '显示顺序',
+  `path` varchar(200) DEFAULT '' COMMENT '路由地址',
+  `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
+  `query` varchar(255) DEFAULT NULL COMMENT '路由参数',
+  `route_name` varchar(50) DEFAULT '' COMMENT '路由名称',
+  `is_frame` int(1) DEFAULT '1' COMMENT '是否为外链(0是 1否)',
+  `is_cache` int(1) DEFAULT '0' COMMENT '是否缓存(0缓存 1不缓存)',
+  `menu_type` char(1) DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)',
+  `visible` char(1) DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
+  `status` char(1) DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
+  `perms` varchar(100) DEFAULT NULL COMMENT '权限标识',
+  `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
+  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
+  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`menu_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2358 DEFAULT CHARSET=utf8mb4 COMMENT='菜单权限表';
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('1', '系统管理', '0', '1', 'system', null, '', '', '1', '0', 'M', '0', '0', '', 'system', 'admin', '2024-11-19 21:15:41', '', null, '系统管理目录');
+INSERT INTO `sys_menu` VALUES ('2', '系统监控', '0', '2', 'monitor', null, '', '', '1', '0', 'M', '0', '0', '', 'monitor', 'admin', '2024-11-19 21:15:41', '', null, '系统监控目录');
+INSERT INTO `sys_menu` VALUES ('3', '系统工具', '0', '3', 'tool', null, '', '', '1', '0', 'M', '0', '0', '', 'tool', 'admin', '2024-11-19 21:15:41', '', null, '系统工具目录');
+INSERT INTO `sys_menu` VALUES ('100', '用户管理', '1', '1', 'user', 'system/user/index', '', '', '1', '0', 'C', '0', '0', 'system:user:list', 'user', 'admin', '2024-11-19 21:15:41', '', null, '用户管理菜单');
+INSERT INTO `sys_menu` VALUES ('101', '角色管理', '1', '2', 'role', 'system/role/index', '', '', '1', '0', 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2024-11-19 21:15:41', '', null, '角色管理菜单');
+INSERT INTO `sys_menu` VALUES ('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', '', '1', '0', 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2024-11-19 21:15:41', '', null, '菜单管理菜单');
+INSERT INTO `sys_menu` VALUES ('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', '', '1', '0', 'C', '0', '0', 'system:dept:list', 'tree', 'admin', '2024-11-19 21:15:41', '', null, '部门管理菜单');
+INSERT INTO `sys_menu` VALUES ('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', '', '1', '0', 'C', '0', '0', 'system:post:list', 'post', 'admin', '2024-11-19 21:15:41', '', null, '岗位管理菜单');
+INSERT INTO `sys_menu` VALUES ('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', '', '1', '0', 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2024-11-19 21:15:41', '', null, '字典管理菜单');
+INSERT INTO `sys_menu` VALUES ('106', '参数设置', '1', '7', 'config', 'system/config/index', '', '', '1', '0', 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2024-11-19 21:15:41', '', null, '参数设置菜单');
+INSERT INTO `sys_menu` VALUES ('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', '', '1', '0', 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2024-11-19 21:15:41', '', null, '通知公告菜单');
+INSERT INTO `sys_menu` VALUES ('108', '日志管理', '1', '9', 'log', '', '', '', '1', '0', 'M', '0', '0', '', 'log', 'admin', '2024-11-19 21:15:41', '', null, '日志管理菜单');
+INSERT INTO `sys_menu` VALUES ('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', '', '1', '0', 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2024-11-19 21:15:41', '', null, '在线用户菜单');
+INSERT INTO `sys_menu` VALUES ('110', '定时任务', '2', '2', 'job', 'monitor/job/index', '', '', '1', '0', 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2024-11-19 21:15:41', '', null, '定时任务菜单');
+INSERT INTO `sys_menu` VALUES ('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', '', '1', '0', 'C', '0', '1', 'monitor:druid:list', 'FundOutlined', 'admin', '2024-11-19 21:15:41', 'admin', '2024-11-22 20:58:24', '数据监控菜单');
+INSERT INTO `sys_menu` VALUES ('112', '服务监控', '2', '4', 'server', 'monitor/server/index', '', '', '1', '0', 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2024-11-19 21:15:41', '', null, '服务监控菜单');
+INSERT INTO `sys_menu` VALUES ('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2024-11-19 21:15:41', '', null, '缓存监控菜单');
+INSERT INTO `sys_menu` VALUES ('114', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '', '1', '0', 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', '2024-11-19 21:15:41', '', null, '缓存列表菜单');
+INSERT INTO `sys_menu` VALUES ('115', '表单构建', '3', '1', 'build', 'tool/build/index', '', '', '1', '0', 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2024-11-19 21:15:41', '', null, '表单构建菜单');
+INSERT INTO `sys_menu` VALUES ('116', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', '', '1', '0', 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2024-11-19 21:15:41', '', null, '代码生成菜单');
+INSERT INTO `sys_menu` VALUES ('117', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', '', '1', '0', 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2024-11-19 21:15:41', '', null, '系统接口菜单');
+INSERT INTO `sys_menu` VALUES ('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', '', '1', '0', 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2024-11-19 21:15:41', '', null, '操作日志菜单');
+INSERT INTO `sys_menu` VALUES ('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', '', '1', '0', 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2024-11-19 21:15:41', '', null, '登录日志菜单');
+INSERT INTO `sys_menu` VALUES ('1000', '用户查询', '100', '1', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1001', '用户新增', '100', '2', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1002', '用户修改', '100', '3', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1003', '用户删除', '100', '4', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1004', '用户导出', '100', '5', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1005', '用户导入', '100', '6', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:import', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1006', '重置密码', '100', '7', '', '', '', '', '1', '0', 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1007', '角色查询', '101', '1', '', '', '', '', '1', '0', 'F', '0', '0', 'system:role:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1008', '角色新增', '101', '2', '', '', '', '', '1', '0', 'F', '0', '0', 'system:role:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1009', '角色修改', '101', '3', '', '', '', '', '1', '0', 'F', '0', '0', 'system:role:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1010', '角色删除', '101', '4', '', '', '', '', '1', '0', 'F', '0', '0', 'system:role:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1011', '角色导出', '101', '5', '', '', '', '', '1', '0', 'F', '0', '0', 'system:role:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1012', '菜单查询', '102', '1', '', '', '', '', '1', '0', 'F', '0', '0', 'system:menu:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1013', '菜单新增', '102', '2', '', '', '', '', '1', '0', 'F', '0', '0', 'system:menu:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1014', '菜单修改', '102', '3', '', '', '', '', '1', '0', 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1015', '菜单删除', '102', '4', '', '', '', '', '1', '0', 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1016', '部门查询', '103', '1', '', '', '', '', '1', '0', 'F', '0', '0', 'system:dept:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1017', '部门新增', '103', '2', '', '', '', '', '1', '0', 'F', '0', '0', 'system:dept:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1018', '部门修改', '103', '3', '', '', '', '', '1', '0', 'F', '0', '0', 'system:dept:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1019', '部门删除', '103', '4', '', '', '', '', '1', '0', 'F', '0', '0', 'system:dept:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1020', '岗位查询', '104', '1', '', '', '', '', '1', '0', 'F', '0', '0', 'system:post:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1021', '岗位新增', '104', '2', '', '', '', '', '1', '0', 'F', '0', '0', 'system:post:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1022', '岗位修改', '104', '3', '', '', '', '', '1', '0', 'F', '0', '0', 'system:post:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1023', '岗位删除', '104', '4', '', '', '', '', '1', '0', 'F', '0', '0', 'system:post:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1024', '岗位导出', '104', '5', '', '', '', '', '1', '0', 'F', '0', '0', 'system:post:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1025', '字典查询', '105', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:dict:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1026', '字典新增', '105', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:dict:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1027', '字典修改', '105', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1028', '字典删除', '105', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1029', '字典导出', '105', '5', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:dict:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1030', '参数查询', '106', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:config:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1031', '参数新增', '106', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:config:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1032', '参数修改', '106', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:config:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1033', '参数删除', '106', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:config:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1034', '参数导出', '106', '5', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:config:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1035', '公告查询', '107', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:notice:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1036', '公告新增', '107', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:notice:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1037', '公告修改', '107', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1038', '公告删除', '107', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1039', '操作查询', '500', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1040', '操作删除', '500', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1041', '日志导出', '500', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1042', '登录查询', '501', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1043', '登录删除', '501', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1044', '日志导出', '501', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1045', '账户解锁', '501', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1046', '在线查询', '109', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1047', '批量强退', '109', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1048', '单条强退', '109', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1049', '任务查询', '110', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1050', '任务新增', '110', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1051', '任务修改', '110', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1052', '任务删除', '110', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1053', '状态修改', '110', '5', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1054', '任务导出', '110', '6', '#', '', '', '', '1', '0', 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1055', '生成查询', '116', '1', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1056', '生成修改', '116', '2', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1057', '生成删除', '116', '3', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1058', '导入代码', '116', '4', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1059', '预览代码', '116', '5', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('1060', '生成代码', '116', '6', '#', '', '', '', '1', '0', 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2024-11-19 21:15:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2000', '回收订单', '0', '5', 'recycleOrder', null, null, '', '1', '0', 'M', '0', '0', '', 'LogOutlined', 'admin', '2024-11-19 22:54:48', 'admin', '2024-11-22 21:00:42', '');
+INSERT INTO `sys_menu` VALUES ('2001', '回收订单查询', '2000', '1', 'search', 'recycleOrder/search/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:search:list', 'SearchOutlined', 'admin', '2024-11-19 22:59:30', 'lian', '2025-01-20 17:24:16', '');
+INSERT INTO `sys_menu` VALUES ('2002', '待初审订单', '2000', '2', 'awaitReview', 'recycleOrder/awaitReview/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitReview:list', 'IdcardOutlined', 'admin', '2024-11-19 23:02:33', 'admin', '2024-11-20 16:52:32', '');
+INSERT INTO `sys_menu` VALUES ('2003', '待取件订单', '2000', '3', 'awaitPickup', 'recycleOrder/awaitPickup/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitPickup:list', 'UploadOutlined', 'admin', '2024-11-19 23:04:59', 'admin', '2024-11-20 16:52:44', '');
+INSERT INTO `sys_menu` VALUES ('2004', '待签收订单', '2000', '4', 'awaitSign', 'recycleOrder/awaitSign/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitSign:list', 'DownloadOutlined', 'admin', '2024-11-19 23:14:26', 'admin', '2024-11-20 16:53:14', '');
+INSERT INTO `sys_menu` VALUES ('2005', '待收货订单', '2000', '5', 'awaitDelivery', 'recycleOrder/awaitDelivery/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitDelivery:list', 'DownloadOutlined', 'admin', '2024-11-19 23:15:22', 'admin', '2024-11-20 16:53:22', '');
+INSERT INTO `sys_menu` VALUES ('2006', '待审核订单', '2000', '6', 'awaitAudit', 'recycleOrder/awaitAudit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitAudit:list', 'UnlockOutlined', 'admin', '2024-11-19 23:17:10', 'admin', '2024-11-20 16:53:47', '');
+INSERT INTO `sys_menu` VALUES ('2007', '审核未提交', '2000', '7', 'auditNotSubmit', 'recycleOrder/auditNotSubmit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:auditNotSubmit:list', 'FormOutlined', 'admin', '2024-11-19 23:17:54', 'admin', '2024-11-20 16:54:00', '');
+INSERT INTO `sys_menu` VALUES ('2008', '待付款订单', '2000', '8', 'awaitPay', 'recycleOrder/awaitPay/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitPay:list', 'LogOutlined', 'admin', '2024-11-19 23:18:47', 'admin', '2024-11-21 20:39:18', '');
+INSERT INTO `sys_menu` VALUES ('2009', '已完成订单', '2000', '9', 'completed', 'recycleOrder/completed/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:completed:list', 'LinkOutlined', 'admin', '2024-11-19 23:19:40', 'admin', '2024-11-21 20:39:43', '');
+INSERT INTO `sys_menu` VALUES ('2010', '初审未通过', '2000', '10', 'failedAudit', 'recycleOrder/failedAudit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:failedAudit:list', 'AppstoreAddOutlined', 'admin', '2024-11-19 23:20:50', 'admin', '2024-11-21 20:44:31', '');
+INSERT INTO `sys_menu` VALUES ('2011', '已取消订单', '2000', '11', 'cancelled', 'recycleOrder/cancelled/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:cancelled:list', 'CloseCircleOutlined', 'admin', '2024-11-19 23:21:40', 'admin', '2024-11-21 20:55:55', '');
+INSERT INTO `sys_menu` VALUES ('2012', '回收催审核', '2000', '12', 'urgentRecycleAudit', 'recycleOrder/urgentRecycleAudit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:urgentRecycleAudit:list', 'TimerOutlined', 'admin', '2024-11-19 23:22:37', 'admin', '2024-11-21 20:56:16', '');
+INSERT INTO `sys_menu` VALUES ('2013', '需退回订单', '2000', '13', 'needReturned', 'recycleOrder/needReturned/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:needReturned:list', 'ArrowLeftOutlined', 'admin', '2024-11-19 23:23:22', 'admin', '2024-11-21 20:56:30', '');
+INSERT INTO `sys_menu` VALUES ('2014', '订单详情', '2000', '99', 'detail', '', '', '', '1', '0', 'F', '0', '0', 'order:orderInfo:query', 'AppstoreOutlined', 'admin', '2024-11-20 17:04:00', 'admin', '2025-01-20 17:29:58', '');
+INSERT INTO `sys_menu` VALUES ('2015', '订单详情', '2001', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:detail', '#', 'admin', '2024-11-20 18:37:52', 'admin', '2024-11-20 18:39:37', '');
+INSERT INTO `sys_menu` VALUES ('2016', '批量初审', '2001', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:batchAudit', '#', 'admin', '2024-11-20 18:39:30', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2017', '导出订单明细', '2001', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:export', '#', 'admin', '2024-11-20 18:40:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2018', '订单日志', '2001', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:log', '#', 'admin', '2024-11-20 18:40:49', 'admin', '2025-01-20 17:38:57', '');
+INSERT INTO `sys_menu` VALUES ('2019', '取消订单', '2001', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:cancel', '#', 'admin', '2024-11-20 18:41:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2020', '回退状态', '2001', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:fallback', '#', 'admin', '2024-11-20 18:42:22', 'admin', '2024-11-20 18:42:33', '');
+INSERT INTO `sys_menu` VALUES ('2021', '物流揽件', '2001', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:materialPickup', '#', 'admin', '2024-11-20 18:43:43', 'admin', '2025-02-07 13:02:46', '');
+INSERT INTO `sys_menu` VALUES ('2022', '审核截图', '2001', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:auditScreenshot', '#', 'admin', '2024-11-20 18:44:36', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2023', '售后补款', '2001', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:afterSalesPayment', '#', 'admin', '2024-11-20 18:45:51', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2024', '用户标签', '2001', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:userTag', '#', 'admin', '2024-11-20 18:46:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2025', '推送短信', '2001', '11', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:sendSMS', '#', 'admin', '2024-11-20 18:47:38', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2026', '申请订单理赔', '2001', '12', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:applyForOrderClaim', '#', 'admin', '2024-11-20 18:48:44', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2027', '批量初审', '2002', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:batchAudit', '#', 'admin', '2024-11-21 01:03:04', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2028', '导出订单明细', '2002', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:export', '#', 'admin', '2024-11-21 01:03:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2029', '订单详情', '2002', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:detail', '#', 'admin', '2024-11-21 01:04:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2030', '订单日志', '2002', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:log', '#', 'admin', '2024-11-21 01:04:33', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2031', '初步审核', '2002', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:audit', '#', 'admin', '2024-11-21 01:05:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2032', '用户标签', '2002', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:userTag', '#', 'admin', '2024-11-21 01:05:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2033', '批量初审', '2003', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:batchAudit', '#', 'admin', '2024-11-21 01:11:18', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2034', '批量取消订单', '2003', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:batchCancel', '#', 'admin', '2024-11-21 01:11:42', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2035', '订单详情', '2003', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:detail', '#', 'admin', '2024-11-21 01:12:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2036', '订单日志', '2003', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:log', '#', 'admin', '2024-11-21 01:12:33', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2037', '取消订单', '2003', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:cancel', '#', 'admin', '2024-11-21 01:12:52', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2038', '回退状态', '2003', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:fallback', '#', 'admin', '2024-11-21 01:13:10', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2039', '物流揽件', '2003', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:materialPickup', '#', 'admin', '2024-11-21 01:14:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2040', '用户标签', '2003', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPickup:userTag', '#', 'admin', '2024-11-21 01:14:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2041', '批量初审', '2004', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:batchAudit', '#', 'admin', '2024-11-21 01:23:40', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2042', '批量取消订单', '2004', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:batchCancel', '#', 'admin', '2024-11-21 01:24:01', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2043', '订单详情', '2004', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:detail', '#', 'admin', '2024-11-21 01:24:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2044', '订单日志', '2004', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:log', '#', 'admin', '2024-11-21 01:24:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2045', '取消订单', '2004', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:cancel', '#', 'admin', '2024-11-21 01:25:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2046', '回退状态', '2004', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:fallback', '#', 'admin', '2024-11-21 01:25:26', 'admin', '2024-11-21 01:25:34', '');
+INSERT INTO `sys_menu` VALUES ('2047', '物流签收', '2004', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:materialPickup', '#', 'admin', '2024-11-21 01:25:58', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2048', '用户标签', '2004', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:userTag', '#', 'admin', '2024-11-21 01:26:22', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2049', '申请拦截退回', '2004', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:interception', '#', 'admin', '2024-11-21 01:26:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2050', '批量初审', '2005', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:batchAudit', '#', 'admin', '2024-11-21 01:34:01', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2051', '批量确认收货', '2005', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:batchReceive', '#', 'admin', '2024-11-21 01:34:31', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2052', '订单详情', '2005', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:detail', '#', 'admin', '2024-11-21 01:34:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2053', '订单日志', '2005', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:log', '#', 'admin', '2024-11-21 01:35:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2054', '取消订单', '2005', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:cancel', '#', 'admin', '2024-11-21 01:35:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2055', '回退状态', '2005', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:fallback', '#', 'admin', '2024-11-21 01:35:58', 'admin', '2024-11-21 01:36:05', '');
+INSERT INTO `sys_menu` VALUES ('2056', '用户标签', '2005', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:userTag', '#', 'admin', '2024-11-21 01:36:52', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2057', '确认收货', '2005', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:receive', '#', 'admin', '2024-11-21 01:37:13', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2058', '申请拦截退回', '2005', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:interception', '#', 'admin', '2024-11-21 01:37:35', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2059', '批量初审', '2006', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:batchAudit', '#', 'admin', '2024-11-21 19:41:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2060', '批量审核完成', '2006', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:batchAuditComplete', '#', 'admin', '2024-11-21 19:41:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2061', '订单详情', '2006', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:detail', '#', 'admin', '2024-11-21 19:42:42', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2062', '订单日志', '2006', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:log', '#', 'admin', '2024-11-21 19:43:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2063', '取消订单', '2006', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:cancel', '#', 'admin', '2024-11-21 19:43:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2064', '回退状态', '2006', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:fallback', '#', 'admin', '2024-11-21 19:43:46', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2065', '确认收货', '2006', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:confirmReceipt', '#', 'admin', '2024-11-21 19:44:59', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2066', '用户标签', '2006', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:userTag', '#', 'admin', '2024-11-21 19:45:26', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2067', '推送短信', '2006', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:sendSMS', '#', 'admin', '2024-11-21 19:45:45', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2068', '短信记录', '2006', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitAudit:smsLog', '#', 'admin', '2024-11-21 19:46:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2069', '批量初审', '2007', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:batchAudit', '#', 'admin', '2024-11-21 19:57:13', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2070', '批量审核完成', '2007', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:batchAuditComplete', '#', 'admin', '2024-11-21 19:57:36', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2071', '导出订单明细', '2007', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:export', '#', 'admin', '2024-11-21 19:57:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2072', '订单详情', '2007', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:detail', '#', 'admin', '2024-11-21 19:58:14', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2073', '订单日志', '2007', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:log', '#', 'admin', '2024-11-21 19:58:35', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2074', '回退状态', '2007', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:fallback', '#', 'admin', '2024-11-21 19:58:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2075', '到货审核', '2007', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:arrivalAudit', '#', 'admin', '2024-11-21 19:59:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2076', '审核截图', '2007', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:auditScreenshot', '#', 'admin', '2024-11-21 19:59:39', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2077', '用户标签', '2007', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:userTag', '#', 'admin', '2024-11-21 20:00:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2078', '推送短信', '2007', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:sendSMS', '#', 'admin', '2024-11-21 20:00:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2079', '短信记录', '2007', '11', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:auditNotSubmit:smsLog', '#', 'admin', '2024-11-21 20:00:42', 'admin', '2024-11-21 20:03:10', '');
+INSERT INTO `sys_menu` VALUES ('2080', '批量初审', '2008', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:batchAudit', '#', 'admin', '2024-11-21 20:10:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2081', '批量支付书款', '2008', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:batchPayment', '#', 'admin', '2024-11-21 20:10:28', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2082', '订单详情', '2008', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:detail', '#', 'admin', '2024-11-21 20:10:44', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2083', '订单日志', '2008', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:log', '#', 'admin', '2024-11-21 20:10:59', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2084', '回退状态', '2008', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:fallback', '#', 'admin', '2024-11-21 20:11:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2085', '审核截图', '2008', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:auditScreenshot', '#', 'admin', '2024-11-21 20:11:37', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2086', '支付书款', '2008', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:payment', '#', 'admin', '2024-11-21 20:12:26', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2087', '用户标签', '2008', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:userTag', '#', 'admin', '2024-11-21 20:12:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2088', '推送短信', '2008', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:sendSMS', '#', 'admin', '2024-11-21 20:13:04', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2089', '短信记录', '2008', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitPay:smsLog', '#', 'admin', '2024-11-21 20:13:24', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2090', '批量初审', '2009', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:batchAudit', '#', 'admin', '2024-11-21 20:20:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2091', '订单详情', '2009', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:detail', '#', 'admin', '2024-11-21 20:28:55', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2092', '订单日志', '2009', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:log', '#', 'admin', '2024-11-21 20:29:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2093', '审核截图', '2009', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:auditScreenshot', '#', 'admin', '2024-11-21 20:32:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2094', '售后补款', '2009', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:afterSalesPayment', '#', 'admin', '2024-11-21 20:33:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2095', '用户标签', '2009', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:userTag', '#', 'admin', '2024-11-21 20:33:28', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2096', '推送短信', '2009', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:sendSMS', '#', 'admin', '2024-11-21 20:33:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2097', '申请订单理赔', '2009', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:completed:applyForOrderClaim', '#', 'admin', '2024-11-21 20:34:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2098', '批量初审', '2010', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:failedAudit:batchAudit', '#', 'admin', '2024-11-21 20:44:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2099', '订单详情', '2010', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:failedAudit:detail', '#', 'admin', '2024-11-21 20:45:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2100', '订单日志', '2010', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:failedAudit:log', '#', 'admin', '2024-11-21 20:45:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2101', '用户标签', '2010', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:failedAudit:userTag', '#', 'admin', '2024-11-21 20:45:42', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2102', '批量初审', '2011', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:cancelled:batchAudit', '#', 'admin', '2024-11-21 20:51:24', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2103', '申请恢复订单', '2011', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:cancelled:applyForOrderRestore', '#', 'admin', '2024-11-21 20:52:30', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2104', '订单详情', '2011', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:cancelled:detail', '#', 'admin', '2024-11-21 20:52:46', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2105', '订单日志', '2011', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:cancelled:log', '#', 'admin', '2024-11-21 20:53:04', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2106', '用户标签', '2011', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:cancelled:userTag', '#', 'admin', '2024-11-21 20:53:32', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2107', '批量初审', '2012', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:batchAudit', '#', 'admin', '2024-11-21 22:09:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2108', '批量确认收货', '2012', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:batchReceive', '#', 'admin', '2024-11-21 22:09:20', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2109', '订单详情', '2012', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:detail', '#', 'admin', '2024-11-21 22:09:43', 'admin', '2024-11-21 22:10:00', '');
+INSERT INTO `sys_menu` VALUES ('2110', '订单日志', '2012', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:log', '#', 'admin', '2024-11-21 22:10:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2111', '回退状态', '2012', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:fallback', '#', 'admin', '2024-11-21 22:10:34', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2112', '确认收货', '2012', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:receive', '#', 'admin', '2024-11-21 22:12:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2113', '审核截图', '2012', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:auditScreenshot', '#', 'admin', '2024-11-21 22:13:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2114', '用户标签', '2012', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:userTag', '#', 'admin', '2024-11-21 22:14:15', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2115', '推送短信', '2012', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:sendSMS', '#', 'admin', '2024-11-21 22:14:40', 'admin', '2024-11-21 22:15:26', '');
+INSERT INTO `sys_menu` VALUES ('2116', '短信记录', '2012', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:urgentRecycleAudit:smsLog', '#', 'admin', '2024-11-21 22:15:12', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2117', '订单详情', '2013', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:needReturned:detail', '#', 'admin', '2024-11-22 21:55:20', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2118', '手动发货', '2013', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:needReturned:manualDelivery', '#', 'admin', '2024-11-22 21:55:42', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2119', '取消订单', '2013', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:needReturned:cancel', '#', 'admin', '2024-11-22 21:56:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2120', '订单日志', '2013', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:needReturned:log', '#', 'admin', '2024-11-22 21:56:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2121', '数据管理', '0', '11', 'data', null, null, '', '1', '0', 'M', '0', '0', '', 'DatabaseOutlined', 'admin', '2024-11-22 23:41:28', 'admin', '2024-11-30 00:42:43', '');
+INSERT INTO `sys_menu` VALUES ('2122', '图书基础数据', '2121', '1', 'books', 'data/books/index', null, '', '1', '0', 'C', '0', '0', 'data:books:list', 'BookOutlined', 'admin', '2024-11-22 23:42:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2123', '高校列表', '2121', '3', 'universities', 'data/universities/index', null, '', '1', '0', 'C', '0', '0', 'data:universities:list', 'CityOutlined', 'admin', '2024-11-22 23:43:45', 'admin', '2024-11-26 09:51:26', '');
+INSERT INTO `sys_menu` VALUES ('2124', '新增图书', '2122', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:add', '#', 'admin', '2024-11-23 23:19:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2125', '根据ISBN导出', '2122', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:exportByIsbn', '#', 'admin', '2024-11-23 23:19:24', 'admin', '2024-11-27 00:20:08', '');
+INSERT INTO `sys_menu` VALUES ('2126', '导入', '2122', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:import', '#', 'admin', '2024-11-23 23:19:49', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2127', '导出图书明细', '2122', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:export', '#', 'admin', '2024-11-23 23:20:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2128', '变动记录', '2122', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:changeLogs', '#', 'admin', '2024-11-23 23:20:29', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2129', '编辑', '2122', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:update', '#', 'admin', '2024-11-23 23:20:44', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2130', '新增高校', '2123', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:add', '#', 'admin', '2024-11-23 23:21:13', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2131', '批量删除', '2123', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:batchDelete', '#', 'admin', '2024-11-23 23:21:36', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2132', '导出', '2123', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:export', '#', 'admin', '2024-11-23 23:21:51', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2133', '编辑', '2123', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:update', '#', 'admin', '2024-11-23 23:22:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2134', '删除', '2123', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:delete', '#', 'admin', '2024-11-23 23:23:02', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2135', '标为正常/标为盗版', '2123', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'data:universities:schoolTag', '#', 'admin', '2024-11-23 23:23:42', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2136', '回收物流', '0', '7', 'recycleLogistics', null, null, '', '1', '0', 'M', '0', '0', null, 'GlobalOutlined', 'admin', '2024-11-23 23:54:59', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2137', '到仓签收', '2136', '1', 'arrivalSign', 'recycleLogistics/arrivalSign/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:arrivalSign:list', 'ControlOutlined', 'admin', '2024-11-24 00:15:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2138', '仓库管理', '2136', '2', 'warehouse', 'recycleLogistics/warehouse/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:warehouse:list', 'HomeOutlined', 'admin', '2024-11-24 00:16:44', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2139', '新增仓库', '2138', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:warehouse:add', '#', 'admin', '2024-11-24 12:45:13', 'admin', '2024-11-24 13:21:49', '');
+INSERT INTO `sys_menu` VALUES ('2140', '详情', '2138', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:warehouse:detail', '#', 'admin', '2024-11-24 12:45:25', 'admin', '2024-11-24 13:21:59', '');
+INSERT INTO `sys_menu` VALUES ('2141', '启用/禁用', '2138', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:warehouse:changeStatus', '#', 'admin', '2024-11-24 12:45:44', 'admin', '2024-11-24 13:22:07', '');
+INSERT INTO `sys_menu` VALUES ('2142', '仓库区域设置', '2138', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:warehouse:areaSetting', '#', 'admin', '2024-11-24 12:46:05', 'admin', '2024-11-24 13:22:14', '');
+INSERT INTO `sys_menu` VALUES ('2143', '导出EXCEL', '2137', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:arrivalSign:export', '#', 'admin', '2024-11-24 13:15:56', 'admin', '2024-11-24 13:22:22', '');
+INSERT INTO `sys_menu` VALUES ('2144', '查看图片', '2137', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:arrivalSign:viewImage', '#', 'admin', '2024-11-24 13:16:18', 'admin', '2024-11-24 13:22:30', '');
+INSERT INTO `sys_menu` VALUES ('2145', '中转签收', '2136', '3', 'transferSign', 'recycleLogistics/transferSign/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:transferSign:list', 'SizeCompactOutlined', 'admin', '2024-11-24 13:20:20', 'admin', '2024-11-24 13:20:43', '');
+INSERT INTO `sys_menu` VALUES ('2146', '导出EXCEL', '2145', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:transferSign:export', '#', 'admin', '2024-11-24 13:21:41', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2147', '快递验收', '2136', '4', 'expressCheck', 'recycleLogistics/expressCheck/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:expressCheck:list', 'CheckCircleOutlined', 'admin', '2024-11-24 13:34:31', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2148', '导出EXCEL', '2147', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:expressCheck:export', '#', 'admin', '2024-11-24 13:34:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2149', '路由签收异常', '2136', '5', 'abnormalSign', 'recycleLogistics/abnormalSign/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:abnormalSign:list', 'CloseOutlined', 'admin', '2024-11-24 13:42:26', 'admin', '2024-11-24 13:42:49', '');
+INSERT INTO `sys_menu` VALUES ('2150', '同意', '2149', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:agree', '#', 'admin', '2024-11-24 15:22:27', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2151', '驳回', '2149', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:reject', '#', 'admin', '2024-11-24 15:22:43', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2152', '订单详情', '2149', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:detail', '#', 'admin', '2024-11-24 15:23:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2153', '订单日志', '2149', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:log', '#', 'admin', '2024-11-24 15:23:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2154', '取消订单', '2149', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:cancel', '#', 'admin', '2024-11-24 15:23:33', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2155', '回退状态', '2149', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:fallback', '#', 'admin', '2024-11-24 15:23:55', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2156', '物流签收', '2149', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:receive', '#', 'admin', '2024-11-24 15:24:27', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2157', '用户日志', '2149', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:userTag', '#', 'admin', '2024-11-24 15:24:43', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2158', '申请拦截退回', '2149', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSign:interception', '#', 'admin', '2024-11-24 15:25:06', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2159', '异常签收设置', '2136', '6', 'abnormalSetting', 'recycleLogistics/abnormalSetting/index', null, '', '1', '0', 'C', '0', '0', 'recycleLogistics:abnormalSetting:list', 'SettingOutlined', 'admin', '2024-11-24 15:27:34', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2160', '修改', '2159', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleLogistics:abnormalSetting:update', '#', 'admin', '2024-11-24 15:28:03', 'admin', '2024-11-24 15:28:16', '');
+INSERT INTO `sys_menu` VALUES ('2161', '导出记录', '2122', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:exportLog', '#', 'admin', '2024-11-25 20:37:37', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2162', '导入记录', '2122', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:importLog', '#', 'admin', '2024-11-25 20:37:57', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2163', '上传图片', '2122', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'data:books:uploadImage', '#', 'admin', '2024-11-25 20:40:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2164', '默认图片设置', '2121', '2', 'defaultImage', 'data/defaultImage/index', null, '', '1', '0', 'C', '0', '0', 'data:defaultImage:index', 'SettingOutlined', 'admin', '2024-11-26 09:51:16', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2165', '设置默认图片', '2164', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'data:defaultImage:set', '#', 'admin', '2024-11-26 09:52:04', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2166', '回收售后', '0', '6', 'recycleService', null, null, '', '1', '0', 'M', '0', '0', null, 'CpuOutlined', 'admin', '2024-11-26 20:40:57', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2167', '入库', '2166', '1', 'stockIn', 'recycleService/stockIn/index', null, '', '1', '0', 'C', '0', '0', 'recycleService:stockIn:list', 'DownloadOutlined', 'admin', '2024-11-26 20:42:38', 'admin', '2024-11-26 20:43:50', '');
+INSERT INTO `sys_menu` VALUES ('2168', '出库', '2166', '2', 'stockOut', 'recycleService/stockOut/index', null, '', '1', '0', 'C', '0', '0', 'recycleService:stockOut:list', 'UploadOutlined', 'admin', '2024-11-26 20:43:35', 'admin', '2024-11-26 20:44:02', '');
+INSERT INTO `sys_menu` VALUES ('2169', '下架', '2166', '3', 'stockOff', 'recycleService/stockOff/index', null, '', '1', '0', 'C', '0', '0', 'recycleService:stockOff:list', 'MinusCircleOutlined', 'admin', '2024-11-26 20:45:38', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2170', '库位管理', '2166', '4', 'location', 'recycleService/location/index', null, '', '1', '0', 'C', '0', '0', 'recycleService:location:list', 'DatabaseOutlined', 'admin', '2024-11-26 20:47:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2171', '系统配置', '1', '10', 'setting', 'system/setting/index', null, '', '1', '0', 'C', '0', '0', 'system:setting:index', 'SettingOutlined', 'admin', '2024-11-26 21:35:51', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2172', '政策协议', '1', '11', 'policy', 'system/policy/index', null, '', '1', '0', 'C', '0', '0', 'system:policy:index', 'ProtectOutlined', 'admin', '2024-11-26 21:36:57', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2173', '支付配置', '1', '12', 'payment', 'system/payment/index', null, '', '1', '0', 'C', '0', '0', 'system:payment:index', 'SettingOutlined', 'admin', '2024-11-26 21:39:59', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2174', '风控中心', '0', '20', 'riskControl', null, null, '', '1', '0', 'M', '0', '0', null, 'ProtectOutlined', 'admin', '2024-11-27 22:20:14', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2175', '访问限制日志', '2174', '1', 'restrictLog', 'riskControl/restrictLog/index', null, '', '1', '0', 'C', '0', '0', 'riskControl:restrictLog:list', 'LogOutlined', 'admin', '2024-11-27 22:22:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2176', '访问限制规则', '2174', '2', 'restrictConfig', 'riskControl/restrictConfig/index', null, '', '1', '0', 'C', '0', '0', 'riskControl:restrictConfig:list', 'SettingOutlined', 'admin', '2024-11-27 22:23:20', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2177', '查看', '2175', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'rishControl:restrictLog:detail', '#', 'admin', '2024-11-27 22:24:26', 'admin', '2024-11-27 22:26:42', '');
+INSERT INTO `sys_menu` VALUES ('2178', '保存规则', '2176', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'riskControl:restrictConfig:save', '#', 'admin', '2024-11-27 22:26:20', 'admin', '2024-11-27 22:26:50', '');
+INSERT INTO `sys_menu` VALUES ('2179', '财务管理', '0', '19', 'finance', null, null, '', '1', '0', 'M', '0', '0', null, 'PieChartOutlined', 'admin', '2024-11-27 23:00:27', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2180', '财务总览', '2179', '1', 'overview', 'finance/overview/index', null, '', '1', '0', 'C', '0', '0', 'finance:overview:index', 'FundOutlined', 'admin', '2024-11-27 23:01:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2181', '提现管理', '2179', '2', 'withdrawal', 'finance/withdrawal/index', null, '', '1', '0', 'C', '0', '0', 'finance:withdrawal:index', 'TagOutlined', 'admin', '2024-11-27 23:02:40', 'admin', '2024-11-27 23:07:08', '');
+INSERT INTO `sys_menu` VALUES ('2182', '书款记录', '2179', '3', 'bookPayments', 'finance/bookPayments/index', null, '', '1', '0', 'C', '0', '0', 'finance:bookPayments:index', 'LogOutlined', 'admin', '2024-11-27 23:04:19', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2183', '佣金记录', '2179', '4', 'commission', 'finance/commission/index', null, '', '1', '0', 'C', '0', '0', 'finance:commission:index', 'LogOutlined', 'admin', '2024-11-27 23:05:02', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2184', '流水记录', '2179', '5', 'cashFlow', 'finance/cashFlow/index', null, '', '1', '0', 'C', '0', '0', 'finance:cashFlow:index', 'LogOutlined', 'admin', '2024-11-27 23:08:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2185', '详情', '2184', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'finance:cashFlow:detail', '#', 'admin', '2024-11-28 01:06:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2186', '一键审核', '2181', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'finance:withdrawal:batchAudit', '#', 'admin', '2024-11-28 01:07:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2187', '详情', '2181', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'finance:withdrawal:detail', '#', 'admin', '2024-11-28 01:07:22', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2188', '审核', '2181', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'finance:withdrawal:audit', '#', 'admin', '2024-11-28 01:07:40', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2189', '客户优化', '0', '18', 'optimization', null, null, '', '1', '0', 'M', '0', '0', '', 'ConnectionOutlined', 'admin', '2024-11-28 01:13:15', 'admin', '2024-11-28 01:15:31', '');
+INSERT INTO `sys_menu` VALUES ('2190', '客户优化管理', '2189', '1', 'list', 'optimization/list/index', null, '', '1', '0', 'C', '0', '0', 'optimization:list:index', 'UserOutlined', 'admin', '2024-11-28 01:14:07', 'admin', '2024-11-28 01:15:18', '');
+INSERT INTO `sys_menu` VALUES ('2191', '意见反馈', '2189', '2', 'fallback', 'optimization/fallback/index', null, '', '1', '0', 'C', '0', '0', 'optimization:fallback:index', 'MessageOutlined', 'admin', '2024-11-28 01:15:10', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2192', '投诉管理', '2189', '3', 'complain', 'optimization/complain/index', null, '', '1', '0', 'C', '0', '0', 'optimization:complain:index', 'FileOutlined', 'admin', '2024-11-28 01:17:06', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2193', '订单取消分析', '2189', '4', 'orderAnalysis', 'optimization/orderAnalysis/index', null, '', '1', '0', 'C', '0', '0', 'optimization:orderAnalysis:index', 'FundOutlined', 'admin', '2024-11-28 01:18:06', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2194', '上报分析', '2189', '5', 'reportAnalysis', 'optimization/reportAnalysis/index', null, '', '1', '0', 'C', '0', '0', 'optimization:reportAnalysis:index', 'AnalysisOutlined', 'admin', '2024-11-28 01:18:58', 'admin', '2024-11-28 01:20:28', '');
+INSERT INTO `sys_menu` VALUES ('2195', '服务管理', '2189', '6', 'service', 'optimization/service/index', null, '', '1', '0', 'C', '0', '0', 'optimization:service:index', 'CityOutlined', 'admin', '2024-11-28 01:20:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2196', '详情', '2192', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:complain:detail', '#', 'admin', '2024-11-28 16:26:32', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2197', '批量删除', '2191', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:fallback:batchDelete', '#', 'admin', '2024-11-28 16:27:01', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2198', '导出', '2191', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:fallback:export', '#', 'admin', '2024-11-28 16:27:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2199', '详情', '2191', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:fallback:detail', '#', 'admin', '2024-11-28 16:27:33', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2200', '去处理', '2191', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:fallback:deal', '#', 'admin', '2024-11-28 16:27:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2201', '编辑', '2190', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:list:detail', '#', 'admin', '2024-11-28 16:29:36', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2202', '启用/停用', '2190', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:list:changeStatus', '#', 'admin', '2024-11-28 16:29:55', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2203', '删除', '2190', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:list:delete', '#', 'admin', '2024-11-28 16:30:18', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2204', '编辑', '2195', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:service:detail', '#', 'admin', '2024-11-28 16:31:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2205', '启用/停用', '2195', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:service:changeStatus', '#', 'admin', '2024-11-28 16:31:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2206', '删除', '2195', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'optimization:service:delete', '#', 'admin', '2024-11-28 16:31:51', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2207', '客户管理', '0', '17', 'customer', null, null, '', '1', '0', 'M', '0', '0', null, 'UserOutlined', 'admin', '2024-11-28 16:32:46', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2208', '黑名单手机号', '2207', '1', 'blackMobile', 'customer/blackMobile/index', null, '', '1', '0', 'C', '0', '0', 'customer:blackMobile:index', 'CopyOutlined', 'admin', '2024-11-28 16:34:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2209', '客户列表', '2207', '2', 'list', 'customer/list/index', null, '', '1', '0', 'C', '0', '0', 'customer:list:index', 'UserOutlined', 'admin', '2024-11-28 16:34:49', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2210', '用户数据', '2207', '3', 'stat', 'customer/stat/index', null, '', '1', '0', 'C', '0', '0', 'customer:stat:index', 'PieChartOutlined', 'admin', '2024-11-28 16:35:51', 'admin', '2024-11-28 16:35:59', '');
+INSERT INTO `sys_menu` VALUES ('2211', '黑名单列表', '2207', '4', 'blacklist', 'customer/blacklist/index', null, '', '1', '0', 'C', '0', '0', 'customer:blacklist:index', 'FileOutlined', 'admin', '2024-11-28 16:36:49', 'admin', '2024-11-28 16:44:42', '');
+INSERT INTO `sys_menu` VALUES ('2212', '新增', '2208', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blackMobile:add', '#', 'admin', '2024-11-28 16:45:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2213', '编辑', '2208', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blackMobile:update', '#', 'admin', '2024-11-28 16:45:32', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2214', '删除', '2208', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blackMobile:delete', '#', 'admin', '2024-11-28 16:45:52', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2215', '批量设置', '2209', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:batchSetting', '#', 'admin', '2024-11-28 16:48:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2216', '导出', '2209', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:export', '#', 'admin', '2024-11-28 16:48:19', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2217', '批量加入黑名单', '2209', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:batchBlacklist', '#', 'admin', '2024-11-28 16:48:41', 'admin', '2024-11-28 16:57:22', '');
+INSERT INTO `sys_menu` VALUES ('2218', '查看详情', '2209', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:detail', '#', 'admin', '2024-11-28 16:49:03', 'admin', '2024-11-28 16:51:02', '');
+INSERT INTO `sys_menu` VALUES ('2219', '用户标签', '2209', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:userTag', '#', 'admin', '2024-11-28 16:51:39', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2220', '账户明细', '2209', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:accountDetail', '#', 'admin', '2024-11-28 16:55:28', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2221', '拉黑历史', '2209', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:blacklistHistory', '#', 'admin', '2024-11-28 16:56:12', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2222', '加入黑名单', '2209', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:list:blacklist', '#', 'admin', '2024-11-28 16:57:12', 'admin', '2024-11-28 16:57:28', '');
+INSERT INTO `sys_menu` VALUES ('2223', '添加黑名单', '2211', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:add', '#', 'admin', '2024-11-28 16:59:55', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2224', '导出', '2211', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:export', '#', 'admin', '2024-11-28 17:00:14', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2225', '查看详情', '2211', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:detail', '#', 'admin', '2024-11-28 17:00:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2226', '用户标签', '2211', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:userTag', '#', 'admin', '2024-11-28 17:01:20', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2227', '账户明细', '2211', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:accountDetail', '#', 'admin', '2024-11-28 17:01:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2228', '拉黑历史', '2211', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:history', '#', 'admin', '2024-11-28 17:02:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2229', '移除黑名单', '2211', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:blacklist:remove', '#', 'admin', '2024-11-28 17:02:38', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2230', '新增库位', '2170', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:add', '#', 'admin', '2024-11-29 10:24:01', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2231', '批量删除', '2170', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:batchDelete', '#', 'admin', '2024-11-29 10:24:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2232', '批量停用', '2170', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:batchDisabled', '#', 'admin', '2024-11-29 10:24:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2233', '导入', '2170', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:import', '#', 'admin', '2024-11-29 10:25:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2234', '导出', '2170', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:export', '#', 'admin', '2024-11-29 10:25:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2235', '编辑', '2170', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:update', '#', 'admin', '2024-11-29 10:26:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2236', '启用/停用', '2170', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:changeStatus', '#', 'admin', '2024-11-29 10:26:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2237', '删除', '2170', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:location:delete', '#', 'admin', '2024-11-29 10:27:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2238', '库位订单', '2166', '5', 'locationOrder', 'recycleService/locationOrder/index', null, '', '1', '0', 'C', '0', '0', 'recycleService:locationOrder:list', 'FileOutlined', 'admin', '2024-11-29 10:38:34', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2239', '导出', '2238', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleService:locationOrder:export', '#', 'admin', '2024-11-29 10:39:00', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2240', '回收统计', '0', '9', 'statistic', null, null, '', '1', '0', 'M', '0', '0', null, 'AnalysisOutlined', 'admin', '2024-11-29 11:45:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2241', '统计概况', '2240', '1', 'overview', 'statistic/overview/index', null, '', '1', '0', 'C', '0', '0', 'statistic:overview:index', 'FundOutlined', 'admin', '2024-11-29 11:46:17', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2242', '回收订单统计', '2240', '2', 'recycleOrder', 'statistic/recycleOrder/index', null, '', '1', '0', 'C', '0', '0', 'statistic:recycleOrder:index', 'LogOutlined', 'admin', '2024-11-29 11:47:18', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2243', '审核统计', '2240', '3', 'audit', 'statistic/audit/index', null, '', '1', '0', 'C', '0', '0', 'statistic:audit:index', 'UserOutlined', 'admin', '2024-11-29 11:48:18', 'admin', '2024-11-29 21:52:49', '');
+INSERT INTO `sys_menu` VALUES ('2244', '到仓签收统计', '2240', '4', 'arrivalSign', 'statistic/arrivalSign/index', null, '', '1', '0', 'C', '0', '0', 'statistic:arrivalSign:index', 'CheckCircleOutlined', 'admin', '2024-11-29 11:50:01', 'admin', '2024-11-29 22:46:04', '');
+INSERT INTO `sys_menu` VALUES ('2245', '快递验收统计', '2240', '5', 'inspection', 'statistic/inspection/index', null, '', '1', '0', 'C', '0', '0', 'statistic:inspection:index', 'ProtectOutlined', 'admin', '2024-11-29 12:20:10', 'admin', '2024-11-29 22:46:11', '');
+INSERT INTO `sys_menu` VALUES ('2246', '录入统计', '2240', '6', 'entry', 'statistic/entry/index', null, '', '1', '0', 'C', '0', '0', 'statistic:entry:index', 'FormOutlined', 'admin', '2024-11-29 12:21:03', 'admin', '2024-11-29 12:23:14', '');
+INSERT INTO `sys_menu` VALUES ('2247', '不良统计', '2240', '7', 'defect', 'statistic/defect/index', null, '', '1', '0', 'C', '0', '0', 'statistic:defect:index', 'CloseOutlined', 'admin', '2024-11-29 12:22:01', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2248', '售后统计', '2240', '8', 'after-sales', 'statistic/after-sales/index', null, '', '1', '0', 'C', '0', '0', 'statistic:afterSales:index', 'FundOutlined', 'admin', '2024-11-29 12:23:08', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2249', '拆包统计', '2240', '9', 'unpacking', 'statistic/unpacking/index', null, '', '1', '0', 'C', '0', '0', 'statistic:unpacking:index', 'FundOutlined', 'admin', '2024-11-29 12:23:48', 'admin', '2024-11-29 12:23:58', '');
+INSERT INTO `sys_menu` VALUES ('2250', '重量统计', '2240', '10', 'weight', 'statistic/weight/index', null, '', '1', '0', 'C', '0', '0', 'statistic:weight:index', 'FundOutlined', 'admin', '2024-11-29 12:24:28', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2251', '导出Excel', '2242', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:recycleOrder:export', '#', 'admin', '2024-11-29 21:49:05', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2252', '导出Excel', '2243', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:audit:export', '#', 'admin', '2024-11-29 23:33:57', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2253', '导出Excel', '2244', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:arrivalSign:export', '#', 'admin', '2024-11-29 23:34:23', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2254', '导出Excel', '2245', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:inspection:export', '#', 'admin', '2024-11-29 23:47:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2255', '导出Excel', '2246', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:entry:export', '#', 'admin', '2024-11-29 23:47:49', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2256', '导出Excel', '2247', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:defect:export', '#', 'admin', '2024-11-29 23:48:09', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2257', '导出Excel', '2248', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:afterSales:export', '#', 'admin', '2024-11-29 23:48:34', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2258', '导出Excel', '2249', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:unpacking:export', '#', 'admin', '2024-11-29 23:49:29', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2259', '导出Excel', '2250', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'statistic:weight:export', '#', 'admin', '2024-11-29 23:49:48', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2260', '回收事务', '0', '10', 'recycleAffairs', null, null, '', '1', '0', 'M', '0', '0', '', 'SuitcaseOutlined', 'admin', '2024-11-30 00:43:12', 'admin', '2024-11-30 00:43:27', '');
+INSERT INTO `sys_menu` VALUES ('2261', '拦截退回订单', '2260', '1', 'intercept', 'recycleAffairs/intercept/index', null, '', '1', '0', 'C', '0', '0', 'recycleAffairs:intercept:index', 'UploadOutlined', 'admin', '2024-11-30 00:45:24', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2262', '审核员查询', '2260', '2', 'auditor', 'recycleAffairs/auditor/index', null, '', '1', '0', 'C', '0', '0', 'recycleAffairs:auditor:index', 'UserOutlined', 'admin', '2024-11-30 00:46:04', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2263', '回收管理', '0', '9', 'recycle', null, null, '', '1', '0', 'M', '0', '0', null, 'AppstoreAddOutlined', 'admin', '2024-11-30 01:08:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2264', '回收书单管理', '2263', '1', 'booklist', 'recycle/booklist/index', null, '', '1', '0', 'C', '0', '0', 'recycle:booklist:index', 'BookOutlined', 'admin', '2024-11-30 01:09:24', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2265', '图书类型管理', '2263', '2', 'bookTypes', 'recycle/bookTypes/index', null, '', '1', '0', 'C', '0', '0', 'recycle:bookTypes:index', 'CopyOutlined', 'admin', '2024-11-30 01:10:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2266', '回收书单统计', '2263', '3', 'booklistStat', 'recycle/booklistStat/index', null, '', '1', '0', 'C', '0', '0', 'recycle:booklistStat:index', 'AnalysisOutlined', 'admin', '2024-11-30 01:11:11', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2267', '扫码记录管理', '2263', '4', 'scanLog', 'recycle/scanLog/index', null, '', '1', '0', 'C', '0', '0', 'recycle:scanLog:index', 'ExpandOutlined', 'admin', '2024-11-30 01:12:37', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2268', '图书反馈记录', '2263', '5', 'fallbackLog', 'recycle/fallbackLog/index', null, '', '1', '0', 'C', '0', '0', 'recycle:fallbackLog:index', 'LogOutlined', 'admin', '2024-11-30 01:13:37', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2269', '待处理数据库', '2263', '6', 'pending', 'recycle/pending/index', null, '', '1', '0', 'C', '0', '0', 'recycle:pending:index', 'DatabaseOutlined', 'admin', '2024-11-30 01:14:37', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2270', '已处理数据库', '2263', '7', 'processed', 'recycle/processed/index', null, '', '1', '0', 'C', '0', '0', 'recycle:processed:index', 'DatabaseOutlined', 'admin', '2024-11-30 01:15:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2271', '库存收满预警', '2263', '8', 'stockFullAlert', 'recycle/stockFullAlert/index', null, '', '1', '0', 'C', '0', '0', 'recycle:stockFullAlert:index', 'DashboardOutlined', 'admin', '2024-11-30 01:16:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2272', '图书库存管理', '2263', '9', 'inventory', 'recycle/inventory/index', null, '', '1', '0', 'C', '0', '0', 'recycle:inventory:index', 'HomeOutlined', 'admin', '2024-11-30 01:17:31', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2273', '图书库存预警', '2263', '10', 'inventoryAlert', 'recycle/inventoryAlert/index', null, '', '1', '0', 'C', '0', '0', 'recycle:inventoryAlert:index', 'BookOutlined', 'admin', '2024-11-30 01:18:21', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2274', '回收价格预警', '2263', '11', 'priceAlert', 'recycle/priceAlert/index', null, '', '1', '0', 'C', '0', '0', 'recycle:priceAlert:index', 'ProtectOutlined', 'admin', '2024-11-30 01:19:20', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2275', '全局参数设置', '2263', '12', 'globalParameter', 'recycle/globalParameter/index', null, '', '1', '0', 'C', '0', '0', 'recycle:globalParameter:index', 'SettingOutlined', 'admin', '2024-11-30 01:20:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2276', '独立参数设置', '2263', '13', 'independentParameter', 'recycle/independentParameter/index', null, '', '1', '0', 'C', '0', '0', 'recycle:independentParameter:index', 'SettingOutlined', 'admin', '2024-11-30 01:20:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2277', '指定图书管理', '2263', '14', 'specifiedBooks', 'recycle/specifiedBooks/index', null, '', '1', '0', 'C', '0', '0', 'recycle:specifiedBooks:index', 'BookOutlined', 'admin', '2024-11-30 01:21:43', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2278', '审核提醒书籍', '2263', '15', 'remindBooks', 'recycle/remindBooks/index', null, '', '1', '0', 'C', '0', '0', 'recycle:remindBooks:index', 'BookOutlined', 'admin', '2024-11-30 01:22:47', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2279', '审核提醒地区', '2263', '16', 'remindArea', 'recycle/remindArea/index', null, '', '1', '0', 'C', '0', '0', 'recycle:remindArea:index', 'EnvironmentOutlined', 'admin', '2024-11-30 01:23:33', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2280', '回收订单预警', '2263', '17', 'orderAlert', 'recycle/orderAlert/index', null, '', '1', '0', 'C', '0', '0', 'recycle:orderAlert:index', 'LogOutlined', 'admin', '2024-11-30 01:24:28', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2281', '回收订单设置', '2263', '18', 'orderSetting', 'recycle/orderSetting/index', null, '', '1', '0', 'C', '0', '0', 'recycle:orderSetting:index', 'SettingOutlined', 'admin', '2024-11-30 01:25:12', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2282', '修改地址', '2002', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitReview:modifyAddress', '#', 'admin', '2024-12-01 00:30:45', 'admin', '2024-12-01 00:31:05', '');
+INSERT INTO `sys_menu` VALUES ('2283', '用户标签管理', '2207', '2', 'userTag', 'customer/userTag/index', null, '', '1', '0', 'C', '0', '0', 'customer:userTag:list', 'TagOutlined', 'admin', '2024-12-04 12:09:26', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2284', '新增标签', '2283', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:userTag:add', '#', 'admin', '2024-12-04 12:10:25', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2285', '编辑', '2283', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:userTag:update', '#', 'admin', '2024-12-04 12:10:50', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2286', '删除', '2283', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'customer:userTag:delete', '#', 'admin', '2024-12-04 12:13:07', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2287', '取消拦截退回', '2004', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:cancelInterception', '#', 'admin', '2024-12-31 19:35:31', 'admin', '2024-12-31 19:36:07', '');
+INSERT INTO `sys_menu` VALUES ('2288', '取消拦截退回', '2005', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitDelivery:cancelInterception', '#', 'admin', '2024-12-31 19:36:38', 'admin', '2024-12-31 19:36:51', '');
+INSERT INTO `sys_menu` VALUES ('2289', '批量移除回收书单', '2264', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchRemoveBooklist', '#', 'admin', '2025-01-11 11:12:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2290', '批量加入回收书单', '2264', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchAddBooklist', '#', 'admin', '2025-01-11 11:13:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2291', '批量移除黑名单', '2264', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchRemoveBlacklist', '#', 'admin', '2025-01-11 11:14:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2292', '批量加入黑名单', '2264', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchAddBlacklist', '#', 'admin', '2025-01-11 11:15:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2293', '批量暂停回收', '2264', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchPauseRecycle', '#', 'admin', '2025-01-11 11:16:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2294', '批量开启回收', '2264', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchStartRecycle', '#', 'admin', '2025-01-11 11:17:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2295', '批量指定折扣加回收书单', '2264', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchAddDiscount', '#', 'admin', '2025-01-11 11:18:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2296', '批量加社科库', '2264', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchAddSocial', '#', 'admin', '2025-01-11 11:19:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2297', '批量加教材库', '2264', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:batchAddTeach', '#', 'admin', '2025-01-11 11:20:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2298', '编辑图书', '2264', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:updateBook', '#', 'admin', '2025-01-11 11:21:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2299', '设置独立参数', '2264', '11', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:setParams', '#', 'admin', '2025-01-11 11:22:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2300', '移除黑名单', '2264', '12', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:removeBlacklist', '#', 'admin', '2025-01-11 11:23:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2301', '加入黑名单', '2264', '13', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:addBlacklist', '#', 'admin', '2025-01-11 11:24:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2302', '暂停回收', '2264', '14', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:pauseRecycle', '#', 'admin', '2025-01-11 11:25:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2303', '开启回收', '2264', '15', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:startRecycle', '#', 'admin', '2025-01-11 11:26:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2304', '移除回收书单', '2264', '16', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:removeBooklist', '#', 'admin', '2025-01-11 11:27:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2305', '加入回收书单', '2264', '17', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:booklist:addBooklist', '#', 'admin', '2025-01-11 11:28:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2306', '快递签收', '2001', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:search:signDelivery', '#', 'admin', '2025-02-07 13:03:28', 'admin', '2025-02-07 13:03:59', '');
+INSERT INTO `sys_menu` VALUES ('2307', '快递签收', '2004', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSign:signDelivery', '#', 'admin', '2025-02-07 13:04:38', 'admin', '2025-02-07 13:04:55', '');
+INSERT INTO `sys_menu` VALUES ('2308', '待提交订单', '2001', '2', 'awaitSubmit', '/recycleOrder/awaitSubmit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitSubmit:list', 'LogOutlined', 'admin', '2025-02-07 13:23:57', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2309', '待提交订单', '2000', '2', 'awaitSubmit', 'recycleOrder/awaitSubmit/index', null, '', '1', '0', 'C', '0', '0', 'recycleOrder:awaitSubmit:list', 'LogOutlined', 'admin', '2025-02-07 13:26:51', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2310', '订单详情', '2309', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSubmit:detail', '#', 'admin', '2025-02-07 13:28:34', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2311', '订单日志', '2309', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSubmit:log', '#', 'admin', '2025-02-07 13:28:54', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2312', '用户标签', '2309', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycleOrder:awaitSubmit:userTag', '#', 'admin', '2025-02-07 13:35:03', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2313', '批量加入黑名单', '2276', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:batchAddBlacklist', '#', 'admin', '2025-01-11 11:29:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2314', '批量暂停回收', '2276', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:batchPauseRecycle', '#', 'admin', '2025-01-11 11:30:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2315', '批量开启回收', '2276', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:batchStartRecycle', '#', 'admin', '2025-01-11 11:31:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2316', '批量加社科库', '2276', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:batchAddSocial', '#', 'admin', '2025-01-11 11:32:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2317', '批量加教材库', '2276', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:batchAddTeach', '#', 'admin', '2025-01-11 11:33:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2318', '查看链接', '2276', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:viewUrl', '#', 'admin', '2025-01-11 11:34:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2319', '查看回收日志', '2276', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:viewRecycleLog', '#', 'admin', '2025-01-11 11:35:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2320', '查看售价日志', '2276', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:viewSalesLog', '#', 'admin', '2025-01-11 11:36:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2321', '修改回收折扣', '2276', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:updateDiscount', '#', 'admin', '2025-01-11 11:37:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2322', '加入黑名单', '2276', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:addBlacklist', '#', 'admin', '2025-01-11 11:38:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2323', '修改最大回收量', '2276', '11', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:updateMaxRecycle', '#', 'admin', '2025-01-11 11:39:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2324', '暂停回收', '2276', '12', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:pauseRecycle', '#', 'admin', '2025-01-11 11:40:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2325', '开启回收', '2276', '13', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:startRecycle', '#', 'admin', '2025-01-11 11:41:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2326', '修改订单回收量', '2276', '14', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:updateOrderRecycle', '#', 'admin', '2025-01-11 11:42:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2327', '移除回收书单', '2276', '15', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:independent:removeBooklist', '#', 'admin', '2025-01-11 11:43:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2328', '批量加入黑名单', '2277', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:batchAddBlacklist', '#', 'admin', '2025-01-11 11:44:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2329', '批量暂停回收', '2277', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:batchPauseRecycle', '#', 'admin', '2025-01-11 11:45:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2330', '批量开启回收', '2277', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:batchStartRecycle', '#', 'admin', '2025-01-11 11:46:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2331', '批量加社科库', '2277', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:batchAddSocial', '#', 'admin', '2025-01-11 11:47:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2332', '批量加教材库', '2277', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:batchAddTeach', '#', 'admin', '2025-01-11 11:48:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2333', '查看链接', '2277', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:viewUrl', '#', 'admin', '2025-01-11 11:49:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2334', '查看回收日志', '2277', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:viewRecycleLog', '#', 'admin', '2025-01-11 11:50:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2335', '查看售价日志', '2277', '8', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:viewSalesLog', '#', 'admin', '2025-01-11 11:51:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2336', '修改回收折扣', '2277', '9', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:updateDiscount', '#', 'admin', '2025-01-11 11:52:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2337', '加入黑名单', '2277', '10', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:addBlacklist', '#', 'admin', '2025-01-11 11:53:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2338', '修改最大回收量', '2277', '11', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:updateMaxRecycle', '#', 'admin', '2025-01-11 11:54:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2339', '暂停回收', '2277', '12', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:pauseRecycle', '#', 'admin', '2025-01-11 11:55:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2340', '开启回收', '2277', '13', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:startRecycle', '#', 'admin', '2025-01-11 11:56:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2341', '修改订单回收量', '2277', '14', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:updateOrderRecycle', '#', 'admin', '2025-01-11 11:57:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2342', '移除回收书单', '2277', '15', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:specifiedBooks:removeBooklist', '#', 'admin', '2025-01-11 11:58:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2343', '恢复订单设置', '2281', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:restoreOrderSettings', '#', 'admin', '2025-01-11 11:59:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2344', '回收订单设置', '2281', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:recycleOrderSettings', '#', 'admin', '2025-01-11 12:00:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2345', '预警参数设置', '2281', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:recycleAlertParams', '#', 'admin', '2025-01-11 12:01:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2346', '不支持退货地区设置', '2281', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:unsupportedReturned', '#', 'admin', '2025-01-11 12:02:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2347', '不支持下单地区设置', '2281', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:unsupportedArea', '#', 'admin', '2025-01-11 12:03:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2348', '自动取消订单设置', '2281', '6', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:autoCancelOrder', '#', 'admin', '2025-01-11 12:04:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2349', '自动初审设置', '2281', '7', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:orderSetting:autoAuditSettings', '#', 'admin', '2025-01-11 12:05:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2350', '新增', '2279', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindArea:add', '#', 'admin', '2025-01-11 12:06:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2351', '编辑', '2279', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindArea:update', '#', 'admin', '2025-01-11 12:07:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2352', '删除', '2279', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindArea:delete', '#', 'admin', '2025-01-11 12:08:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2353', '批量删除', '2279', '4', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindArea:batchDelete', '#', 'admin', '2025-01-11 12:09:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2354', '修改状态', '2279', '5', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindArea:changeStatus', '#', 'admin', '2025-01-11 12:10:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2355', '新增', '2278', '1', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindBooks:add', '#', 'admin', '2025-01-11 12:11:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2356', '删除', '2278', '2', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindBooks:delete', '#', 'admin', '2025-01-11 12:12:56', '', null, '');
+INSERT INTO `sys_menu` VALUES ('2357', '批量删除', '2278', '3', '', null, null, '', '1', '0', 'F', '0', '0', 'recycle:remindBooks:batchDelete', '#', 'admin', '2025-01-11 12:13:56', '', null, '');

+ 2 - 2
src/views/customer/list/components/customer-detail.vue

@@ -2,7 +2,7 @@
   <ele-drawer
     v-model="visible"
     title="客户详情"
-    :size="1180"
+    :size="1080"
     style="max-width: 100%"
     :body-style="{
       height: '100%',
@@ -81,7 +81,7 @@
   };
 
   //获取用户账户信息
-  const accountInfo = ref({});
+  const accountInfo = ref({ restMoney: 0, totalMoney: 0 });
   const getAccountInfo = (id) => {
     request({
       url: `/user/userAccountInfo/getUserAccount/${id}`,

+ 1 - 1
src/views/customer/list/components/detail/scan-log.vue

@@ -50,7 +50,7 @@
     { label: 'ISBN', prop: 'isbn', align: 'center' },
     { label: '商品名称', prop: 'bookName', align: 'center' },
     { label: '扫描次数', prop: 'scanTimes', align: 'center' },
-    { label: '扫描时间', prop: 'createTime', align: 'center' }
+    { label: '扫描时间', prop: 'updateTime', align: 'center' }
   ]);
 
   //刷新表格

+ 1 - 1
src/views/customer/list/index.vue

@@ -112,7 +112,7 @@
     { label: '用户OpenId', prop: 'openId', align: 'center' },
     { label: '手机号', prop: 'mobile', align: 'center' },
     { label: '用户类型', prop: 'platName', align: 'center' },
-    { label: '用户标签', prop: 'userTagNames', align: 'center' },
+    { label: '用户标签', prop: 'userTagStr', align: 'center' },
     { label: '状态', prop: 'statusName', align: 'center', slot: 'status' },
     { label: '创建时间', prop: 'createTime', align: 'center', width: 160 },
     {

+ 4 - 0
src/views/marketing/article/index.vue

@@ -0,0 +1,4 @@
+<template>
+  <div> 文章管理 </div>
+</template>
+<script setup></script>

+ 4 - 0
src/views/marketing/dialog/index.vue

@@ -0,0 +1,4 @@
+<template>
+  <div> 弹窗管理 </div>
+</template>
+<script setup></script>

+ 3 - 0
src/views/marketing/material/index.vue

@@ -0,0 +1,3 @@
+<template>
+  <div> 材料管理 </div>
+</template>

+ 3 - 0
src/views/marketing/messagePush/index.vue

@@ -0,0 +1,3 @@
+<template>
+  <div> 消息推送 </div>
+</template>

+ 95 - 0
src/views/marketing/partner/components/partner-blacklist.vue

@@ -0,0 +1,95 @@
+<!-- 编辑弹窗 -->
+<template>
+  <ele-modal
+    form
+    :width="460"
+    v-model="visible"
+    title="加入黑名单"
+    @open="handleOpen"
+  >
+    <SimpleForm
+      :items="items"
+      labelWidth="90px"
+      ref="formRef"
+      :initKeys="form"
+    ></SimpleForm>
+    <template #footer>
+      <el-button @click="handleCancel">关闭</el-button>
+      <el-button type="primary" @click="handleSumbit">确定</el-button>
+    </template>
+  </ele-modal>
+</template>
+
+<script setup>
+  import { ref, reactive, nextTick } from 'vue';
+  import SimpleForm from '@/components/CommonPage/SimpleForm.vue';
+  import { ElMessage } from 'element-plus';
+  import request from '@/utils/request';
+
+  /** 弹窗是否打开 */
+  const visible = defineModel({ type: Boolean });
+
+  /** 关闭弹窗 */
+  const handleCancel = () => {
+    visible.value = false;
+    nextTick(() => {
+      formRef.value?.resetForm();
+    });
+  };
+
+  const form = reactive({
+    blackReason: ''
+  });
+
+  const items = reactive([
+    {
+      label: '拉黑原因',
+      prop: 'blackReason',
+      type: 'dictSelect',
+      required: true,
+      props: {
+        code: 'partner_black_reason',
+        value: 'dictLabel',
+        label: 'dictLabel'
+      }
+    },
+    {
+      label: '备注',
+      prop: 'remark',
+      type: 'textarea'
+    }
+  ]);
+
+  const formRef = ref();
+  const emit = defineEmits(['refresh']);
+
+  const userId = ref();
+  const handleOpen = (id) => {
+    visible.value = true;
+    nextTick(() => {
+      if (id) {
+        userId.value = id;
+      }
+    });
+  };
+
+  const handleSumbit = () => {
+    formRef.value?.submitForm().then((data) => {
+      request
+        .post('/user/userPartnerInfo/addBlack', {
+          userId: userId.value,
+          blackReason: data.blackReason,
+          remark: data.remark
+        })
+        .then(() => {
+          ElMessage.success('操作成功');
+          visible.value = false;
+          emit('refresh');
+        });
+    });
+  };
+
+  defineExpose({
+    handleOpen
+  });
+</script>

+ 116 - 0
src/views/marketing/partner/components/partner-edit.vue

@@ -0,0 +1,116 @@
+<!-- 合伙人编辑弹窗 -->
+<template>
+  <simple-form-modal
+    :title="title"
+    :items="formItems"
+    ref="editRef"
+    :baseUrl="baseUrl"
+    width="800px"
+    :formProps="{ labelWidth: '80px', grid: 12 }"
+    :formatData="formatData"
+    :fallbackData="fallbackData"
+    idKey="userId"
+    @success="(data) => emit('success', data)"
+  >
+  </simple-form-modal>
+</template>
+
+<script setup>
+import { reactive, ref, defineEmits } from 'vue';
+import SimpleFormModal from '@/components/CommonPage/SimpleFormModal.vue';
+
+const title = ref('编辑信息');
+const emit = defineEmits(['success']);
+
+// 表单项配置
+const formItems = reactive([
+  { type: 'input', label: '微信ID', prop: 'userId', props: { disabled: true } },
+  { type: 'input', label: '姓名', prop: 'name' },
+  {
+    type: 'input',
+    label: '手机号',
+    prop: 'mobile',
+    required: true,
+    rules: [
+      { required: true, message: '请输入手机号', trigger: 'blur' },
+      { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
+    ]
+  },
+  { type: 'input', label: '地区', prop: 'address' },
+  { type: 'input', label: '学校', prop: 'school' },
+  { type: 'input', label: '院系', prop: 'faculties' },
+  { type: 'input', label: '专业', prop: 'specialty' },
+  { type: 'input', label: '年级', prop: 'grade' },
+  {
+    type: 'dictSelect',
+    label: '状态',
+    prop: 'blackStatus',
+    props: { code: 'partner_status', disabled: true }
+  },
+  {
+    type: 'dictSelect',
+    label: '原因',
+    prop: 'blackReason',
+    props: { code: 'partner_black_reason', disabled: true }
+  },
+  {
+    type: 'textarea',
+    label: '备注',
+    prop: 'remark',
+    props: { rows: 4 },
+    colProps: { span: 24 }
+  }
+]);
+
+// API 接口配置
+const baseUrl = reactive({
+  update: '/user/userPartnerInfo/update',
+  detail: '/user/userPartnerInfo/getInfo'
+});
+
+const editRef = ref(null);
+const formData = ref({});
+
+// 打开弹窗
+function handleOpen(userId) {
+  formData.value.userId = userId;
+  formData.value.id = userId;
+  editRef.value?.handleOpen(formData.value);
+}
+
+// 格式化提交数据
+function formatData(data) {
+  return {
+    id: formData.value.userId,
+    userId: formData.value.userId,
+    provinceId: formData.value.provinceId,
+    cityId: formData.value.cityId,
+    districtId: formData.value.districtId,
+    name: data.name,
+    school: data.school,
+    faculties: data.faculties,
+    specialty: data.specialty,
+    grade: data.grade,
+    mobile: data.mobile,
+    blackStatus: formData.value.blackStatus,
+    blackReason: formData.value.blackReason,
+    remark: data.remark
+  };
+}
+
+// 回填数据
+function fallbackData(data) {
+  formData.value = data;
+  return data;
+}
+
+defineExpose({ handleOpen });
+</script>
+
+<style lang="scss" scoped>
+.partner-edit {
+  :deep(.el-form-item__label) {
+    font-weight: normal;
+  }
+}
+</style>

+ 217 - 0
src/views/marketing/partner/components/partner-list.vue

@@ -0,0 +1,217 @@
+<!-- 合伙人列表 -->
+<template>
+  <div class="partner-list">
+    <!-- 搜索表单 -->
+    <partner-search ref="searchRef" @search="handleSearch" />
+
+    <!-- 表格 -->
+    <CommonTable
+      ref="tableRef"
+      :pageConfig="pageConfig"
+      :columns="columns"
+      :bodyStyle="{ padding: 0 }"
+    >
+      <template #toolbar>
+        <el-button
+          type="primary"
+          plain
+          v-permission="'marketing:partner:batchPass'"
+          @click="handleBatchPass(null)"
+        >
+          批量通过
+        </el-button>
+        <el-button
+          type="danger"
+          plain
+          v-permission="'marketing:partner:batchReject'"
+          @click="handleBatchReject(null)"
+        >
+          批量驳回
+        </el-button>
+        <el-button
+          type="success"
+          plain
+          v-permission="'data:universities:export'"
+          @click="handleExportExcel"
+          :icon="DownloadOutlined"
+        >
+          导出EXCEL
+        </el-button>
+      </template>
+
+      <template #status="{ row }">
+        <dict-data code="partner_status" type="tag" :model-value="row.status" />
+      </template>
+      <template #action="{ row }">
+        <div class="action-buttons">
+          <!-- 根据状态显示对应的操作按钮 -->
+          <el-button
+            type="success"
+            link
+            v-if="row.status === '0' || row.status === '2'"
+            v-permission="'marketing:partner:pass'"
+            @click="handleBatchPass(row)"
+          >
+            [通过]
+          </el-button>
+          <el-button
+            type="danger"
+            link
+            v-if="row.status === '0'"
+            v-permission="'marketing:partner:reject'"
+            @click="handleBatchReject(row)"
+          >
+            [驳回]
+          </el-button>
+
+          <el-button
+            type="primary"
+            link
+            v-if="row.status !== '0'"
+            v-permission="'marketing:partner:edit'"
+            @click="handleEdit(row)"
+          >
+            [编辑]
+          </el-button>
+          <el-button
+            type="danger"
+            link
+            v-if="row.status === '1'"
+            v-permission="'marketing:partner:addBlack'"
+            @click="handleAddBlack(row)"
+          >
+            [加入黑名单]
+          </el-button>
+
+          <el-button
+            type="warning"
+            link
+            v-if="row.status === '3'"
+            v-permission="'marketing:partner:removeBlack'"
+            @click="handleRemoveBlack(row)"
+          >
+            [移出黑名单]
+          </el-button>
+        </div>
+      </template>
+    </CommonTable>
+
+    <PartnerBlacklist ref="addBlack" @refresh="reload()" />
+    <PartnerEdit ref="editRef" @success="reload()" />
+  </div>
+</template>
+
+<script setup>
+  import { ref, reactive, getCurrentInstance } from 'vue';
+  import { EleMessage } from 'ele-admin-plus/es';
+  import CommonTable from '@/components/CommonPage/CommonTable.vue';
+  import PartnerSearch from './partner-search.vue';
+  import PartnerBlacklist from './partner-blacklist.vue';
+  import PartnerEdit from './partner-edit.vue';
+  import request from '@/utils/request';
+  import { DownloadOutlined, PlusOutlined } from '@/components/icons';
+  // 表格实例
+  const tableRef = ref(null);
+  const searchRef = ref(null);
+  const editRef = ref(null);
+
+  // 页面配置
+  const pageConfig = reactive({
+    pageUrl: '/user/userPartnerInfo/pagelist',
+    exportUrl: '/user/userPartnerInfo/export',
+    fileName: '合伙人列表',
+    cacheKey: 'partnerListTable',
+    rowKey: 'userId'
+  });
+
+  // 表格列配置
+  const columns = ref([
+    {
+      type: 'selection',
+      columnKey: 'selection',
+      width: 50,
+      align: 'center',
+      fixed: 'left'
+    },
+    { label: '微信ID', prop: 'userId', width: 100 },
+    { label: '姓名', prop: 'name', minWidth: 100 },
+    { label: '手机号', prop: 'mobile', width: 120 },
+    { label: '地区', prop: 'address', minWidth: 180 },
+    { label: '学校', prop: 'school', minWidth: 180 },
+    { label: '院系', prop: 'faculties', minWidth: 180 },
+    { label: '专业', prop: 'specialty', minWidth: 120 },
+    { label: '年级', prop: 'grade', width: 100 },
+    { label: '状态', prop: 'status', slot: 'status', width: 100 },
+    { label: '申请时间', prop: 'applyTime', width: 160 },
+    { label: '处理时间', prop: 'checkTime', width: 160 },
+    {
+      columnKey: 'action',
+      label: '操作',
+      width: 180,
+      align: 'center',
+      slot: 'action',
+      fixed: 'right'
+    }
+  ]);
+
+  // 搜索
+  const handleSearch = (where) => {
+    let data = JSON.parse(JSON.stringify(where));
+    delete data.timeRange;
+    tableRef.value?.reload(data);
+  };
+
+  // 导出Excel
+  const handleExportExcel = () => {
+    tableRef.value?.exportData();
+  };
+
+  //加入黑名单
+  const addBlack = ref(null);
+  function handleAddBlack(row) {
+    addBlack.value?.handleOpen(row.userId);
+  }
+
+  // 通过审核
+  const handleBatchPass = (row) => {
+    let datas = row ? [row] : tableRef.value?.getSelections();
+    if (!datas.length) return EleMessage.warning('请至少选择一条数据');
+    let userIds = datas.map((v) => v.userId);
+    tableRef.value?.messageBoxConfirm({
+      message: '确认通过该合伙人申请?',
+      fetch:()=> request.post('/user/userPartnerInfo/pass', { userIds })
+    });
+  };
+
+  //驳回审核
+  const handleBatchReject = (row) => {
+    let datas = row ? [row] : tableRef.value?.getSelections();
+    if (!datas.length) return EleMessage.warning('请至少选择一条数据');
+    let userIds = datas.map((v) => v.userId);
+    tableRef.value?.messageBoxConfirm({
+      message: '确认驳回该合伙人申请?',
+      fetch:()=> request.post('/user/userPartnerInfo/reject', { userIds })
+    });
+  };
+
+  // 编辑
+  const handleEdit = (row) => {
+    editRef.value?.handleOpen(row.userId);
+  };
+
+  // 移除黑名单操作
+  const handleRemoveBlack = (row) => {
+    tableRef.value?.messageBoxConfirm({
+      message: '确认移除黑名单?',
+      fetch:()=> request.post(`/user/userPartnerInfo/removeBlack/${row.userId}`)
+    });
+  };
+
+  const reload = () => {
+    tableRef.value?.reload();
+  };
+
+  defineExpose({
+    reload
+  });
+</script>

+ 201 - 0
src/views/marketing/partner/components/partner-poster.vue

@@ -0,0 +1,201 @@
+<!-- 合伙人推广海报 -->
+<template>
+  <div class="partner-poster">
+    <div class="search-bar" style="margin-bottom: 12px">
+      <el-input
+        v-model="searchKeyword"
+        placeholder="请输入模板名称"
+        style="width: 300px"
+      ></el-input>
+
+      <el-button
+        style="width: 90px; margin-left: 14px"
+        type="primary"
+        @click="handleSearch"
+        >查询</el-button
+      >
+      <el-button style="width: 90px" type="info" @click="reset">重置</el-button>
+    </div>
+
+    <!-- 表格 -->
+    <common-table
+      ref="tableRef"
+      :page-config="{
+        cacheKey: 'partnerPosterTable',
+        fileName: '合伙人推广海报',
+        pageUrl: '/user/userPartnerPosterTemplate/pagelist'
+      }"
+      :flex-table="true"
+      :body-style="{ padding: '0px' }"
+      :columns="columns"
+      @selection-change="handleSelectionChange"
+    >
+      <template #toolbar="{ row }">
+        <el-button type="primary" @click="openEdit()">
+          <el-icon><Plus /></el-icon>添加模板
+        </el-button>
+        <el-button type="danger" @click="handleDelete()">删除</el-button>
+      </template>
+
+      <!-- 图片列 -->
+      <template #image="{ row }">
+        <el-image
+          :src="row.background"
+          :preview-src-list="[row.background]"
+          fit="contain"
+          style="width: 80px; height: 80px"
+        />
+      </template>
+
+      <!-- 状态列 -->
+      <template #status="{ row }">
+        <el-switch
+          v-model="row.status"
+          style="--el-switch-on-color: #13ce66"
+          active-value="1"
+          inactive-value="2"
+          @change="statusSwitchChange($event, row)"
+        />
+        <el-text style="margin-left: 5px">{{
+          row.status == 2 ? '已停用' : '已开启'
+        }}</el-text>
+      </template>
+
+      <!-- 操作列 -->
+      <template #operation="{ row }">
+        <el-button type="primary" link @click="openEdit(row)">编辑</el-button>
+        <el-button type="danger" link @click="handleDelete(row)"
+          >删除</el-button
+        >
+      </template>
+    </common-table>
+
+    <!-- 编辑弹窗 -->
+    <poster-edit
+      ref="posterEditRef"
+      @success="handleEditSuccess"
+    />
+  </div>
+</template>
+
+<script setup>
+  import { ref } from 'vue';
+  import { Plus } from '@element-plus/icons-vue';
+  import { ElMessage, ElMessageBox } from 'element-plus';
+  import CommonTable from '@/components/CommonPage/CommonTable.vue';
+  import PosterEdit from './poster-edit.vue';
+  import {
+    deletePosterTemplate,
+    updatePosterTemplateStatus
+  } from '@/api/marketing/partner';
+
+  // 搜索关键词
+  const searchKeyword = ref('');
+
+  // 表格实例
+  const tableRef = ref();
+
+  // 选中的行数据
+  const selectedRows = ref([]);
+
+  // 编辑弹窗实例
+  const posterEditRef = ref();
+
+  // 表格列配置
+  const columns = [
+    { type: 'selection', width: 70, align: 'center' },
+    { prop: 'name', label: '模板名称' },
+    { prop: 'background', label: '图片', slot: 'image', align: 'center' },
+    { prop: 'createTime', label: '添加时间', align: 'center' },
+    { prop: 'status', label: '状态', slot: 'status', align: 'center' },
+    { label: '操作', slot: 'operation', width: 150, align: 'center' }
+  ];
+
+  // 打开编辑弹窗
+  const openEdit = (row) => {
+    posterEditRef.value?.open(row);
+  };
+
+  // 处理表格选择变化
+  const handleSelectionChange = (selection) => {
+    selectedRows.value = selection;
+  };
+
+  // 处理搜索
+  const handleSearch = () => {
+    tableRef.value?.reload({ name: searchKeyword.value });
+  };
+
+  // 删除海报
+  const handleDelete = (row) => {
+    const rows = row ? [row] : selectedRows.value;
+    if (!rows.length) {
+      ElMessage.warning('请选择要删除的数据');
+      return;
+    }
+
+    ElMessageBox.confirm(`确认删除选中的 ${rows.length} 条数据吗?`, '提示', {
+      type: 'warning'
+    }).then(async () => {
+      try {
+        const ids = rows.map((item) => item.id);
+        await deletePosterTemplate({ ids });
+        ElMessage.success('删除成功');
+        handleSearch();
+      } catch (error) {
+        ElMessage.error(error.message);
+      }
+    });
+  };
+
+  // 修改状态
+  const statusSwitchChange = (value, row) => {
+    let message = value == 2 ? '确认停用?' : '确认开启?';
+    ElMessageBox.confirm(message, '提示', {
+      confirmButtonText: '确定',
+      cancelButtonText: '关闭',
+      type: 'warning'
+    })
+      .then(() => {
+        updatePosterTemplateStatus({
+          id: row.id,
+          status: value
+        }).then((res) => {
+          if (res.data.code === 200) {
+            ElMessage.success('操作成功');
+            handleSearch();
+          } else {
+            ElMessage.error(res.data.msg);
+          }
+        });
+      })
+      .catch(() => {
+        row.status = value == 1 ? 2 : 1;
+      });
+  };
+
+  // 编辑成功回调
+  const handleEditSuccess = () => {
+    handleSearch();
+  };
+</script>
+
+<style lang="scss" scoped>
+  .partner-poster {
+    padding: 16px;
+    background-color: #fff;
+
+    .toolbar {
+      margin-bottom: 16px;
+      display: flex;
+      align-items: center;
+    }
+
+    :deep(.el-switch__label) {
+      font-size: 12px;
+      &.is-active {
+        color: var(--el-color-primary);
+      }
+    }
+  }
+</style>

+ 142 - 0
src/views/marketing/partner/components/partner-rule.vue

@@ -0,0 +1,142 @@
+<!-- 招募规则设置 -->
+<template>
+  <div class="partner-rule">
+    <!-- 左侧手机预览 -->
+    <div class="mobile-preview">
+      <div class="preview-content">
+        <div class="content-preview" v-html="form.content" v-if="form.content"></div>
+      </div>
+    </div>
+
+    <!-- 右侧编辑区域 -->
+    <div class="edit-area">
+      <el-form :model="form" ref="formRef" label-width="80px">
+        <el-form-item label="banner图:">
+          <ImageUpload
+            v-model="form.banner"
+            :width="400"
+            :height="200"
+            :limit="1"
+          />
+        </el-form-item>
+        <el-form-item label="标题:">
+          <el-input v-model="form.title" placeholder="请输入标题"></el-input>
+        </el-form-item>
+        <el-form-item label="详情:">
+          <div style="height: 600px">
+            <TinymceEditor v-model="form.content" />
+          </div>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="handleSave" style="min-width: 120px;">保存</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script setup>
+  import { ref, onMounted } from 'vue';
+  import { ElMessage } from 'element-plus';
+  import TinymceEditor from '@/components/TinymceEditor/index.vue';
+  import ImageUpload from '@/components/ImageUpload/index.vue';
+  import request from '@/utils/request';
+
+  const formRef = ref(null);
+  const form = ref({
+    banner: '',
+    title: '',
+    content: ''
+  });
+
+  // 获取规则信息
+  const getRule = async () => {
+    try {
+      const res = await request.get('/user/userPartnerRule/getInfo');
+      if (res.data.code === 200) {
+        let { data } = res.data;
+        form.value = {
+          banner: data.banner,
+          title: data.title,
+          content: data.content
+        };
+      }
+    } catch (error) {
+      ElMessage.error('获取规则信息失败');
+    }
+  };
+
+  // 保存规则
+  const handleSave = async () => {
+    try {
+      const res = await request.post(
+        '/user/userPartnerRule/update',
+        form.value
+      );
+      console.log(res, 'xxx');
+      if (res.data.code === 200) {
+        ElMessage.success('保存成功');
+      } else {
+        ElMessage.error(res.msg || '保存失败');
+      }
+    } catch (error) {
+      ElMessage.error('保存失败');
+    }
+  };
+
+  onMounted(() => {
+    getRule();
+  });
+</script>
+
+<style lang="scss" scoped>
+  .partner-rule {
+    padding: 16px;
+    display: flex;
+
+    :deep(.tox-tinymce) {
+      height: 100% !important;
+    }
+
+    .mobile-preview {
+      background: url('@/assets/mobile.png') no-repeat center center;
+      background-size: 100% 100%;
+      width: 545px;
+      height: 900px;
+      border-radius: 20px;
+      overflow: hidden;
+
+      .preview-content {
+        padding: 16px;
+        h3 {
+          margin: 16px 0;
+          font-size: 18px;
+        }
+
+        .content-preview {
+          font-size: 14px;
+          line-height: 1.6;
+          color: #333;
+          overflow-y: auto;
+          position: absolute;
+          width: 357px;
+          height: 742px;
+          border-radius: 0 0 30px 30px;
+          top: 110px;
+          left: 110px;
+          right: 0;
+          bottom: 0;
+          &::-webkit-scrollbar {
+            display: none;
+          }
+        }
+      }
+    }
+
+    .edit-area {
+      background: #fff;
+      padding: 20px;
+      border-radius: 4px;
+    }
+  }
+</style>

+ 83 - 0
src/views/marketing/partner/components/partner-search.vue

@@ -0,0 +1,83 @@
+<!-- 搜索表单 -->
+<template>
+  <ele-card :body-style="{ padding: '0', paddingTop: '30px' }">
+    <ProSearch
+      :items="formItems"
+      ref="searchRef"
+      @search="search"
+      :initKeys="initKeys"
+    >
+    </ProSearch>
+  </ele-card>
+</template>
+
+<script setup>
+  import { reactive, ref, defineEmits, getCurrentInstance } from 'vue';
+  import ProSearch from '@/components/CommonPage/ProSearch2.vue';
+
+  let { proxy } = getCurrentInstance();
+  const emit = defineEmits(['search', 'exportExcel']);
+
+  const formItems = reactive([
+    {
+      type: 'input',
+      label: '姓名',
+      prop: 'name',
+      placeholder: '请输入姓名'
+    },
+    {
+      type: 'input',
+      label: '手机号',
+      prop: 'mobile',
+      placeholder: '请输入手机号'
+    },
+    {
+      type: 'input',
+      label: '学校',
+      prop: 'school',
+      placeholder: '请输入学校'
+    },
+    {
+      type: 'dictSelect',
+      label: '状态',
+      prop: 'status',
+      props: { code: 'partner_status' }
+    },
+    {
+      type: 'daterange',
+      label: '申请时间',
+      prop: 'timeRange',
+      props: {
+        valueFormat: 'YYYY-MM-DD',
+        format: 'YYYY-MM-DD',
+        startPlaceholder: '开始日期',
+        endPlaceholder: '结束日期',
+        onChange: (value) => {
+          initKeys.applyTimeStart = value ? value[0] : '';
+          initKeys.applyTimeEnd = value ? value[1] : '';
+          searchRef.value?.setData(initKeys);
+        }
+      }
+    }
+  ]);
+
+  const initKeys = reactive({
+    name: '',
+    mobile: '',
+    school: '',
+    status: '',
+    applyTimeStart: '',
+    applyTimeEnd: '',
+  });
+
+  const searchRef = ref(null);
+
+  /** 搜索 */
+  const search = (data) => {
+    emit('search', { ...data });
+  };
+
+  defineExpose({
+    search
+  });
+</script>

+ 18 - 0
src/views/marketing/partner/components/partner-settlement.vue

@@ -0,0 +1,18 @@
+<!-- 结算设置 -->
+<template>
+    <div class="partner-settlement">
+        <!-- TODO: 实现结算设置界面 -->
+        <h3>结算设置</h3>
+    </div>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+
+</script>
+
+<style lang="scss" scoped>
+.partner-settlement {
+    padding: 16px;
+}
+</style>

+ 364 - 0
src/views/marketing/partner/components/poster-edit.vue

@@ -0,0 +1,364 @@
+<!-- 合伙人推广海报编辑 -->
+<template>
+  <el-dialog
+    :title="editForm.id ? '编辑海报' : '新增海报'"
+    v-model="visible"
+    width="1000px"
+    @closed="resetForm"
+  >
+    <div class="poster-edit-container">
+      <!-- 左侧手机预览 -->
+      <div class="mobile-preview">
+        <div class="preview-content">
+          <div class="preview-poster" v-if="editForm.background">
+            <el-image
+              :src="editForm.background"
+              fit="cover"
+              style="width: 250px; height: 445px"
+            />
+            <!-- 头像预览 -->
+            <div
+              class="avatar-preview"
+              v-if="editForm.headImgPosX && editForm.headImgPosY"
+              :style="{
+                left: editForm.headImgPosX + 'px',
+                top: editForm.headImgPosY + 'px',
+                width: '30px',
+                height: '30px',
+                borderRadius: '50%',
+                background: '#e0e0e0',
+                position: 'absolute'
+              }"
+            ></div>
+            <!-- 昵称预览 -->
+            <div
+              class="nickname-preview"
+              v-if="editForm.nickNamePosX && editForm.nickNamePosY"
+              :style="{
+                left: editForm.nickNamePosX + 'px',
+                top: editForm.nickNamePosY + 'px',
+                position: 'absolute',
+                color: '#333',
+                fontSize: '14px'
+              }"
+              >微信昵称</div
+            >
+            <!-- 二维码预览 -->
+            <div
+              class="qrcode-preview"
+              v-if="
+                editForm.qrCodePosX &&
+                editForm.qrCodePosY &&
+                editForm.qrCodeWidth &&
+                editForm.qrCodeHeight
+              "
+              :style="{
+                left: editForm.qrCodePosX + 'px',
+                top: editForm.qrCodePosY + 'px',
+                width: editForm.qrCodeWidth + 'px',
+                height: editForm.qrCodeHeight + 'px',
+                background: '#e0e0e0',
+                position: 'absolute',
+                borderRadius: '50%'
+              }"
+            ></div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 右侧编辑表单 -->
+      <div class="edit-form">
+        <el-form
+          ref="formRef"
+          :model="editForm"
+          :rules="rules"
+          label-width="100px"
+        >
+          <el-form-item label="模板名称" prop="name">
+            <el-input v-model="editForm.name" placeholder="请输入模板名称" />
+          </el-form-item>
+          <el-form-item label="背景图片" prop="background">
+            <image-upload v-model="editForm.background" :limit="1" />
+            <div class="upload-tip">建议尺寸: 750 x 1334px</div>
+          </el-form-item>
+          <el-form-item label="微信头像位置">
+            <el-row :gutter="10">
+              <el-col :span="12">
+                <span>X</span>
+                <el-input-number
+                  v-model="editForm.headImgPosX"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="X"
+                />
+              </el-col>
+              <el-col :span="12">
+                <span>Y</span>
+                <el-input-number
+                  v-model="editForm.headImgPosY"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="Y"
+                />
+              </el-col>
+            </el-row>
+          </el-form-item>
+          <el-form-item label="微信名位置">
+            <el-row :gutter="10">
+              <el-col :span="12">
+                <span>X</span>
+                <el-input-number
+                  v-model="editForm.nickNamePosX"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="X"
+                />
+              </el-col>
+              <el-col :span="12">
+                <span>Y</span>
+                <el-input-number
+                  v-model="editForm.nickNamePosY"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="Y"
+                />
+              </el-col>
+            </el-row>
+          </el-form-item>
+          <el-form-item label="二维码位置">
+            <el-row :gutter="10">
+              <el-col :span="12">
+                <span>X</span>
+                <el-input-number
+                  v-model="editForm.qrCodePosX"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="X"
+                />
+              </el-col>
+              <el-col :span="12">
+                <span>Y</span>
+                <el-input-number
+                  v-model="editForm.qrCodePosY"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="Y"
+                />
+              </el-col>
+            </el-row>
+          </el-form-item>
+          <el-form-item label="二维码大小">
+            <el-row :gutter="10">
+              <el-col :span="12">
+                <span>宽度</span>
+                <el-input-number
+                  v-model="editForm.qrCodeWidth"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="宽度"
+                />
+              </el-col>
+              <el-col :span="12">
+                <span>高度</span>
+                <el-input-number
+                  v-model="editForm.qrCodeHeight"
+                  :min="0"
+                  :precision="0"
+                  :step="1"
+                  controls-position="right"
+                  placeholder="高度"
+                />
+              </el-col>
+            </el-row>
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <template #footer>
+      <el-button @click="handleCancel">取消</el-button>
+      <el-button type="primary" :loading="loading" @click="handleSave"
+        >保存</el-button
+      >
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+  import { ref, reactive } from 'vue';
+  import { ElMessage } from 'element-plus';
+  import ImageUpload from '@/components/ImageUpload/index.vue';
+  import {
+    getPosterTemplateInfo,
+    addPosterTemplate,
+    updatePosterTemplate
+  } from '@/api/marketing/partner';
+
+  const emit = defineEmits(['success']);
+
+  // 表单实例
+  const formRef = ref();
+
+  // 编辑弹窗显示控制
+  const visible = ref(false);
+
+  // 加载状态
+  const loading = ref(false);
+
+  // 编辑表单数据
+  const editForm = reactive({
+    id: null,
+    name: '',
+    background: '',
+    headImgPosX: '',
+    headImgPosY: '',
+    nickNamePosX: '',
+    nickNamePosY: '',
+    qrCodePosX: '',
+    qrCodePosY: '',
+    qrCodeWidth: '',
+    qrCodeHeight: ''
+  });
+
+  // 表单验证规则
+  const rules = {
+    name: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],
+    background: [
+      { required: true, message: '请上传背景图片', trigger: 'change' }
+    ]
+  };
+
+  // 打开弹窗
+  const open = (row) => {
+    visible.value = true;
+    if (row?.id) {
+      getDetail(row.id);
+    } else {
+      resetForm();
+    }
+  };
+
+  // 获取详情
+  const getDetail = async (id) => {
+    try {
+      const res = await getPosterTemplateInfo(id);
+      if (res.data.code == 200) {
+        Object.assign(editForm, res.data.data);
+      }
+    } catch (error) {
+      ElMessage.error(error.message);
+    }
+  };
+
+  // 重置表单
+  const resetForm = () => {
+    formRef.value?.resetFields();
+    Object.assign(editForm, {
+      id: null,
+      name: '',
+      background: '',
+      headImgPosX: 0,
+      headImgPosY: 0,
+      nickNamePosX: 0,
+      nickNamePosY: 0,
+      qrCodePosX: 0,
+      qrCodePosY: 0,
+      qrCodeWidth: 0,
+      qrCodeHeight: 0
+    });
+  };
+
+  // 取消
+  const handleCancel = () => {
+    visible.value = false;
+  };
+
+  // 保存海报
+  const handleSave = () => {
+    formRef.value?.validate(async (valid) => {
+      if (!valid) return;
+      try {
+        loading.value = true;
+        const saveOrUpdate = editForm.id
+          ? updatePosterTemplate
+          : addPosterTemplate;
+        await saveOrUpdate(editForm);
+        ElMessage.success('保存成功');
+        visible.value = false;
+        emit('success');
+      } catch (error) {
+        ElMessage.error(error.message);
+      } finally {
+        loading.value = false;
+      }
+    });
+  };
+
+  defineExpose({ open });
+</script>
+
+<style lang="scss" scoped>
+  .poster-edit-container {
+    display: flex;
+    gap: 20px;
+
+    .mobile-preview {
+      background: url('@/assets/mobile.png') no-repeat center center;
+      background-size: 100% 100%;
+      width: 445px;
+      height: 750px;
+      border-radius: 20px;
+      overflow: hidden;
+      flex-shrink: 0;
+
+      .preview-content {
+        padding: 16px;
+
+        .preview-poster {
+          position: relative;
+          width: 250px;
+          height: 445px;
+          margin: 110px 82px;
+          overflow: hidden;
+        }
+      }
+    }
+
+    .edit-form {
+      flex: 1;
+      padding: 20px;
+      background: #fff;
+      border-radius: 4px;
+    }
+
+    .el-col-12 {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      span {
+        min-width: 40px;
+        text-align: center;
+        margin-right: 10px;
+      }
+    }
+  }
+
+  .upload-tip {
+    font-size: 12px;
+    color: #999;
+    margin-top: 4px;
+  }
+</style>

+ 54 - 0
src/views/marketing/partner/index.vue

@@ -0,0 +1,54 @@
+<!-- 合伙人管理 -->
+<template>
+  <ele-page flex-table>
+    <div class="partner-management">
+        <el-tabs v-model="activeTab" class="partner-tabs" @tab-click="handleTabClick">
+            <el-tab-pane label="合伙人管理" name="list">
+                <partner-list ref="partnerListRef" v-if="activeTab === 'list'" />
+            </el-tab-pane>
+            <el-tab-pane label="招募规则设置" name="rule">
+                <partner-rule v-if="activeTab === 'rule'" />
+            </el-tab-pane>
+            <el-tab-pane label="合伙人推广海报" name="poster">
+                <partner-poster v-if="activeTab === 'poster'" />
+            </el-tab-pane>
+            <el-tab-pane label="结算设置" name="settlement">
+                <partner-settlement v-if="activeTab === 'settlement'" />
+            </el-tab-pane>
+        </el-tabs>
+    </div>
+
+  </ele-page>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import PartnerList from './components/partner-list.vue';
+import PartnerRule from './components/partner-rule.vue';
+import PartnerPoster from './components/partner-poster.vue';
+import PartnerSettlement from './components/partner-settlement.vue';
+
+// 当前激活的标签页
+const activeTab = ref('list');
+const partnerListRef = ref(null);
+
+// 标签页切换事件
+const handleTabClick = (tab) => {
+    console.log('当前标签页:', tab.props.name);
+};
+</script>
+
+<style lang="scss" scoped>
+.partner-management {
+    padding: 16px;
+    height: calc(100% - 10px);
+    background-color: #fff;
+    box-sizing: border-box;
+
+    .partner-tabs {
+        :deep(.el-tabs__header) {
+            margin-bottom: 0;
+        }
+    }
+}
+</style>