This commit is contained in:
2026-07-20 11:50:47 +08:00
parent 95d43746f6
commit 019ed28d37
401 changed files with 61622 additions and 23869 deletions

View File

@@ -1,3 +1,3 @@
VITE_APP_NAME=后台管理系统 VITE_APP_NAME=后台管理系统
VITE_API_URL=http://127.0.0.1:10051/api VITE_API_URL=http://127.0.0.1:10051/api
#VITE_API_URL=https://sifa-api.wsdns.cn/api #VITE_API_URL=https://tuanwei-api.gxwebsoft.com/api

View File

@@ -1,2 +1,2 @@
VITE_APP_NAME=后台管理系统 VITE_APP_NAME=后台管理系统
VITE_API_URL=https://sifa-api.wsdns.cn/api VITE_API_URL=https://tuanwei-api.gxwebsoft.com/api

View File

@@ -0,0 +1,52 @@
-- 学院管理、班级管理建表脚本
-- 班级绑定在学院下,一学院对应多班级
DROP TABLE IF EXISTS `gxmu_class`;
DROP TABLE IF EXISTS `gxmu_college`;
CREATE TABLE `gxmu_college` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`college_code` VARCHAR(64) NOT NULL COMMENT '学院编码',
`college_name` VARCHAR(100) NOT NULL COMMENT '学院名称',
`short_name` VARCHAR(100) DEFAULT NULL COMMENT '学院简称',
`leader_name` VARCHAR(50) DEFAULT NULL COMMENT '负责人',
`leader_phone` VARCHAR(30) DEFAULT NULL COMMENT '负责人电话',
`sort_number` INT DEFAULT 0 COMMENT '排序号',
`status` TINYINT DEFAULT 1 COMMENT '状态1启用 0停用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gxmu_college_code_tenant` (`college_code`, `tenant_id`),
UNIQUE KEY `uk_gxmu_college_name_tenant` (`college_name`, `tenant_id`),
KEY `idx_gxmu_college_status` (`status`),
KEY `idx_gxmu_college_sort` (`sort_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学院管理表';
CREATE TABLE `gxmu_class` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`college_id` INT NOT NULL COMMENT '学院ID',
`class_code` VARCHAR(64) NOT NULL COMMENT '班级编码',
`class_name` VARCHAR(100) NOT NULL COMMENT '班级名称',
`grade_year` INT DEFAULT NULL COMMENT '年级',
`counselor_name` VARCHAR(50) DEFAULT NULL COMMENT '辅导员姓名',
`counselor_phone` VARCHAR(30) DEFAULT NULL COMMENT '辅导员电话',
`student_count` INT DEFAULT 0 COMMENT '学生人数',
`sort_number` INT DEFAULT 0 COMMENT '排序号',
`status` TINYINT DEFAULT 1 COMMENT '状态1启用 0停用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gxmu_class_code_tenant` (`class_code`, `tenant_id`),
UNIQUE KEY `uk_gxmu_class_name_college_tenant` (`college_id`, `class_name`, `tenant_id`),
KEY `idx_gxmu_class_college_id` (`college_id`),
KEY `idx_gxmu_class_status` (`status`),
KEY `idx_gxmu_class_grade_year` (`grade_year`),
CONSTRAINT `fk_gxmu_class_college_id`
FOREIGN KEY (`college_id`) REFERENCES `gxmu_college` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级管理表';

View File

@@ -0,0 +1,25 @@
-- /gxmu/declare 挑战杯配置多值化迁移
-- 目标:
-- 1. 申报管理中的 project_type / project_group 支持保存多个自定义值
-- 2. 存储格式采用 JSON 数组字符串,尽量减少后端实体和前端兼容成本
ALTER TABLE `gxmu_declare`
MODIFY COLUMN `project_type` TEXT NULL COMMENT '挑战杯项目类型(JSON数组字符串)',
MODIFY COLUMN `project_group` TEXT NULL COMMENT '挑战杯项目分组(JSON数组字符串)';
-- 历史单值数据迁移为 JSON 数组字符串,仅处理挑战杯模块记录
UPDATE `gxmu_declare`
SET `project_type` = JSON_ARRAY(`project_type`)
WHERE `module` = 'gxmu_tzbcy_form'
AND `project_type` IS NOT NULL
AND `project_type` <> ''
AND JSON_VALID(`project_type`) = 0;
UPDATE `gxmu_declare`
SET `project_group` = JSON_ARRAY(`project_group`)
WHERE `module` = 'gxmu_tzbcy_form'
AND `project_group` IS NOT NULL
AND `project_group` <> ''
AND JSON_VALID(`project_group`) = 0;
-- 挑战杯申报表 gxmu_tzbcy_form 的 project_type / project_group 仍为单值字段,无需改表。

490
docs/sql/gxmu_mysql.sql Normal file
View File

@@ -0,0 +1,490 @@
-- 基于 src/views/gxmu 各模块页面字段推导的 MySQL 建表脚本
-- 说明:/gxmu/declare 中挑战杯的 project_type / project_group 多值配置迁移脚本见 docs/sql/gxmu_declare_migration.sql
-- 说明:
-- 1. 页面中大量“日期/数量/金额”字段当前是自由文本输入示例值包含“2022年6月”“1000人”“400元”“5次”等单位。
-- 为兼容现有前端录入方式,这些字段优先保留为 VARCHAR而不是 DATE / INT / DECIMAL。
-- 2. 若后续需要做严格统计分析,建议在后端增加字段校验后,再把对应列调整为数值或日期类型。
-- 3. 复杂模块 TZBCY / WXXZX 已拆成主表 + 明细子表,便于查询、导出和扩展。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `gxmu_wxxzx_review_member`;
DROP TABLE IF EXISTS `gxmu_wxxzx_budget`;
DROP TABLE IF EXISTS `gxmu_wxxzx_applicant`;
DROP TABLE IF EXISTS `gxmu_wxxzx_guidance_teacher`;
DROP TABLE IF EXISTS `gxmu_wxxzx_project`;
DROP TABLE IF EXISTS `gxmu_tzbcy_advisor`;
DROP TABLE IF EXISTS `gxmu_tzbcy_team_member`;
DROP TABLE IF EXISTS `gxmu_tzbcy_project`;
DROP TABLE IF EXISTS `gxmu_wshqtzb`;
DROP TABLE IF EXISTS `gxmu_wshqtw`;
DROP TABLE IF EXISTS `gxmu_yxgqtdgb`;
DROP TABLE IF EXISTS `gxmu_yxgqty`;
DROP TABLE IF EXISTS `gxmu_sjtbzbsj`;
DROP TABLE IF EXISTS `gxmu_sjqn`;
DROP TABLE IF EXISTS `gxmu_qmgc_form`;
DROP TABLE IF EXISTS `gxmu_tygl_form`;
DROP TABLE IF EXISTS `gxmu_sjqn`;
CREATE TABLE `gxmu_sjqn` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`apply_type` VARCHAR(64) NOT NULL COMMENT '申报类别',
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`education` VARCHAR(32) DEFAULT NULL COMMENT '学历',
`position` VARCHAR(128) DEFAULT NULL COMMENT '职务',
`job_title` VARCHAR(128) DEFAULT NULL COMMENT '职称',
`unit_name` VARCHAR(255) DEFAULT NULL COMMENT '所在单位',
`awards` TEXT COMMENT '近三年曾获校级及以上奖励',
`experience` TEXT COMMENT '工作(学习)经历',
`main_story` TEXT COMMENT '主要事迹',
`league_opinion` TEXT COMMENT '所在二级团组织意见',
`party_opinion` TEXT COMMENT '所在单位党组织意见',
`school_opinion` TEXT COMMENT '校团委意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_sjqn_name` (`name`),
KEY `idx_gxmu_sjqn_apply_type` (`apply_type`),
KEY `idx_gxmu_sjqn_unit_name` (`unit_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-十佳青年';
DROP TABLE IF EXISTS `gxmu_sjtbzbsj`;
CREATE TABLE `gxmu_sjtbzbsj` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`college_class` VARCHAR(255) DEFAULT NULL COMMENT '学院班级/单位科室',
`branch_name` VARCHAR(255) DEFAULT NULL COMMENT '所在团支部',
`edu_eval` VARCHAR(64) DEFAULT NULL COMMENT '2024年度团员教育评议等次',
`awards` TEXT COMMENT '近三年曾获校级及以上奖励',
`experience` TEXT COMMENT '工作(学习)经历',
`main_story` TEXT COMMENT '主要事迹',
`league_opinion` TEXT COMMENT '所在二级团组织意见',
`party_opinion` TEXT COMMENT '所在单位党组织意见',
`school_opinion` TEXT COMMENT '校团委意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_sjtbzbsj_name` (`name`),
KEY `idx_gxmu_sjtbzbsj_branch_name` (`branch_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-十佳团支部书记';
DROP TABLE IF EXISTS `gxmu_yxgqty`;
CREATE TABLE `gxmu_yxgqty` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`join_time` VARCHAR(32) DEFAULT NULL COMMENT '入团时间',
`college_major_class` VARCHAR(255) DEFAULT NULL COMMENT '所在学院、专业、班级',
`position` VARCHAR(128) DEFAULT NULL COMMENT '职务',
`volunteer_reg_time` VARCHAR(32) DEFAULT NULL COMMENT '成为注册志愿者时间',
`edu_eval_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年团员教育评议等次',
`smart_system` VARCHAR(16) DEFAULT NULL COMMENT '是否已登录智慧团建系统',
`contact` VARCHAR(32) DEFAULT NULL COMMENT '联系电话',
`total_volunteer_hours` VARCHAR(64) DEFAULT NULL COMMENT '累计志愿服务时长',
`volunteer_hours_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年志愿服务时长',
`member_no` VARCHAR(64) DEFAULT NULL COMMENT '发展团员编号',
`honors_five_years` TEXT COMMENT '近五年获得荣誉情况',
`main_story` TEXT COMMENT '主要事迹',
`league_opinion` TEXT COMMENT '学生社团指导教师意见/所在单位团委',
`party_opinion` TEXT COMMENT '业务指导单位意见/所在单位党组织',
`school_opinion` TEXT COMMENT '校团委意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_yxgqty_name` (`name`),
KEY `idx_gxmu_yxgqty_member_no` (`member_no`),
KEY `idx_gxmu_yxgqty_contact` (`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-优秀共青团员';
DROP TABLE IF EXISTS `gxmu_yxgqtdgb`;
CREATE TABLE `gxmu_yxgqtdgb` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`position` VARCHAR(128) DEFAULT NULL COMMENT '职务',
`identity_type` VARCHAR(64) DEFAULT NULL COMMENT '身份',
`organization` VARCHAR(255) DEFAULT NULL COMMENT '所在团组织',
`contact` VARCHAR(32) DEFAULT NULL COMMENT '联系方式',
`member_no` VARCHAR(64) DEFAULT NULL COMMENT '发展团员编号',
`current_duty_time` VARCHAR(32) DEFAULT NULL COMMENT '任现团内职务时间',
`cadre_years` VARCHAR(32) DEFAULT NULL COMMENT '担任团干部年限',
`assessment_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年度工作考核结果',
`volunteer_reg_time` VARCHAR(32) DEFAULT NULL COMMENT '成为注册志愿者时间',
`cadre_experience` TEXT COMMENT '从事团干部经历',
`honors_five_years` TEXT COMMENT '近五年获得校级及以上荣誉情况',
`main_story` TEXT COMMENT '主要事迹',
`league_opinion` TEXT COMMENT '所在单位团组织意见',
`party_opinion` TEXT COMMENT '所在单位党组织意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_yxgqtdgb_name` (`name`),
KEY `idx_gxmu_yxgqtdgb_organization` (`organization`),
KEY `idx_gxmu_yxgqtdgb_contact` (`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-优秀共青团干部';
DROP TABLE IF EXISTS `gxmu_wshqtw`;
CREATE TABLE `gxmu_wshqtw` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`org_name` VARCHAR(255) NOT NULL COMMENT '二级团组织全称',
`leader` VARCHAR(64) DEFAULT NULL COMMENT '负责人',
`phone` VARCHAR(32) DEFAULT NULL COMMENT '联系电话',
`member_total` VARCHAR(64) DEFAULT NULL COMMENT '现有团员总数',
`member_developed_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年发展团员人数',
`smart_system_login` VARCHAR(16) DEFAULT NULL COMMENT '是否已登录智慧团建系统',
`committee_count` VARCHAR(64) DEFAULT NULL COMMENT '团委委员人数',
`fulltime_cadre_count` VARCHAR(128) DEFAULT NULL COMMENT '专职团干部数',
`parttime_cadre_count` VARCHAR(128) DEFAULT NULL COMMENT '兼职团干部数',
`last_election_time` VARCHAR(32) DEFAULT NULL COMMENT '团委最近一次换届时间',
`fee_receivable_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年应收团费',
`fee_received_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年实收团费',
`fee_payable_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年应上缴团费',
`fee_paid_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年实际上缴团费',
`branch_count` VARCHAR(64) DEFAULT NULL COMMENT '团支部数',
`standardized_work_2024` VARCHAR(16) DEFAULT NULL COMMENT '是否开展规范化建设工作',
`recommend_activist_2024` VARCHAR(64) DEFAULT NULL COMMENT '推荐入党积极分子人数',
`activist_confirmed` VARCHAR(64) DEFAULT NULL COMMENT '确定为入党积极分子数',
`recommend_dev_target_2024` VARCHAR(64) DEFAULT NULL COMMENT '推荐党的发展对象人数',
`dev_target_confirmed` VARCHAR(64) DEFAULT NULL COMMENT '确定为党的发展对象数',
`honors_five_years` TEXT COMMENT '近五年获得校级及以上荣誉情况',
`work_summary_three_years` TEXT COMMENT '近三年开展的主要工作及取得的效果',
`party_opinion` TEXT COMMENT '所在单位党组织意见',
`school_opinion` TEXT COMMENT '校团委意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wshqtw_org_name` (`org_name`),
KEY `idx_gxmu_wshqtw_leader` (`leader`),
KEY `idx_gxmu_wshqtw_phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-五四红旗团委';
DROP TABLE IF EXISTS `gxmu_wshqtzb`;
CREATE TABLE `gxmu_wshqtzb` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`branch_name` VARCHAR(255) NOT NULL COMMENT '团支部全称',
`second_org` VARCHAR(255) DEFAULT NULL COMMENT '所属二级团组织',
`secretary` VARCHAR(64) DEFAULT NULL COMMENT '团支部书记',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`contact` VARCHAR(32) DEFAULT NULL COMMENT '联系方式',
`establish_time` VARCHAR(32) DEFAULT NULL COMMENT '成立时间',
`last_election_time` VARCHAR(32) DEFAULT NULL COMMENT '最近一次换届时间',
`smart_system_login` VARCHAR(16) DEFAULT NULL COMMENT '是否已登录智慧团建系统',
`member_total` VARCHAR(64) DEFAULT NULL COMMENT '现有团员总数',
`member_developed_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年发展团员数',
`fee_receivable_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年应收团费',
`fee_received_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年实收团费',
`fee_payable_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年应上缴团费',
`fee_paid_2024` VARCHAR(64) DEFAULT NULL COMMENT '2024年实际上缴团费',
`recommend_activist_2024` VARCHAR(64) DEFAULT NULL COMMENT '推荐入党积极分子人数',
`activist_confirmed` VARCHAR(64) DEFAULT NULL COMMENT '确定为入党积极分子数',
`recommend_dev_target_2024` VARCHAR(64) DEFAULT NULL COMMENT '推荐党的发展对象人数',
`dev_target_confirmed` VARCHAR(64) DEFAULT NULL COMMENT '确定为党的发展对象数',
`branch_committee_meeting_count` VARCHAR(64) DEFAULT NULL COMMENT '团支部委员会会议召开次数',
`branch_member_meeting_count` VARCHAR(64) DEFAULT NULL COMMENT '团支部团员大会召开次数',
`edu_eval_done` VARCHAR(16) DEFAULT NULL COMMENT '是否开展团员教育评议',
`annual_reg_done` VARCHAR(16) DEFAULT NULL COMMENT '是否开展团员年度团籍注册',
`class_count` VARCHAR(64) DEFAULT NULL COMMENT '开展团课次数',
`smart_system_100` VARCHAR(16) DEFAULT NULL COMMENT '是否100%录入智慧团建',
`honors_five_years` TEXT COMMENT '近五年获得院级及以上荣誉情况',
`work_summary_three_years` TEXT COMMENT '近三年开展的主要工作及取得的效果',
`league_opinion` TEXT COMMENT '所在二级团组织意见',
`party_opinion` TEXT COMMENT '所在单位党组织意见',
`school_opinion` TEXT COMMENT '校团委意见',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wshqtzb_branch_name` (`branch_name`),
KEY `idx_gxmu_wshqtzb_second_org` (`second_org`),
KEY `idx_gxmu_wshqtzb_secretary` (`secretary`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-五四红旗团支部';
DROP TABLE IF EXISTS `gxmu_tzbcy_form`;
CREATE TABLE `gxmu_tzbcy_form` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`province_city` VARCHAR(128) DEFAULT NULL COMMENT '所在省市',
`school_name` VARCHAR(255) DEFAULT NULL COMMENT '学校名称',
`project_name` VARCHAR(255) DEFAULT NULL COMMENT '项目名称',
`project_type` VARCHAR(64) DEFAULT NULL COMMENT '项目类型',
`project_group` VARCHAR(128) DEFAULT NULL COMMENT '项目分组',
`leader` VARCHAR(64) DEFAULT NULL COMMENT '负责人',
`phone` VARCHAR(32) DEFAULT NULL COMMENT '联系电话',
`team_members` LONGTEXT COMMENT '团队成员(JSON字符串)',
`advisors` LONGTEXT COMMENT '指导教师(JSON字符串)',
`project_brief` TEXT COMMENT '项目简介',
`social_value` TEXT COMMENT '社会价值',
`practice_process` TEXT COMMENT '实践过程',
`innovation_meaning` TEXT COMMENT '创新意义',
`development_prospect` TEXT COMMENT '发展前景',
`team_cooperation` TEXT COMMENT '团队协作',
`project_materials` TEXT COMMENT '项目介绍材料',
`other_proofs` TEXT COMMENT '其他证明材料',
`project_summary` TEXT COMMENT '项目摘要/我们的项目',
`team_intro` TEXT COMMENT '团队介绍/我们的团队',
`team_slogan` VARCHAR(255) DEFAULT NULL COMMENT '团队口号',
`practice_log` TEXT COMMENT '实践日志',
`user_id` INT DEFAULT NULL COMMENT '用户ID',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_tzbcy_form_project_name` (`project_name`),
KEY `idx_tzbcy_form_school_name` (`school_name`),
KEY `idx_tzbcy_form_leader` (`leader`),
KEY `idx_tzbcy_form_user_id` (`user_id`),
KEY `idx_tzbcy_form_tenant_id` (`tenant_id`),
KEY `idx_tzbcy_form_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='挑战杯创业计划竞赛申报表';
DROP TABLE IF EXISTS `gxmu_wxxzx_project`;
CREATE TABLE `gxmu_wxxzx_project` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`topic_name` VARCHAR(255) NOT NULL COMMENT '课题名称',
`leader` VARCHAR(64) DEFAULT NULL COMMENT '课题负责人',
`college_grade_class` VARCHAR(255) DEFAULT NULL COMMENT '学院、年级、班别',
`phone` VARCHAR(32) DEFAULT NULL COMMENT '联系电话',
`advisor` VARCHAR(64) DEFAULT NULL COMMENT '指导老师',
`topic_type` VARCHAR(32) DEFAULT NULL COMMENT '课题类型',
`rationale` TEXT COMMENT '立论依据',
`teacher_opinion` TEXT COMMENT '指导老师意见',
`teacher_sign` VARCHAR(64) DEFAULT NULL COMMENT '指导老师签字',
`review_opinion` TEXT COMMENT '评审小组意见',
`review_score` VARCHAR(32) DEFAULT NULL COMMENT '评审分数',
`review_leader_sign` VARCHAR(64) DEFAULT NULL COMMENT '评审组长签字',
`college_opinion` TEXT COMMENT '学院意见',
`school_opinion` TEXT COMMENT '校团委意见',
`promise_signer` VARCHAR(64) DEFAULT NULL COMMENT '承诺书签名人',
`review_college` VARCHAR(255) DEFAULT NULL COMMENT '评审名单-学院',
`review_reporter` VARCHAR(64) DEFAULT NULL COMMENT '评审名单-填报人',
`review_date` VARCHAR(32) DEFAULT NULL COMMENT '评审名单-填报时间',
`funding_budget_file` VARCHAR(500) DEFAULT NULL COMMENT '经费预算表',
`funding_allocation_file` VARCHAR(500) DEFAULT NULL COMMENT '经费划拨明细表',
`midterm_remark` TEXT COMMENT '中期检查说明',
`midterm_materials` LONGTEXT COMMENT '中期检查材料(JSON字符串)',
`final_remark` TEXT COMMENT '结题说明',
`final_materials` LONGTEXT COMMENT '结题材料(JSON字符串)',
`archive_awards` TEXT COMMENT '获奖情况',
`archive_proofs` LONGTEXT COMMENT '获奖佐证材料(JSON字符串)',
`submit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '提交状态0草稿 1已提交',
`sort_no` INT NOT NULL DEFAULT 0 COMMENT '排序号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wxxzx_topic_name` (`topic_name`),
KEY `idx_gxmu_wxxzx_leader` (`leader`),
KEY `idx_gxmu_wxxzx_college_grade_class` (`college_grade_class`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-未来学术之星课题';
DROP TABLE IF EXISTS `gxmu_wxxzx_guidance_teacher`;
CREATE TABLE `gxmu_wxxzx_guidance_teacher` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`project_id` BIGINT UNSIGNED NOT NULL COMMENT '课题ID',
`teacher_order` INT NOT NULL DEFAULT 0 COMMENT '指导教师排序',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`job_title` VARCHAR(128) DEFAULT NULL COMMENT '专业技术职称',
`department_name` VARCHAR(255) DEFAULT NULL COMMENT '所在部门',
`sign_name` VARCHAR(64) DEFAULT NULL COMMENT '签名',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wxxzx_guidance_teacher_project_id` (`project_id`),
CONSTRAINT `fk_gxmu_wxxzx_guidance_teacher_project_id`
FOREIGN KEY (`project_id`) REFERENCES `gxmu_wxxzx_project` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-未来学术之星指导教师';
DROP TABLE IF EXISTS `gxmu_wxxzx_applicant`;
CREATE TABLE `gxmu_wxxzx_applicant` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`project_id` BIGINT UNSIGNED NOT NULL COMMENT '课题ID',
`applicant_order` INT NOT NULL DEFAULT 0 COMMENT '申请人排序',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`grade` VARCHAR(32) DEFAULT NULL COMMENT '年级',
`class_name` VARCHAR(64) DEFAULT NULL COMMENT '班别',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`major` VARCHAR(128) DEFAULT NULL COMMENT '专业',
`role_desc` VARCHAR(255) DEFAULT NULL COMMENT '在课题中的作用',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wxxzx_applicant_project_id` (`project_id`),
CONSTRAINT `fk_gxmu_wxxzx_applicant_project_id`
FOREIGN KEY (`project_id`) REFERENCES `gxmu_wxxzx_project` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-未来学术之星课题申请人';
DROP TABLE IF EXISTS `gxmu_wxxzx_budget`;
CREATE TABLE `gxmu_wxxzx_budget` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`project_id` BIGINT UNSIGNED NOT NULL COMMENT '课题ID',
`budget_order` INT NOT NULL DEFAULT 0 COMMENT '预算排序',
`expense_item` VARCHAR(255) DEFAULT NULL COMMENT '支出科目',
`amount` VARCHAR(64) DEFAULT NULL COMMENT '金额',
`reason` VARCHAR(500) DEFAULT NULL COMMENT '计算根据及理由',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wxxzx_budget_project_id` (`project_id`),
CONSTRAINT `fk_gxmu_wxxzx_budget_project_id`
FOREIGN KEY (`project_id`) REFERENCES `gxmu_wxxzx_project` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-未来学术之星经费预算';
DROP TABLE IF EXISTS `gxmu_wxxzx_review_member`;
CREATE TABLE `gxmu_wxxzx_review_member` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`project_id` BIGINT UNSIGNED NOT NULL COMMENT '课题ID',
`member_order` INT NOT NULL DEFAULT 0 COMMENT '评审成员排序',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`job_title` VARCHAR(128) DEFAULT NULL COMMENT '职称',
`duty` VARCHAR(128) DEFAULT NULL COMMENT '职务',
`department_name` VARCHAR(255) DEFAULT NULL COMMENT '所在教研室/科室',
`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`tenant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记0未删 1已删',
PRIMARY KEY (`id`),
KEY `idx_gxmu_wxxzx_review_member_project_id` (`project_id`),
CONSTRAINT `fk_gxmu_wxxzx_review_member_project_id`
FOREIGN KEY (`project_id`) REFERENCES `gxmu_wxxzx_project` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='共青模块-未来学术之星评审小组名单';
DROP TABLE IF EXISTS `gxmu_qmgc_form`;
CREATE TABLE `gxmu_qmgc_form` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`photo` VARCHAR(500) DEFAULT NULL COMMENT '电子版照片',
`birth_month` VARCHAR(32) DEFAULT NULL COMMENT '出生年月',
`politics` VARCHAR(32) DEFAULT NULL COMMENT '政治面貌',
`native_place` VARCHAR(64) DEFAULT NULL COMMENT '籍贯',
`phone` VARCHAR(32) DEFAULT NULL COMMENT '手机号码',
`wechat` VARCHAR(64) DEFAULT NULL COMMENT '微信号',
`email` VARCHAR(128) DEFAULT NULL COMMENT '电子邮箱',
`qq` VARCHAR(32) DEFAULT NULL COMMENT 'QQ号',
`id_card_no` VARCHAR(32) DEFAULT NULL COMMENT '身份证号',
`hobby` VARCHAR(255) DEFAULT NULL COMMENT '爱好特长',
`willing_to_work_in_guangxi` VARCHAR(16) DEFAULT NULL COMMENT '是否有志到基层一线和艰苦边远地区工作',
`school_info` VARCHAR(255) DEFAULT NULL COMMENT '学校、院系、年级、专业',
`league_position` VARCHAR(255) DEFAULT NULL COMMENT '担任团学职务情况',
`resume` TEXT COMMENT '个人简历',
`awards` TEXT COMMENT '奖惩情况',
`academic_performance` TEXT COMMENT '综合成绩情况',
`secondary_league_opinion` TEXT COMMENT '二级团组织意见',
`secondary_league_opinion_date` VARCHAR(32) DEFAULT NULL COMMENT '二级团组织意见日期',
`secondary_party_opinion` TEXT COMMENT '二级党组织意见',
`secondary_party_opinion_date` VARCHAR(32) DEFAULT NULL COMMENT '二级党组织意见日期',
`school_league_opinion` TEXT COMMENT '学校团委意见',
`school_league_opinion_date` VARCHAR(32) DEFAULT NULL COMMENT '学校团委意见日期',
`user_id` INT DEFAULT NULL COMMENT '用户ID',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_qmgc_form_name` (`name`),
KEY `idx_qmgc_form_phone` (`phone`),
KEY `idx_qmgc_form_school_info` (`school_info`),
KEY `idx_qmgc_form_user_id` (`user_id`),
KEY `idx_qmgc_form_tenant_id` (`tenant_id`),
KEY `idx_qmgc_form_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='青年马克思主义者培养工程培训班学员登记表';
DROP TABLE IF EXISTS `gxmu_tygl_form`;
CREATE TABLE `gxmu_tygl_form` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`serial_no` INT DEFAULT NULL COMMENT '序号',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`gender` VARCHAR(16) DEFAULT NULL COMMENT '性别',
`nation` VARCHAR(32) DEFAULT NULL COMMENT '民族',
`phone` VARCHAR(32) DEFAULT NULL COMMENT '手机号码',
`league_position` VARCHAR(128) DEFAULT NULL COMMENT '团内职务',
`archive_in_current_org` VARCHAR(16) DEFAULT NULL COMMENT '团籍是否在本组织',
`join_month` VARCHAR(32) DEFAULT NULL COMMENT '入团年月',
`member_records` LONGTEXT COMMENT '团员记录(JSON字符串)',
`growth_archives` LONGTEXT COMMENT '成长档案(JSON字符串)',
`user_id` INT DEFAULT NULL COMMENT '用户ID',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_tygl_form_serial_no` (`serial_no`),
KEY `idx_tygl_form_name` (`name`),
KEY `idx_tygl_form_phone` (`phone`),
KEY `idx_tygl_form_league_position` (`league_position`),
KEY `idx_tygl_form_user_id` (`user_id`),
KEY `idx_tygl_form_tenant_id` (`tenant_id`),
KEY `idx_tygl_form_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='团员管理';
SET FOREIGN_KEY_CHECKS = 1;

15369
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -22,6 +22,8 @@
"@vue-office/docx": "^1.6.3", "@vue-office/docx": "^1.6.3",
"@vue-office/excel": "^1.7.14", "@vue-office/excel": "^1.7.14",
"@vueuse/integrations": "^11.0.3", "@vueuse/integrations": "^11.0.3",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"@wecom/jssdk": "^1.3.1", "@wecom/jssdk": "^1.3.1",
"ali-oss": "^6.18.0", "ali-oss": "^6.18.0",
"ant-design-vue": "^3.2.20", "ant-design-vue": "^3.2.20",
@@ -44,6 +46,7 @@
"mitt": "^3.0.1", "mitt": "^3.0.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.1.7", "pinia": "^2.1.7",
"sass": "^1.97.2",
"socket.io-client": "^4.7.1", "socket.io-client": "^4.7.1",
"sortablejs": "^1.15.0", "sortablejs": "^1.15.0",
"tinymce": "^5.10.5", "tinymce": "^5.10.5",

19
public/404.html Normal file
View File

@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
(function () {
var pathname = window.location.pathname.replace(/\/+$/, '');
var search = window.location.search || '';
var hash = window.location.hash || '';
var targetPath = pathname && pathname !== '/404.html' ? pathname : '/';
window.location.replace('/#' + targetPath + search + hash);
})();
</script>
</body>
</html>

13
public/ai/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/ai' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

13
public/forget/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/forget' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

13
public/home/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/home' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

13
public/index/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/index' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

13
public/login/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/login' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>页面跳转中</title>
</head>
<body>
<script>
window.location.replace('/#/wx-work-login' + (window.location.search || '') + (window.location.hash || ''));
</script>
</body>
</html>

View File

@@ -6,6 +6,12 @@
> >
<a-config-provider :locale="antLocale"> <a-config-provider :locale="antLocale">
<router-view /> <router-view />
<button v-if="showAiEntry" class="ai-entry" type="button" @click="goAi">
<span class="ant-back-top-icon">
<img src="@/assets/logo-main.png" alt="AI团宝" />
</span>
<span class="ai-entry__text">AI团宝</span>
</button>
</a-config-provider> </a-config-provider>
</ele-config-provider> </ele-config-provider>
</template> </template>
@@ -13,6 +19,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { unref, computed } from "vue"; import { unref, computed } from "vue";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { useRouter, useRoute } from "vue-router";
import { useThemeStore } from "@/store/modules/theme"; import { useThemeStore } from "@/store/modules/theme";
import { import {
MAP_KEY, MAP_KEY,
@@ -23,6 +30,8 @@ import {
import { useSetDocumentTitle } from "@/utils/document-title-util"; import { useSetDocumentTitle } from "@/utils/document-title-util";
import { useLocale } from "@/i18n/use-locale"; import { useLocale } from "@/i18n/use-locale";
const router = useRouter();
const route = useRoute();
const themeStore = useThemeStore(); const themeStore = useThemeStore();
const { showTabs } = storeToRefs(themeStore); const { showTabs } = storeToRefs(themeStore);
@@ -37,7 +46,84 @@ const { antLocale } = useLocale();
// 用于内链 iframe 组件获取 KeepAlive // 用于内链 iframe 组件获取 KeepAlive
const keepAlive = computed(() => TAB_KEEP_ALIVE && unref(showTabs)); const keepAlive = computed(() => TAB_KEEP_ALIVE && unref(showTabs));
const showAiEntry = computed(() => route.path !== "/ai");
const goAi = () => {
router.push("/ai");
};
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
securityJsCode: MAP_CODE securityJsCode: MAP_CODE
}; };
</script> </script>
<style scoped lang="scss">
.ai-entry {
position: fixed;
right: 0;
bottom: 10%;
z-index: 1000;
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 14px 10px 12px;
border: none;
border-radius: 20px 0 0 20px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(235, 246, 255, 0.96));
box-shadow: 0 18px 34px rgba(30, 96, 181, 0.2);
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
transform: translateY(-50%);
}
.ai-entry:hover {
transform: translate(-4px, -50%);
box-shadow: 0 22px 38px rgba(30, 96, 181, 0.24);
}
.ai-entry :deep(.ant-back-top-icon) {
display: inline-flex;
align-items: center;
justify-content: center;
width: 54px;
height: 54px;
border-radius: 18px;
background: linear-gradient(135deg, #1d85ff, #6fc8ff);
}
.ai-entry :deep(.ant-back-top-icon img) {
width: 38px;
height: 38px;
object-fit: contain;
}
.ai-entry__text {
font-size: 14px;
font-weight: 700;
color: #15539a;
line-height: 1;
//writing-mode: vertical-rl;
text-orientation: mixed;
}
@media (max-width: 640px) {
.ai-entry {
padding: 12px 8px 10px;
}
.ai-entry :deep(.ant-back-top-icon) {
width: 48px;
height: 48px;
}
.ai-entry :deep(.ant-back-top-icon img) {
width: 34px;
height: 34px;
}
.ai-entry__text {
font-size: 12px;
}
}
</style>

View File

@@ -0,0 +1,21 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import { MODULES_API_URL } from '@/config/setting';
import type {
ActivityOutlineGenParams,
ActivityOutlineGenResponse
} from './model';
/**
* 活动策划大纲生成
*/
export async function activityOutlineGen(data: ActivityOutlineGenParams) {
const res = await request.post<ApiResult<ActivityOutlineGenResponse>>(
MODULES_API_URL + '/ai/activityOutlineGen',
data
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '生成失败'));
}

View File

@@ -0,0 +1,17 @@
export interface ActivityOutlineGenParams {
event_theme: string;
people: string;
event_time: string;
event_funding: string;
event_type?: string;
event_location?: string;
event_meme?: string;
}
export interface ActivityOutlineGenResponse {
answer?: string;
conversationId?: string;
messageId?: string;
raw?: Record<string, any>;
[key: string]: any;
}

View File

@@ -1,14 +1,14 @@
import request from '@/utils/request'; import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api'; import type { ApiResult, PageResult } from '@/api';
import type { LawNotaryList, LawNotaryListParam } from './model'; import type { AiChatHistory, AiChatHistoryParam } from './model';
import { MODULES_API_URL } from '@/config/setting'; import { MODULES_API_URL } from '@/config/setting';
/** /**
* *
*/ */
export async function pageLawNotaryList(params: LawNotaryListParam) { export async function pageAiChatHistory(params: AiChatHistoryParam) {
const res = await request.get<ApiResult<PageResult<LawNotaryList>>>( const res = await request.get<ApiResult<PageResult<AiChatHistory>>>(
MODULES_API_URL + '/law/law-notary-list/page', MODULES_API_URL + '/ai/ai-chat-history/page',
{ {
params params
} }
@@ -20,11 +20,11 @@ export async function pageLawNotaryList(params: LawNotaryListParam) {
} }
/** /**
* *
*/ */
export async function listLawNotaryList(params?: LawNotaryListParam) { export async function listAiChatHistory(params?: AiChatHistoryParam) {
const res = await request.get<ApiResult<LawNotaryList[]>>( const res = await request.get<ApiResult<AiChatHistory[]>>(
MODULES_API_URL + '/law/law-notary-list', MODULES_API_URL + '/ai/ai-chat-history',
{ {
params params
} }
@@ -36,11 +36,11 @@ export async function listLawNotaryList(params?: LawNotaryListParam) {
} }
/** /**
* *
*/ */
export async function addLawNotaryList(data: LawNotaryList) { export async function addAiChatHistory(data: AiChatHistory) {
const res = await request.post<ApiResult<unknown>>( const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-notary-list', MODULES_API_URL + '/ai/ai-chat-history',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -50,11 +50,11 @@ export async function addLawNotaryList(data: LawNotaryList) {
} }
/** /**
* *
*/ */
export async function updateLawNotaryList(data: LawNotaryList) { export async function updateAiChatHistory(data: AiChatHistory) {
const res = await request.put<ApiResult<unknown>>( const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-notary-list', MODULES_API_URL + '/ai/ai-chat-history',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -64,11 +64,11 @@ export async function updateLawNotaryList(data: LawNotaryList) {
} }
/** /**
* *
*/ */
export async function removeLawNotaryList(id?: number) { export async function removeAiChatHistory(id?: number) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-notary-list/' + id MODULES_API_URL + '/ai/ai-chat-history/' + id
); );
if (res.data.code === 0) { if (res.data.code === 0) {
return res.data.message; return res.data.message;
@@ -77,11 +77,11 @@ export async function removeLawNotaryList(id?: number) {
} }
/** /**
* *
*/ */
export async function removeBatchLawNotaryList(data: (number | undefined)[]) { export async function removeBatchAiChatHistory(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-notary-list/batch', MODULES_API_URL + '/ai/ai-chat-history/batch',
{ {
data data
} }
@@ -93,11 +93,11 @@ export async function removeBatchLawNotaryList(data: (number | undefined)[]) {
} }
/** /**
* id查询公证列表 * id查询
*/ */
export async function getLawNotaryList(id: number) { export async function getAiChatHistory(id: number) {
const res = await request.get<ApiResult<LawNotaryList>>( const res = await request.get<ApiResult<AiChatHistory>>(
MODULES_API_URL + '/law/law-notary-list/' + id MODULES_API_URL + '/ai/ai-chat-history/' + id
); );
if (res.data.code === 0 && res.data.data) { if (res.data.code === 0 && res.data.data) {
return res.data.data; return res.data.data;

View File

@@ -0,0 +1,44 @@
import type { PageParam } from '@/api';
/**
*
*/
export interface AiChatHistory {
//
id?: number;
//
chatId?: number;
//
conversationId?: string;
//
userId?: number;
//
content?: string;
//
reply?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 搜索条件
*/
export interface AiChatHistoryParam extends PageParam {
id?: number;
chatId?: number;
conversationId?: string;
userId?: number;
content?: string;
reply?: string;
status?: number;
deleted?: number;
keywords?: string;
}

View File

@@ -1,14 +1,14 @@
import request from '@/utils/request'; import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api'; import type { ApiResult, PageResult } from '@/api';
import type { LawFeedback, LawFeedbackParam } from './model'; import type { AiChatList, AiChatListParam } from './model';
import { MODULES_API_URL } from '@/config/setting'; import { MODULES_API_URL } from '@/config/setting';
/** /**
* *
*/ */
export async function pageLawFeedback(params: LawFeedbackParam) { export async function pageAiChatList(params: AiChatListParam) {
const res = await request.get<ApiResult<PageResult<LawFeedback>>>( const res = await request.get<ApiResult<PageResult<AiChatList>>>(
MODULES_API_URL + '/law/law-feedback/page', MODULES_API_URL + '/ai/ai-chat-list/page',
{ {
params params
} }
@@ -22,9 +22,9 @@ export async function pageLawFeedback(params: LawFeedbackParam) {
/** /**
* *
*/ */
export async function listLawFeedback(params?: LawFeedbackParam) { export async function listAiChatList(params?: AiChatListParam) {
const res = await request.get<ApiResult<LawFeedback[]>>( const res = await request.get<ApiResult<AiChatList[]>>(
MODULES_API_URL + '/law/law-feedback', MODULES_API_URL + '/ai/ai-chat-list',
{ {
params params
} }
@@ -38,9 +38,9 @@ export async function listLawFeedback(params?: LawFeedbackParam) {
/** /**
* *
*/ */
export async function addLawFeedback(data: LawFeedback) { export async function addAiChatList(data: AiChatList) {
const res = await request.post<ApiResult<unknown>>( const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-feedback', MODULES_API_URL + '/ai/ai-chat-list',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -52,9 +52,9 @@ export async function addLawFeedback(data: LawFeedback) {
/** /**
* *
*/ */
export async function updateLawFeedback(data: LawFeedback) { export async function updateAiChatList(data: AiChatList) {
const res = await request.put<ApiResult<unknown>>( const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-feedback', MODULES_API_URL + '/ai/ai-chat-list',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -66,9 +66,9 @@ export async function updateLawFeedback(data: LawFeedback) {
/** /**
* *
*/ */
export async function removeLawFeedback(id?: number) { export async function removeAiChatList(id?: number) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-feedback/' + id MODULES_API_URL + '/ai/ai-chat-list/' + id
); );
if (res.data.code === 0) { if (res.data.code === 0) {
return res.data.message; return res.data.message;
@@ -79,9 +79,9 @@ export async function removeLawFeedback(id?: number) {
/** /**
* *
*/ */
export async function removeBatchLawFeedback(data: (number | undefined)[]) { export async function removeBatchAiChatList(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-feedback/batch', MODULES_API_URL + '/ai/ai-chat-list/batch',
{ {
data data
} }
@@ -95,9 +95,9 @@ export async function removeBatchLawFeedback(data: (number | undefined)[]) {
/** /**
* id查询 * id查询
*/ */
export async function getLawFeedback(id: number) { export async function getAiChatList(id: number) {
const res = await request.get<ApiResult<LawFeedback>>( const res = await request.get<ApiResult<AiChatList>>(
MODULES_API_URL + '/law/law-feedback/' + id MODULES_API_URL + '/ai/ai-chat-list/' + id
); );
if (res.data.code === 0 && res.data.data) { if (res.data.code === 0 && res.data.data) {
return res.data.data; return res.data.data;

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
*
*/
export interface AiChatList {
//
id?: number;
//
conversationId?: string;
//
userId?: number;
//
roleId?: number;
//
roleName?: string;
//
roleDesc?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
//
title?: string;
}
/**
* 搜索条件
*/
export interface AiChatListParam extends PageParam {
id?: number;
conversationId?: string;
userId?: number;
roleId?: number;
roleName?: string;
roleDesc?: string;
status?: number;
deleted?: number;
title?: string;
keywords?: string;
}

View File

@@ -0,0 +1,46 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import { MODULES_API_URL } from '@/config/setting';
import type {
ChallengeCupDocumentListResult,
ChallengeCupDocumentParam,
CompetitionHistoryPreprocessResult
} from './model';
export async function preprocessCompetitionHistoryFiles(
files: File[],
scoreFile?: File,
manualText?: string
) {
const formData = new FormData();
files.forEach((file) => {
formData.append('files', file);
});
if (scoreFile) {
formData.append('scoreFile', scoreFile);
}
if (manualText?.trim()) {
formData.append('manualText', manualText.trim());
}
const res = await request.post<ApiResult<CompetitionHistoryPreprocessResult>>(
MODULES_API_URL + '/ai/competition-history/preprocess',
formData
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '历史竞赛文件预处理失败'));
}
export async function listChallengeCupDocuments(
params?: ChallengeCupDocumentParam
) {
const res = await request.get<ApiResult<ChallengeCupDocumentListResult>>(
MODULES_API_URL + '/ai/knowledge-base/challenge-cup/documents',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '获取知识库文档失败'));
}

View File

@@ -0,0 +1,48 @@
export interface AiUploadedFile {
id?: string | number;
upload_file_id?: string | number;
name?: string;
size?: number;
extension?: string;
mime_type?: string;
created_by?: string;
created_at?: number;
[key: string]: any;
}
export interface CompetitionHistoryPreprocessResult {
answer?: string;
taskId?: string;
workflowRunId?: string;
outputs?: Record<string, any>;
raw?: Record<string, any>;
[key: string]: any;
}
export interface ChallengeCupDocument {
id: string;
name?: string;
data_source_type?: string;
display_status?: string;
indexing_status?: string;
enabled?: boolean;
word_count?: number;
created_at?: number;
updated_at?: number;
archived?: boolean;
[key: string]: any;
}
export interface ChallengeCupDocumentListResult {
data: ChallengeCupDocument[];
has_more?: boolean;
limit?: number;
total?: number;
page?: number;
}
export interface ChallengeCupDocumentParam {
page?: number;
limit?: number;
keyword?: string;
}

View File

@@ -0,0 +1,45 @@
import request from '@/utils/request';
import type { AxiosRequestConfig } from 'axios';
import type { ApiResult } from '@/api';
import { MODULES_API_URL } from '@/config/setting';
import type { FileRecord } from '@/api/system/file/model';
import type {
CreativeAssistantRequest,
CreativeAssistantResponse
} from './model';
/**
* AI文件上传
*/
export async function uploadAiFile(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<FileRecord>>(
MODULES_API_URL + '/ai/file/upload',
formData
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '上传失败'));
}
/**
* AI创意助手
* 说明:接口路径根据当前项目命名规则按 /ai/creativeAssistant 约定,
* 若后端实际路径不同,可直接在这里调整。
*/
export async function creativeAssistant(
data: CreativeAssistantRequest,
config?: AxiosRequestConfig
) {
const res = await request.post<ApiResult<CreativeAssistantResponse>>(
MODULES_API_URL + '/ai/creativeAssistant',
data,
config
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '执行失败'));
}

View File

@@ -0,0 +1,27 @@
import type { FileRecord } from '@/api/system/file/model';
export interface CreativeAssistantUploadFile {
transfer_method: 'local_file';
type: 'image' | 'document' | 'audio' | 'video';
upload_file_id?: number;
url: string;
}
export interface CreativeAssistantRequest {
user_content?: string;
user_contentString?: string;
user_files?: CreativeAssistantUploadFile[];
}
export interface CreativeAssistantOutputs {
video_result?: Partial<FileRecord>[];
video_message?: string;
Script_result?: string;
photo_files?: Partial<FileRecord>[];
photo_message?: string;
}
export interface CreativeAssistantResponse {
outputs?: CreativeAssistantOutputs;
[key: string]: any;
}

View File

@@ -0,0 +1,18 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { KnowledgeBaseListResult, KnowledgeBaseParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 知识库列表
*/
export async function listKnowledgeBase(params?: KnowledgeBaseParam) {
const res = await request.get<ApiResult<KnowledgeBaseListResult>>(
MODULES_API_URL + '/ai/knowledge-base/list',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,49 @@
/**
* 知识库
*/
export interface KnowledgeBase {
id: string;
name: string;
description?: string;
provider?: string;
permission?: string;
data_source_type?: string;
indexing_technique?: string;
app_count?: number;
document_count?: number;
word_count?: number;
created_by?: string;
author_name?: string;
created_at?: number;
updated_by?: string;
updated_at?: number;
embedding_model?: string;
embedding_model_provider?: string;
embedding_available?: boolean;
enable_api?: boolean;
total_documents?: number;
total_available_documents?: number;
is_multimodal?: boolean;
is_published?: boolean;
tags?: string[];
}
/**
* 知识库列表响应
*/
export interface KnowledgeBaseListResult {
data: KnowledgeBase[];
has_more: boolean;
limit: number;
total: number;
page: number;
}
/**
* 搜索条件
*/
export interface KnowledgeBaseParam {
page?: number;
limit?: number;
keyword?: string;
}

View File

@@ -0,0 +1,23 @@
import request from '@/utils/request';
import type { AxiosRequestConfig } from 'axios';
import type { ApiResult } from '@/api';
import type { ManuscriptGenParams, ManuscriptGenResult } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* AI内容创作
*/
export async function manuscriptGen(
data: ManuscriptGenParams,
config?: AxiosRequestConfig
) {
const res = await request.post<ApiResult<ManuscriptGenResult>>(
MODULES_API_URL + '/ai/manuscriptGen',
data,
config
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '生成失败'));
}

View File

@@ -0,0 +1,15 @@
import type { FileRecord } from '@/api/system/file/model';
export interface ManuscriptGenParams {
docType?: string;
eventType?: string;
theme?: string;
time?: string;
location?: string;
participants?: string;
highlights?: string;
number?: number;
files?: Partial<FileRecord>[];
}
export type ManuscriptGenResult = string | Record<string, any>;

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ArticleCollect, ArticleCollectParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageArticleCollect(params: ArticleCollectParam) {
const res = await request.get<ApiResult<PageResult<ArticleCollect>>>(
MODULES_API_URL + '/cms/article-collect/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listArticleCollect(params?: ArticleCollectParam) {
const res = await request.get<ApiResult<ArticleCollect[]>>(
MODULES_API_URL + '/cms/article-collect',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addArticleCollect(data: ArticleCollect) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-collect',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateArticleCollect(data: ArticleCollect) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-collect',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeArticleCollect(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-collect/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchArticleCollect(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-collect/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getArticleCollect(id: number) {
const res = await request.get<ApiResult<ArticleCollect>>(
MODULES_API_URL + '/cms/article-collect/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,31 +1,31 @@
import type { PageParam } from '@/api'; import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawNotaryConfig { export interface ArticleCollect {
// //
id?: number; id?: number;
// //
title?: string; articleId?: number;
// 配置
configList?: string;
// //
userId?: number; userId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
// 创建时间 // 注册时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
} }
/** /**
* *
*/ */
export interface LawNotaryConfigParam extends PageParam { export interface ArticleCollectParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ArticleComment, ArticleCommentParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageArticleComment(params: ArticleCommentParam) {
const res = await request.get<ApiResult<PageResult<ArticleComment>>>(
MODULES_API_URL + '/cms/article-comment/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listArticleComment(params?: ArticleCommentParam) {
const res = await request.get<ApiResult<ArticleComment[]>>(
MODULES_API_URL + '/cms/article-comment',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addArticleComment(data: ArticleComment) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-comment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateArticleComment(data: ArticleComment) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-comment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeArticleComment(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-comment/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchArticleComment(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/article-comment/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getArticleComment(id: number) {
const res = await request.get<ApiResult<ArticleComment>>(
MODULES_API_URL + '/cms/article-comment/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -3,26 +3,22 @@ import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawOrgPeople { export interface ArticleComment {
// //
id?: number; id?: number;
// //
orgId?: number; articleId?: number;
//
name?: string;
//
phone?: string;
//
position?: string;
//
type?: string;
// //
userId?: number; userId?: number;
//
content?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
// 创建时间 // 注册时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
@@ -31,7 +27,7 @@ export interface LawOrgPeople {
/** /**
* *
*/ */
export interface LawOrgPeopleParam extends PageParam { export interface ArticleCommentParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Manuscript, ManuscriptParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询稿件
*/
export async function pageManuscript(params: ManuscriptParam) {
const res = await request.get<ApiResult<PageResult<Manuscript>>>(
MODULES_API_URL + '/cms/manuscript/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询稿件列表
*/
export async function listManuscript(params?: ManuscriptParam) {
const res = await request.get<ApiResult<Manuscript[]>>(
MODULES_API_URL + '/cms/manuscript',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加稿件
*/
export async function addManuscript(data: Manuscript) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/cms/manuscript',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改稿件
*/
export async function updateManuscript(data: Manuscript) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/cms/manuscript',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除稿件
*/
export async function removeManuscript(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/manuscript/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除稿件
*/
export async function removeBatchManuscript(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/manuscript/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询稿件
*/
export async function getManuscript(id: number) {
const res = await request.get<ApiResult<Manuscript>>(
MODULES_API_URL + '/cms/manuscript/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,21 +1,18 @@
import type { PageParam } from "@/api"; import type { PageParam } from "@/api";
import { ReviewList } from "@/api/gxmu/reviewList/model";
/** /**
* * 稿
*/ */
export interface LawLegalOrgCheckType { export interface Manuscript {
// //
id?: number; id?: number;
// //
icon?: string;
//
title?: string; title?: string;
content?: string;
scoreConfig?: string;
// 类型
sortNumber?: number;
// //
userId?: number; content?: string;
//
cover?: string;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
@@ -24,12 +21,19 @@ export interface LawLegalOrgCheckType {
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
//
userId?: number;
//
sortNumber?: number;
// 待审核
status?: string;
reviewList?: ReviewList[];
} }
/** /**
* * 稿
*/ */
export interface LawLegalOrgCheckTypeParam extends PageParam { export interface ManuscriptParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ArticleCollect, ArticleCollectParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageArticleCollect(params: ArticleCollectParam) {
const res = await request.get<ApiResult<PageResult<ArticleCollect>>>(
MODULES_API_URL + '/gx/article-collect/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listArticleCollect(params?: ArticleCollectParam) {
const res = await request.get<ApiResult<ArticleCollect[]>>(
MODULES_API_URL + '/gx/article-collect',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addArticleCollect(data: ArticleCollect) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gx/article-collect',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateArticleCollect(data: ArticleCollect) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gx/article-collect',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeArticleCollect(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/article-collect/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchArticleCollect(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/article-collect/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getArticleCollect(id: number) {
const res = await request.get<ApiResult<ArticleCollect>>(
MODULES_API_URL + '/gx/article-collect/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,31 +1,31 @@
import type { PageParam } from '@/api'; import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawLegalDocContent { export interface ArticleCollect {
// //
id?: number; id?: number;
// //
groupId?: number; articleId?: number;
//
content?: string;
// //
userId?: number; userId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
// 创建时间 // 注册时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
} }
/** /**
* *
*/ */
export interface LawLegalDocContentParam extends PageParam { export interface ArticleCollectParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { GxChatHistory, GxChatHistoryParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageGxChatHistory(params: GxChatHistoryParam) {
const res = await request.get<ApiResult<PageResult<GxChatHistory>>>(
MODULES_API_URL + '/gx/gx-chat-history/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listGxChatHistory(params?: GxChatHistoryParam) {
const res = await request.get<ApiResult<GxChatHistory[]>>(
MODULES_API_URL + '/gx/gx-chat-history',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addGxChatHistory(data: GxChatHistory) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-chat-history',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateGxChatHistory(data: GxChatHistory) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-chat-history',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeGxChatHistory(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-chat-history/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchGxChatHistory(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-chat-history/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getGxChatHistory(id: number) {
const res = await request.get<ApiResult<GxChatHistory>>(
MODULES_API_URL + '/gx/gx-chat-history/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -3,30 +3,28 @@ import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawFeedback { export interface GxChatHistory {
// //
id?: number; id?: number;
// //
chatId?: number;
//
conversationId?: string;
//
userId?: number; userId?: number;
// //
title?: string;
//
company?: string;
//
address?: string;
//
date?: string;
//
pics?: string;
//
video?: string;
//
content?: string; content?: string;
//
reply?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 商户编码
merchantCode?: string;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
// 创建时间 // 注册时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
@@ -35,7 +33,7 @@ export interface LawFeedback {
/** /**
* *
*/ */
export interface LawFeedbackParam extends PageParam { export interface GxChatHistoryParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -1,14 +1,14 @@
import request from '@/utils/request'; import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api'; import type { ApiResult, PageResult } from '@/api';
import type { LawOrgPeople, LawOrgPeopleParam } from './model'; import type { GxChatList, GxChatListParam } from './model';
import { MODULES_API_URL } from '@/config/setting'; import { MODULES_API_URL } from '@/config/setting';
/** /**
* *
*/ */
export async function pageLawOrgPeople(params: LawOrgPeopleParam) { export async function pageGxChatList(params: GxChatListParam) {
const res = await request.get<ApiResult<PageResult<LawOrgPeople>>>( const res = await request.get<ApiResult<PageResult<GxChatList>>>(
MODULES_API_URL + '/law/law-org-people/page', MODULES_API_URL + '/gx/gx-chat-list/page',
{ {
params params
} }
@@ -22,9 +22,9 @@ export async function pageLawOrgPeople(params: LawOrgPeopleParam) {
/** /**
* *
*/ */
export async function listLawOrgPeople(params?: LawOrgPeopleParam) { export async function listGxChatList(params?: GxChatListParam) {
const res = await request.get<ApiResult<LawOrgPeople[]>>( const res = await request.get<ApiResult<GxChatList[]>>(
MODULES_API_URL + '/law/law-org-people', MODULES_API_URL + '/gx/gx-chat-list',
{ {
params params
} }
@@ -38,9 +38,9 @@ export async function listLawOrgPeople(params?: LawOrgPeopleParam) {
/** /**
* *
*/ */
export async function addLawOrgPeople(data: LawOrgPeople) { export async function addGxChatList(data: GxChatList) {
const res = await request.post<ApiResult<unknown>>( const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-org-people', MODULES_API_URL + '/gx/gx-chat-list',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -52,9 +52,9 @@ export async function addLawOrgPeople(data: LawOrgPeople) {
/** /**
* *
*/ */
export async function updateLawOrgPeople(data: LawOrgPeople) { export async function updateGxChatList(data: GxChatList) {
const res = await request.put<ApiResult<unknown>>( const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-org-people', MODULES_API_URL + '/gx/gx-chat-list',
data data
); );
if (res.data.code === 0) { if (res.data.code === 0) {
@@ -66,9 +66,9 @@ export async function updateLawOrgPeople(data: LawOrgPeople) {
/** /**
* *
*/ */
export async function removeLawOrgPeople(id?: number) { export async function removeGxChatList(id?: number) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-org-people/' + id MODULES_API_URL + '/gx/gx-chat-list/' + id
); );
if (res.data.code === 0) { if (res.data.code === 0) {
return res.data.message; return res.data.message;
@@ -79,9 +79,9 @@ export async function removeLawOrgPeople(id?: number) {
/** /**
* *
*/ */
export async function removeBatchLawOrgPeople(data: (number | undefined)[]) { export async function removeBatchGxChatList(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>( const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-org-people/batch', MODULES_API_URL + '/gx/gx-chat-list/batch',
{ {
data data
} }
@@ -95,9 +95,9 @@ export async function removeBatchLawOrgPeople(data: (number | undefined)[]) {
/** /**
* id查询 * id查询
*/ */
export async function getLawOrgPeople(id: number) { export async function getGxChatList(id: number) {
const res = await request.get<ApiResult<LawOrgPeople>>( const res = await request.get<ApiResult<GxChatList>>(
MODULES_API_URL + '/law/law-org-people/' + id MODULES_API_URL + '/gx/gx-chat-list/' + id
); );
if (res.data.code === 0 && res.data.data) { if (res.data.code === 0 && res.data.data) {
return res.data.data; return res.data.data;

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api';
/**
*
*/
export interface GxChatList {
//
id?: number;
//
conversationId?: string;
//
uid?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 搜索条件
*/
export interface GxChatListParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { GxCoinLog, GxCoinLogParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询金币记录
*/
export async function pageGxCoinLog(params: GxCoinLogParam) {
const res = await request.get<ApiResult<PageResult<GxCoinLog>>>(
MODULES_API_URL + '/gx/gx-coin-log/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询金币记录列表
*/
export async function listGxCoinLog(params?: GxCoinLogParam) {
const res = await request.get<ApiResult<GxCoinLog[]>>(
MODULES_API_URL + '/gx/gx-coin-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加金币记录
*/
export async function addGxCoinLog(data: GxCoinLog) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-coin-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改金币记录
*/
export async function updateGxCoinLog(data: GxCoinLog) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-coin-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除金币记录
*/
export async function removeGxCoinLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-coin-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除金币记录
*/
export async function removeBatchGxCoinLog(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-coin-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询金币记录
*/
export async function getGxCoinLog(id: number) {
const res = await request.get<ApiResult<GxCoinLog>>(
MODULES_API_URL + '/gx/gx-coin-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 金币记录
*/
export interface GxCoinLog {
//
id?: number;
//
orderNo?: string;
//
userId?: number;
// +/-
type?: string;
//
num?: number;
// 描述
desc?: string;
//
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
//
paidNo?: string;
// 0待支付 1已支付
status?: number;
}
/**
* 金币记录搜索条件
*/
export interface GxCoinLogParam extends PageParam {
id?: number;
// 用户id
userId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { GxFeedback, GxFeedbackParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageGxFeedback(params: GxFeedbackParam) {
const res = await request.get<ApiResult<PageResult<GxFeedback>>>(
MODULES_API_URL + '/gx/gx-feedback/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listGxFeedback(params?: GxFeedbackParam) {
const res = await request.get<ApiResult<GxFeedback[]>>(
MODULES_API_URL + '/gx/gx-feedback',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addGxFeedback(data: GxFeedback) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-feedback',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateGxFeedback(data: GxFeedback) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-feedback',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeGxFeedback(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-feedback/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchGxFeedback(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-feedback/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getGxFeedback(id: number) {
const res = await request.get<ApiResult<GxFeedback>>(
MODULES_API_URL + '/gx/gx-feedback/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
*
*/
export interface GxFeedback {
//
id?: number;
// 功能体验
funcExp?: string;
// 咨询体验
advisoryExp?: string;
//
comments?: string;
//
userId?: number;
//
sortNumber?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 搜索条件
*/
export interface GxFeedbackParam extends PageParam {
id?: number;
keywords?: string;
}

141
src/api/gx/gxRole/index.ts Normal file
View File

@@ -0,0 +1,141 @@
import request from "@/utils/request";
import type { ApiResult, PageResult } from "@/api";
import type { GxRole, GxRoleParam } from "./model";
import { MODULES_API_URL } from "@/config/setting";
/**
* 分页查询
*/
export async function pageGxRole(params: GxRoleParam) {
const res = await request.get<ApiResult<PageResult<GxRole>>>(
MODULES_API_URL + "/gx/gx-role/page",
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listGxRole(params?: GxRoleParam) {
const res = await request.get<ApiResult<GxRole[]>>(
MODULES_API_URL + "/gx/gx-role",
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addGxRole(data: GxRole) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + "/gx/gx-role",
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateGxRole(data: GxRole) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + "/gx/gx-role",
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeGxRole(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + "/gx/gx-role/" + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchGxRole(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + "/gx/gx-role/batch",
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getGxRole(id: number) {
const res = await request.get<ApiResult<GxRole>>(
MODULES_API_URL + "/gx/gx-role/" + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export interface VoiceMakeParam {
voice: string;
text: string;
emo?: string;
}
export type VoiceMakeResult =
| string
| {
url?: string;
audioUrl?: string;
src?: string;
path?: string;
};
/**
* 角色音色试听
*/
export async function makeVoice(params: VoiceMakeParam) {
const { voice, text, emo } = params;
const res = await request.post<ApiResult<VoiceMakeResult | undefined>>(
`${MODULES_API_URL}/voice/make`,
{
text,
content: text,
emo,
voice
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
/**
*
*/
export interface GxRole {
//
id?: number;
// 角色名称
roleName?: string;
// 提示词
prompt?: string;
// 角色描述
roleDesc?: string;
// 角色头像
avatar?: string;
// 背景图片
bgImage?: string;
// 音色
voice?: string;
// 情绪
emo?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 注册时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 搜索条件
*/
export interface GxRoleParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { GxSignLog, GxSignLogParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageGxSignLog(params: GxSignLogParam) {
const res = await request.get<ApiResult<PageResult<GxSignLog>>>(
MODULES_API_URL + '/gx/gx-sign-log/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listGxSignLog(params?: GxSignLogParam) {
const res = await request.get<ApiResult<GxSignLog[]>>(
MODULES_API_URL + '/gx/gx-sign-log',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addGxSignLog(data: GxSignLog) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-sign-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateGxSignLog(data: GxSignLog) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-sign-log',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeGxSignLog(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-sign-log/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchGxSignLog(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gx/gx-sign-log/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getGxSignLog(id: number) {
const res = await request.get<ApiResult<GxSignLog>>(
MODULES_API_URL + '/gx/gx-sign-log/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,33 +1,33 @@
import type { PageParam } from '@/api'; import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawLegalCalType { export interface GxSignLog {
// //
id?: number; id?: number;
// //
icon?: string;
//
title?: string;
// 类型
sortNumber?: number;
//
userId?: number; userId?: number;
//
date?: string;
//
sortNumber?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
// 创建时间 // 注册时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
} }
/** /**
* *
*/ */
export interface LawLegalCalTypeParam extends PageParam { export interface GxSignLogParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,79 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClassInfo, ClassImportItem, ClassInfoParam } from './model';
export async function pageClassInfo(params: ClassInfoParam) {
const res = await request.get<ApiResult<PageResult<ClassInfo>>>(
'/gxmu/class/page',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function listClassInfo(params?: ClassInfoParam) {
const res = await request.get<ApiResult<ClassInfo[]>>('/gxmu/class', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function getClassInfo(id: number) {
const res = await request.get<ApiResult<ClassInfo>>('/gxmu/class/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function addClassInfo(data: ClassInfo) {
const res = await request.post<ApiResult<unknown>>('/gxmu/class', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function updateClassInfo(data: ClassInfo) {
const res = await request.put<ApiResult<unknown>>('/gxmu/class', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function removeClassInfo(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/class/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function removeBatchClassInfo(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/class/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function importClassInfo(data: ClassImportItem[]) {
const res = await request.post<ApiResult<unknown>>(
'/gxmu/class/import',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api';
export interface ClassInfo {
id?: number;
collegeId?: number;
collegeName?: string;
classCode?: string;
className?: string;
gradeYear?: number;
counselorName?: string;
counselorPhone?: string;
studentCount?: number;
sortNumber?: number;
status?: number;
remark?: string;
createTime?: string;
updateTime?: string;
}
export interface ClassImportItem {
collegeName?: string;
classCode?: string;
className?: string;
gradeYear?: number;
counselorName?: string;
counselorPhone?: string;
studentCount?: number;
sortNumber?: number;
status?: number;
remark?: string;
}
export interface ClassInfoParam extends PageParam {
id?: number;
collegeId?: number;
classCode?: string;
className?: string;
gradeYear?: number;
status?: number;
keywords?: string;
}

View File

@@ -0,0 +1,68 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { College, CollegeParam } from './model';
export async function pageCollege(params: CollegeParam) {
const res = await request.get<ApiResult<PageResult<College>>>(
'/gxmu/college/page',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function listCollege(params?: CollegeParam) {
const res = await request.get<ApiResult<College[]>>('/gxmu/college', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function getCollege(id: number) {
const res = await request.get<ApiResult<College>>('/gxmu/college/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function addCollege(data: College) {
const res = await request.post<ApiResult<unknown>>('/gxmu/college', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function updateCollege(data: College) {
const res = await request.put<ApiResult<unknown>>('/gxmu/college', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function removeCollege(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/college/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function removeBatchCollege(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/college/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,24 @@
import type { PageParam } from '@/api';
export interface College {
id?: number;
collegeCode?: string;
collegeName?: string;
shortName?: string;
leaderName?: string;
leaderPhone?: string;
sortNumber?: number;
status?: number;
remark?: string;
classCount?: number;
createTime?: string;
updateTime?: string;
}
export interface CollegeParam extends PageParam {
id?: number;
collegeCode?: string;
collegeName?: string;
status?: number;
keywords?: string;
}

View File

@@ -0,0 +1,55 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
CrossSchoolActivityArticle,
CrossSchoolActivityArticleParam
} from './model';
/**
* 分页查询跨校活动情报文章
*/
export async function pageCrossSchoolActivityArticle(
params: CrossSchoolActivityArticleParam
) {
const res = await request.get<ApiResult<PageResult<CrossSchoolActivityArticle>>>(
'/gxmu/cross-school-activity-article/page',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询跨校活动情报文章
*/
export async function listCrossSchoolActivityArticle(
params?: CrossSchoolActivityArticleParam
) {
const res = await request.get<ApiResult<CrossSchoolActivityArticle[]>>(
'/gxmu/cross-school-activity-article',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 同步跨校活动情报文章
*/
export async function syncCrossSchoolActivityArticle() {
const res = await request.post<ApiResult<number>>(
'/gxmu/cross-school-activity-article/sync'
);
if (res.data.code === 0) {
return res.data.data ?? 0;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,38 @@
import type { PageParam } from '@/api';
/**
* 跨校活动情报文章
*/
export interface CrossSchoolActivityArticle {
id?: number;
sourceKey?: string;
title?: string;
schoolName?: string;
category?: string;
heatLevel?: '高热' | '跟进' | '观察' | string;
sourceName?: string;
publishTime?: string;
summary?: string;
tags?: string;
coverImage?: string;
detailUrl?: string;
sourceUrl?: string;
highlight?: string;
contentText?: string;
lastSyncTime?: string;
createTime?: string;
updateTime?: string;
deleted?: number;
}
/**
* 跨校活动情报文章搜索条件
*/
export interface CrossSchoolActivityArticleParam extends PageParam {
id?: number;
title?: string;
schoolName?: string;
category?: string;
heatLevel?: string;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { Declare, DeclareParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询申报管理
*/
export async function pageDeclare(params: DeclareParam) {
const res = await request.get<ApiResult<PageResult<Declare>>>(
MODULES_API_URL + '/gxmu/declare/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询申报管理列表
*/
export async function listDeclare(params?: DeclareParam) {
const res = await request.get<ApiResult<Declare[]>>(
MODULES_API_URL + '/gxmu/declare',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加申报管理
*/
export async function addDeclare(data: Declare) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/declare',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改申报管理
*/
export async function updateDeclare(data: Declare) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/declare',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除申报管理
*/
export async function removeDeclare(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/declare/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除申报管理
*/
export async function removeBatchDeclare(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/declare/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询申报管理
*/
export async function getDeclare(id: number) {
const res = await request.get<ApiResult<Declare>>(
MODULES_API_URL + '/gxmu/declare/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,58 @@
import type { PageParam } from '@/api';
/**
* 申报管理
*/
export interface Declare {
//
id?: number;
//
title?: string;
//
year?: number;
//
module?: string;
// 挑战杯项目类型
projectType?: string | string[];
// 挑战杯项目分组
projectGroup?: string | string[];
// 挑战杯申报表项目类型
formProjectType?: string | string[];
// 挑战杯申报表项目分组
formProjectGroup?: string | string[];
// 挑战杯公开展示项目类型
publicProjectType?: string | string[];
// 挑战杯公开展示项目分组
publicProjectGroup?: string | string[];
//
startTime?: string;
//
endTime?: string;
// 用户ID
userId?: string;
// 租户ID
tenantId?: string;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
// 删除标记0未删 1已删
deleted?: number;
// 是否可申报
usable?: boolean;
}
/**
* 申报管理搜索条件
*/
export interface DeclareParam extends PageParam {
id?: number;
keywords?: string;
usable?: boolean;
projectType?: string;
projectGroup?: string;
formProjectType?: string;
formProjectGroup?: string;
publicProjectType?: string;
publicProjectGroup?: string;
}

View File

@@ -0,0 +1,19 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type { WxxzxTopicSemanticSearchItem } from './model';
/**
* 项目主题语义检索
*/
export async function searchProjectTopics(keyword: string, module?: string) {
const res = await request.get<ApiResult<WxxzxTopicSemanticSearchItem[]>>(
'/gxmu/wxxzx-form/semantic-search',
{
params: { keyword, module }
}
);
if (res.data.code === 0) {
return res.data.data || [];
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,10 @@
export interface WxxzxTopicSemanticSearchItem {
id: number;
module?: string;
moduleName?: string;
topicName?: string;
topicType?: string;
rationale?: string;
snippet?: string;
score?: number;
}

View File

@@ -0,0 +1,123 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { QmgcForm, QmgcFormParam } from './model';
/**
* 分页查询QmgcForm
*/
export async function pageQmgcForm(params: QmgcFormParam) {
const res = await request.get<ApiResult<PageResult<QmgcForm>>>(
'/gxmu/qmgc-form/page',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询QmgcForm
*/
export async function userPageQmgcForm(params: QmgcFormParam) {
const res = await request.get<ApiResult<PageResult<QmgcForm>>>(
'/gxmu/qmgc-form/userPage',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询QmgcForm列表
*/
export async function listQmgcForm(params?: QmgcFormParam) {
const res = await request.get<ApiResult<QmgcForm[]>>('/gxmu/qmgc-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询QmgcForm
*/
export async function getQmgcForm(id: number) {
const res = await request.get<ApiResult<QmgcForm>>('/gxmu/qmgc-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加QmgcForm
*/
export async function addQmgcForm(data: QmgcForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/qmgc-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改QmgcForm
*/
export async function updateQmgcForm(data: QmgcForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/qmgc-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除QmgcForm
*/
export async function removeQmgcForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/qmgc-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除QmgcForm
*/
export async function removeBatchQmgcForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/gxmu/qmgc-form/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出QmgcForm
*/
export async function exportQmgcForm(params?: QmgcFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/qmgc-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,48 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* QmgcForm
*/
export interface QmgcForm {
id?: number;
year?: string;
name?: string;
gender?: string;
nation?: string;
photo?: string;
birthMonth?: string;
politics?: string;
nativePlace?: string;
phone?: string;
wechat?: string;
email?: string;
qq?: string;
idCardNo?: string;
hobby?: string;
willingToWorkInGuangxi?: string;
schoolInfo?: string;
leaguePosition?: string;
resume?: string;
awards?: string;
academicPerformance?: string;
secondaryLeagueOpinion?: string;
secondaryLeagueOpinionDate?: string;
secondaryPartyOpinion?: string;
secondaryPartyOpinionDate?: string;
schoolLeagueOpinion?: string;
schoolLeagueOpinionDate?: string;
reviewList?: ReviewList[];
}
/**
* QmgcForm 搜索条件
*/
export interface QmgcFormParam extends PageParam {
id?: number;
year?: string;
name?: string;
phone?: string;
schoolInfo?: string;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ReviewFlow, ReviewFlowParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询审核流
*/
export async function pageReviewFlow(params: ReviewFlowParam) {
const res = await request.get<ApiResult<PageResult<ReviewFlow>>>(
MODULES_API_URL + '/gxmu/review-flow/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询审核流列表
*/
export async function listReviewFlow(params?: ReviewFlowParam) {
const res = await request.get<ApiResult<ReviewFlow[]>>(
MODULES_API_URL + '/gxmu/review-flow',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加审核流
*/
export async function addReviewFlow(data: ReviewFlow) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改审核流
*/
export async function updateReviewFlow(data: ReviewFlow) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除审核流
*/
export async function removeReviewFlow(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除审核流
*/
export async function removeBatchReviewFlow(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询审核流
*/
export async function getReviewFlow(id: number) {
const res = await request.get<ApiResult<ReviewFlow>>(
MODULES_API_URL + '/gxmu/review-flow/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,36 +1,37 @@
import type { PageParam } from "@/api"; import type { PageParam } from "@/api";
/** /**
* *
*/ */
export interface LawLegalDocType { export interface ReviewFlow {
// //
id?: number; id?: number;
// //
icon?: string;
//
title?: string; title?: string;
topContent?: string;
extraContent?: string;
comment?: string;
// 类型
sortNumber?: number;
// //
userId?: number; organizationId?: number;
//
level?: number;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
tenantId?: number; tenantId?: number;
reviewUserId?: number;
// 创建时间 // 创建时间
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
//
userId?: number;
organizationName?: string;
flows?: ReviewFlow[];
} }
/** /**
* *
*/ */
export interface LawLegalDocTypeParam extends PageParam { export interface ReviewFlowParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
withGroup?: boolean;
} }

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ReviewFlowConfig, ReviewFlowConfigParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询
*/
export async function pageReviewFlowConfig(params: ReviewFlowConfigParam) {
const res = await request.get<ApiResult<PageResult<ReviewFlowConfig>>>(
MODULES_API_URL + '/gxmu/review-flow-config/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询列表
*/
export async function listReviewFlowConfig(params?: ReviewFlowConfigParam) {
const res = await request.get<ApiResult<ReviewFlowConfig[]>>(
MODULES_API_URL + '/gxmu/review-flow-config',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function addReviewFlowConfig(data: ReviewFlowConfig) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow-config',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改
*/
export async function updateReviewFlowConfig(data: ReviewFlowConfig) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow-config',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除
*/
export async function removeReviewFlowConfig(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow-config/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除
*/
export async function removeBatchReviewFlowConfig(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-flow-config/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询
*/
export async function getReviewFlowConfig(id: number) {
const res = await request.get<ApiResult<ReviewFlowConfig>>(
MODULES_API_URL + '/gxmu/review-flow-config/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,21 +1,21 @@
import type { PageParam } from '@/api'; import type { PageParam } from '@/api';
/** /**
* *
*/ */
export interface LawLegalCalConfig { export interface ReviewFlowConfig {
// //
id?: number; id?: number;
// //
typeId?: number;
//
title?: string; title?: string;
// 类型 // 所属部门(机构)
type?: string; organizationId?: number;
// 内容 // 所属部门名称(后端可能返回)
answer?: string; organizationName?: string;
// // 流id
userId?: number; flowId?: number;
// 模块
module?: string;
// 是否删除, 0否, 1是 // 是否删除, 0否, 1是
deleted?: number; deleted?: number;
// 租户id // 租户id
@@ -24,12 +24,14 @@ export interface LawLegalCalConfig {
createTime?: string; createTime?: string;
// 修改时间 // 修改时间
updateTime?: string; updateTime?: string;
//
userId?: number;
} }
/** /**
* *
*/ */
export interface LawLegalCalConfigParam extends PageParam { export interface ReviewFlowConfigParam extends PageParam {
id?: number; id?: number;
keywords?: string; keywords?: string;
} }

View File

@@ -0,0 +1,122 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ReviewList, ReviewListParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询审核列表
*/
export async function pageReviewList(params: ReviewListParam) {
const res = await request.get<ApiResult<PageResult<ReviewList>>>(
MODULES_API_URL + '/gxmu/review-list/page',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 分页查询聚合后的审核列表
*/
export async function pageGroupReviewList(params: ReviewListParam) {
const res = await request.get<ApiResult<PageResult<ReviewList>>>(
MODULES_API_URL + '/gxmu/review-list/groupPage',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询审核列表列表
*/
export async function listReviewList(params?: ReviewListParam) {
const res = await request.get<ApiResult<ReviewList[]>>(
MODULES_API_URL + '/gxmu/review-list',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加审核列表
*/
export async function addReviewList(data: ReviewList) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-list',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改审核列表
*/
export async function updateReviewList(data: ReviewList) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-list',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除审核列表
*/
export async function removeReviewList(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-list/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除审核列表
*/
export async function removeBatchReviewList(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/gxmu/review-list/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询审核列表
*/
export async function getReviewList(id: number) {
const res = await request.get<ApiResult<ReviewList>>(
MODULES_API_URL + '/gxmu/review-list/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,51 @@
import type { PageParam } from '@/api';
/**
* 审核列表
*/
export interface ReviewList {
//
id?: number;
// 模块
module?: string;
// 模块名称
moduleName?: string;
// 业务名称
businessName?: string;
// 主键
pk?: number;
// 状态(0不通过 1通过)
status?: number;
// 审核意见
content?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
//
userId?: number;
//
sortNumber?: number;
// 审核人信息
user?: {
realName?: string;
username?: string;
};
// 聚合后的审核流
reviewFlowList?: ReviewList[];
}
/**
* 审核列表搜索条件
*/
export interface ReviewListParam extends PageParam {
backendAccess?: boolean;
id?: number;
keywords?: string;
module?: string;
pk?: number;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { SjqnForm, SjqnFormParam } from './model';
/**
* 分页查询SjqnForm
*/
export async function pageSjqnForm(params: SjqnFormParam) {
const res = await request.get<ApiResult<PageResult<SjqnForm>>>('/gxmu/sjqn-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询SjqnForm
*/
export async function userPageSjqnForm(params: SjqnFormParam) {
const res = await request.get<ApiResult<PageResult<SjqnForm>>>('/gxmu/sjqn-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询SjqnForm列表
*/
export async function listSjqnForm(params?: SjqnFormParam) {
const res = await request.get<ApiResult<SjqnForm[]>>('/gxmu/sjqn-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询SjqnForm
*/
export async function getSjqnForm(id: number) {
const res = await request.get<ApiResult<SjqnForm>>('/gxmu/sjqn-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加SjqnForm
*/
export async function addSjqnForm(data: SjqnForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/sjqn-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改SjqnForm
*/
export async function updateSjqnForm(data: SjqnForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/sjqn-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除SjqnForm
*/
export async function removeSjqnForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/sjqn-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除SjqnForm
*/
export async function removeBatchSjqnForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/sjqn-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出SjqnForm
*/
export async function exportSjqnForm(params?: SjqnFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/sjqn-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,40 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* SjqnForm
*/
export interface SjqnForm {
id?: number;
year?: string;
applyType?: string;
name?: string;
gender?: string;
birthMonth?: string;
nation?: string;
politics?: string;
education?: string;
position?: string;
title?: string;
unit?: string;
awards?: string;
experience?: string;
mainStory?: string;
leagueOpinion?: string;
partyOpinion?: string;
schoolOpinion?: string;
reviewList?: ReviewList[];
}
/**
* SjqnForm搜索条件
*/
export interface SjqnFormParam extends PageParam {
backendAccess?: boolean;
id?: number;
year?: string;
name?: string;
unit?: string;
applyType?: string;
keywords?: string;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { SjtbzbsjForm, SjtbzbsjFormParam } from './model';
/**
* 分页查询SjtbzbsjForm
*/
export async function pageSjtbzbsjForm(params: SjtbzbsjFormParam) {
const res = await request.get<ApiResult<PageResult<SjtbzbsjForm>>>('/gxmu/sjtbzbsj-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询SjtbzbsjForm
*/
export async function userPageSjtbzbsjForm(params: SjtbzbsjFormParam) {
const res = await request.get<ApiResult<PageResult<SjtbzbsjForm>>>('/gxmu/sjtbzbsj-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询SjtbzbsjForm列表
*/
export async function listSjtbzbsjForm(params?: SjtbzbsjFormParam) {
const res = await request.get<ApiResult<SjtbzbsjForm[]>>('/gxmu/sjtbzbsj-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询SjtbzbsjForm
*/
export async function getSjtbzbsjForm(id: number) {
const res = await request.get<ApiResult<SjtbzbsjForm>>('/gxmu/sjtbzbsj-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加SjtbzbsjForm
*/
export async function addSjtbzbsjForm(data: SjtbzbsjForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/sjtbzbsj-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改SjtbzbsjForm
*/
export async function updateSjtbzbsjForm(data: SjtbzbsjForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/sjtbzbsj-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除SjtbzbsjForm
*/
export async function removeSjtbzbsjForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/sjtbzbsj-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除SjtbzbsjForm
*/
export async function removeBatchSjtbzbsjForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/sjtbzbsj-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出SjtbzbsjForm
*/
export async function exportSjtbzbsjForm(params?: SjtbzbsjFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/sjtbzbsj-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* SjtbzbsjForm
*/
export interface SjtbzbsjForm {
id?: number;
year?: string;
name?: string;
gender?: string;
birthMonth?: string;
nation?: string;
politics?: string;
collegeClass?: string;
branch?: string;
eduEval?: string;
awards?: string;
experience?: string;
mainStory?: string;
leagueOpinion?: string;
partyOpinion?: string;
schoolOpinion?: string;
reviewList?: ReviewList[];
}
/**
* SjtbzbsjForm搜索条件
*/
export interface SjtbzbsjFormParam extends PageParam {
id?: number;
year?: string;
name?: string;
collegeClass?: string;
branch?: string;
keywords?: string;
}

View File

@@ -0,0 +1,169 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type {
TyglDataCenterRecord,
TyglDataCenterResult,
TyglForm,
TyglFormParam,
TyglGrowthArchive,
TyglMemberRecord
} from './model';
export interface TyglMemberRecordsPayload {
memberRecords?: TyglMemberRecord[];
}
export interface TyglGrowthArchivesPayload {
growthArchives?: TyglGrowthArchive[];
}
/**
* 分页查询TyglForm
*/
export async function pageTyglForm(params: TyglFormParam) {
const res = await request.get<ApiResult<PageResult<TyglForm>>>(
'/gxmu/tygl-form/page',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询TyglForm列表
*/
export async function listTyglForm(params?: TyglFormParam) {
const res = await request.get<ApiResult<TyglForm[]>>('/gxmu/tygl-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询TyglForm
*/
export async function getTyglForm(id: number) {
const res = await request.get<ApiResult<TyglForm>>('/gxmu/tygl-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询团员青年数据分析中心明细
*/
export async function getTyglDataCenterRecords() {
const res = await request.get<ApiResult<TyglDataCenterResult>>(
'/gxmu/tygl-form/data-center'
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加TyglForm
*/
export async function addTyglForm(data: TyglForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/tygl-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改TyglForm
*/
export async function updateTyglForm(data: TyglForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/tygl-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 更新团员记录
*/
export async function updateTyglMemberRecords(
id: number,
data: TyglMemberRecordsPayload
) {
const res = await request.put<ApiResult<unknown>>(
'/gxmu/tygl-form/member-records/' + id,
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 更新成长档案
*/
export async function updateTyglGrowthArchives(
id: number,
data: TyglGrowthArchivesPayload
) {
const res = await request.put<ApiResult<unknown>>(
'/gxmu/tygl-form/growth-archives/' + id,
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除TyglForm
*/
export async function removeTyglForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/tygl-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除TyglForm
*/
export async function removeBatchTyglForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/gxmu/tygl-form/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出TyglForm
*/
export async function exportTyglForm(params?: TyglFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/tygl-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,84 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
export interface TyglMemberRecord {
type?: string;
content?: string;
recordTime?: string;
}
export interface TyglGrowthArchive {
content?: string;
archiveTime?: string;
}
export interface TyglDataCenterRecord {
id?: number;
serialNo?: number;
name?: string;
gender?: string;
nation?: string;
phone?: string;
leaguePosition?: string;
archiveInCurrentOrg?: string;
joinMonth?: string;
joinYear?: string;
memberRecordCount?: number;
growthArchiveCount?: number;
profileStatus?: string;
}
export interface TyglDataCenterSummary {
memberCount?: number;
youthUnder28Count?: number;
memberYouthRatio?: string;
maleCount?: number;
femaleCount?: number;
genderRatio?: string;
archiveInOrgCount?: number;
completedProfileCount?: number;
}
export interface TyglDataCenterResult {
records?: TyglDataCenterRecord[];
summary?: TyglDataCenterSummary;
}
/**
* TyglForm
*/
export interface TyglForm {
id?: number;
serialNo?: number;
name?: string;
gender?: string;
nation?: string;
college?: string;
className?: string;
politics?: string;
phone?: string;
leaguePosition?: string;
branchOrganizationId?: number;
branchOrganizationName?: string;
idCardNo?: string;
birthDate?: string;
archiveInCurrentOrg?: string;
joinMonth?: string;
memberRecords?: TyglMemberRecord[];
growthArchives?: TyglGrowthArchive[];
reviewList?: ReviewList[];
}
/**
* TyglForm 搜索条件
*/
export interface TyglFormParam extends PageParam {
backendAccess?: boolean;
id?: number;
name?: string;
nation?: string;
phone?: string;
politics?: string;
leaguePosition?: string;
keywords?: string;
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
TzbProjectListRecord,
TzbProjectListRecordParam
} from './model';
/**
* 分页查询挑战杯项目库列表
*/
export async function pageTzbProjectList(params: TzbProjectListRecordParam) {
const res = await request.get<ApiResult<PageResult<TzbProjectListRecord>>>(
'/gxmu/tzb-project-list/page',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询挑战杯项目库列表
*/
export async function listTzbProjectList(
params?: TzbProjectListRecordParam
) {
const res = await request.get<ApiResult<TzbProjectListRecord[]>>(
'/gxmu/tzb-project-list',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据ID查询挑战杯项目库列表记录
*/
export async function getTzbProjectList(id: number) {
const res = await request.get<ApiResult<TzbProjectListRecord>>(
'/gxmu/tzb-project-list/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,38 @@
import type { PageParam } from '@/api';
/**
* 挑战杯项目库列表记录
*/
export interface TzbProjectListRecord {
id?: number;
sourceId?: number;
projectName?: string;
schoolName?: string;
awardName?: string;
matchYear?: number;
matchTerm?: string;
matchLevel?: string;
coverImage?: string;
detailUrl?: string;
sourceUrl?: string;
pageNo?: number;
lastSyncTime?: string;
createTime?: string;
updateTime?: string;
deleted?: number;
}
/**
* 挑战杯项目库列表搜索条件
*/
export interface TzbProjectListRecordParam extends PageParam {
id?: number;
sourceId?: number;
projectName?: string;
schoolName?: string;
awardName?: string;
matchYear?: number;
matchTerm?: string;
matchLevel?: string;
keywords?: string;
}

View File

@@ -0,0 +1,51 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type {
TzbTalentListRecord,
TzbTalentListRecordParam
} from './model';
/**
* 分页查询挑战杯人才库列表
*/
export async function pageTzbTalentList(params: TzbTalentListRecordParam) {
const res = await request.get<ApiResult<PageResult<TzbTalentListRecord>>>(
'/gxmu/tzb-talent-list/page',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询挑战杯人才库列表
*/
export async function listTzbTalentList(params?: TzbTalentListRecordParam) {
const res = await request.get<ApiResult<TzbTalentListRecord[]>>(
'/gxmu/tzb-talent-list',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据ID查询挑战杯人才库列表记录
*/
export async function getTzbTalentList(id: number) {
const res = await request.get<ApiResult<TzbTalentListRecord>>(
'/gxmu/tzb-talent-list/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,40 @@
import type { PageParam } from '@/api';
/**
* 挑战杯人才库列表记录
*/
export interface TzbTalentListRecord {
id?: number;
sourceId?: number;
personName?: string;
schoolName?: string;
talentType?: string;
projectName?: string;
awardName?: string;
matchTerm?: string;
matchLevel?: string;
coverImage?: string;
detailUrl?: string;
sourceUrl?: string;
pageNo?: number;
lastSyncTime?: string;
createTime?: string;
updateTime?: string;
deleted?: number;
}
/**
* 挑战杯人才库列表搜索条件
*/
export interface TzbTalentListRecordParam extends PageParam {
id?: number;
sourceId?: number;
personName?: string;
schoolName?: string;
talentType?: string;
projectName?: string;
awardName?: string;
matchTerm?: string;
matchLevel?: string;
keywords?: string;
}

View File

@@ -0,0 +1,126 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { TzbcyForm, TzbcyFormParam, TzbcyStatisticsResult } from './model';
/**
* 分页查询TzbcyForm
*/
export async function pageTzbcyForm(params: TzbcyFormParam) {
const res = await request.get<ApiResult<PageResult<TzbcyForm>>>(
'/gxmu/tzbcy-form/page',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询TzbcyForm
*/
export async function userPageTzbcyForm(params: TzbcyFormParam) {
const res = await request.get<ApiResult<PageResult<TzbcyForm>>>(
'/gxmu/tzbcy-form/userPage',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询TzbcyForm列表
*/
export async function listTzbcyForm(params?: TzbcyFormParam) {
const res = await request.get<ApiResult<TzbcyForm[]>>('/gxmu/tzbcy-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询TzbcyForm
*/
export async function getTzbcyForm(id: number) {
const res = await request.get<ApiResult<TzbcyForm>>('/gxmu/tzbcy-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加TzbcyForm
*/
export async function addTzbcyForm(data: TzbcyForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/tzbcy-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改TzbcyForm
*/
export async function updateTzbcyForm(data: TzbcyForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/tzbcy-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除TzbcyForm
*/
export async function removeTzbcyForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/gxmu/tzbcy-form/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除TzbcyForm
*/
export async function removeBatchTzbcyForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/gxmu/tzbcy-form/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询挑战杯数据统计
*/
export async function getTzbcyStatistics(params?: { year?: number }) {
const res = await request.get<ApiResult<TzbcyStatisticsResult>>(
'/gxmu/tzbcy-form/statistics',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,82 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
export interface TzbcyTeamMember {
name?: string;
gender?: string;
college?: string;
gradeMajor?: string;
phone?: string;
remark?: string;
}
export interface TzbcyAdvisor {
name?: string;
gender?: string;
college?: string;
title?: string;
duty?: string;
phone?: string;
}
export interface TzbcyForm {
id?: number;
year?: string;
provinceCity?: string;
schoolName?: string;
projectName?: string;
projectType?: string;
projectGroup?: string;
publicProjectType?: string;
publicProjectGroup?: string;
leader?: string;
phone?: string;
teamMembers?: TzbcyTeamMember[];
advisors?: TzbcyAdvisor[];
projectBrief?: string;
socialValue?: string;
practiceProcess?: string;
innovationMeaning?: string;
developmentProspect?: string;
teamCooperation?: string;
projectMaterials?: string;
otherProofs?: string;
projectSummary?: string;
teamIntro?: string;
teamSlogan?: string;
practiceLog?: string;
reviewList?: ReviewList[];
}
export interface TzbcyFormParam extends PageParam {
id?: number;
year?: string;
projectName?: string;
leader?: string;
schoolName?: string;
keywords?: string;
}
export interface TzbcyStatisticItem {
label: string;
value: number;
}
export interface TzbcyStatisticsSummary {
declarationCount: number;
participantCount: number;
advisorCount: number;
awardCount: number;
schoolCount: number;
}
export interface TzbcyStatisticsResult {
year?: number;
availableYears: number[];
summary: TzbcyStatisticsSummary;
awardCountDescription?: string;
yearDistribution: TzbcyStatisticItem[];
typeDistribution: TzbcyStatisticItem[];
groupDistribution: TzbcyStatisticItem[];
schoolDistribution: TzbcyStatisticItem[];
}

View File

@@ -0,0 +1,88 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type {
TzbcyMaterial,
TzbcyMaterialAuditParam,
TzbcyMaterialParam
} from './model';
export async function pageTzbcyMaterial(params: TzbcyMaterialParam) {
const res = await request.get<ApiResult<PageResult<TzbcyMaterial>>>(
'/gxmu/tzbcy-material/page',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function listTzbcyMaterial(params?: TzbcyMaterialParam) {
const res = await request.get<ApiResult<TzbcyMaterial[]>>(
'/gxmu/tzbcy-material',
{
params: { ...params, backendAccess: true }
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function addTzbcyMaterial(data: TzbcyMaterial) {
const res = await request.post<ApiResult<unknown>>(
'/gxmu/tzbcy-material',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function updateTzbcyMaterial(data: TzbcyMaterial) {
const res = await request.put<ApiResult<unknown>>(
'/gxmu/tzbcy-material',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function auditTzbcyMaterial(data: TzbcyMaterialAuditParam) {
const res = await request.put<ApiResult<unknown>>(
'/gxmu/tzbcy-material/audit',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function removeTzbcyMaterial(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/gxmu/tzbcy-material/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function exportTzbcyMaterial(params?: TzbcyMaterialParam) {
const res = await request.post<ApiResult<FileRecord>>(
'/gxmu/tzbcy-material/export',
{ ...params, backendAccess: true }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,39 @@
import type { PageParam } from '@/api';
export interface TzbcyMaterial {
id?: number;
formId?: number;
materialType?: string;
fileId?: number;
fileName?: string;
filePath?: string;
fileUrl?: string;
downloadUrl?: string;
fileSize?: number;
contentType?: string;
status?: number;
rejectReason?: string;
auditUserId?: number;
auditTime?: string;
userId?: number;
tenantId?: number;
createTime?: string;
updateTime?: string;
projectName?: string;
leader?: string;
}
export interface TzbcyMaterialParam extends PageParam {
id?: number;
formId?: number;
materialType?: string;
status?: number;
userId?: number;
backendAccess?: boolean;
}
export interface TzbcyMaterialAuditParam {
id?: number;
status?: number;
rejectReason?: string;
}

View File

@@ -0,0 +1,62 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { WorkLedger, WorkLedgerParam } from './model';
const createWorkLedgerApi = (baseUrl: string) => ({
async page(params: WorkLedgerParam) {
const res = await request.get<ApiResult<PageResult<WorkLedger>>>(
`${baseUrl}/page`,
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
},
async userPage(params: WorkLedgerParam) {
const res = await request.get<ApiResult<PageResult<WorkLedger>>>(
`${baseUrl}/userPage`,
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
},
async get(id: number) {
const res = await request.get<ApiResult<WorkLedger>>(`${baseUrl}/${id}`);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
},
async add(data: WorkLedger) {
const res = await request.post<ApiResult<unknown>>(baseUrl, data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
},
async update(data: WorkLedger) {
const res = await request.put<ApiResult<unknown>>(baseUrl, data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
},
async remove(id?: number) {
const res = await request.delete<ApiResult<unknown>>(`${baseUrl}/${id}`);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
});
export const leagueCommitteeLedgerApi = createWorkLedgerApi(
'/gxmu/league-committee-ledger'
);
export const leagueBranchLedgerApi = createWorkLedgerApi(
'/gxmu/league-branch-ledger'
);

View File

@@ -0,0 +1,237 @@
import type { PageParam } from '@/api';
export interface WorkLedgerCommitteeMember {
name?: string;
gender?: string;
birthMonth?: string;
politics?: string;
leagueDuty?: string;
partTimeWork?: string;
}
export interface WorkLedgerFeeRecord {
date?: string;
purpose?: string;
income?: string;
expense?: string;
balance?: string;
}
export interface WorkLedgerSubordinateOrg {
branchName?: string;
leaderName?: string;
phone?: string;
memberCount?: string;
youthCount?: string;
feeCount?: string;
paidCount?: string;
}
export interface WorkLedgerHonorRecord {
honorName?: string;
awardTime?: string;
winner?: string;
rewardSituation?: string;
remark?: string;
}
export interface WorkLedgerActivistRecommendation {
name?: string;
gender?: string;
nation?: string;
birthMonth?: string;
classMajor?: string;
currentDuty?: string;
}
export interface WorkLedgerDisciplineRecord {
name?: string;
time?: string;
handlingType?: string;
reason?: string;
}
export interface WorkLedgerMeetingRecord {
meetingName?: string;
meetingTheme?: string;
time?: string;
location?: string;
host?: string;
attendees?: string;
absentees?: string;
content?: string;
recorder?: string;
}
export interface WorkLedgerActivityRecord {
activityName?: string;
activityTheme?: string;
activityTime?: string;
location?: string;
participants?: string;
content?: string;
recorder?: string;
}
export interface WorkLedgerEducationEvaluation {
branchName?: string;
name?: string;
result?: string;
remark?: string;
}
export interface WorkLedgerBranchOverviewMember {
name?: string;
phone?: string;
}
export interface WorkLedgerBranchCommitteeMember {
name?: string;
gender?: string;
birthMonth?: string;
politics?: string;
leagueDuty?: string;
partTimeWork?: string;
}
export interface WorkLedgerLeagueMemberRegister {
name?: string;
gender?: string;
birthMonth?: string;
nation?: string;
joinMonth?: string;
leagueDuty?: string;
workDuty?: string;
remark?: string;
}
export interface WorkLedgerYouthRegister {
name?: string;
gender?: string;
birthMonth?: string;
nation?: string;
workDuty?: string;
remark?: string;
}
export interface WorkLedgerBranchHonorRecord {
honorName?: string;
awardTime?: string;
winner?: string;
rewardSituation?: string;
remark?: string;
}
export interface WorkLedgerMemberFeeRecord {
name?: string;
januaryAmount?: string;
februaryAmount?: string;
marchAmount?: string;
aprilAmount?: string;
mayAmount?: string;
juneAmount?: string;
julyAmount?: string;
augustAmount?: string;
septemberAmount?: string;
octoberAmount?: string;
novemberAmount?: string;
decemberAmount?: string;
totalAmount?: string;
}
export interface WorkLedgerBranchMeetingRecord {
meetingName?: string;
meetingTheme?: string;
time?: string;
location?: string;
host?: string;
attendees?: string;
absentees?: string;
content?: string;
recorder?: string;
}
export interface WorkLedgerBranchActivityRecord {
activityName?: string;
activityTheme?: string;
activityTime?: string;
location?: string;
participants?: string;
content?: string;
recorder?: string;
}
export interface WorkLedgerBranchEducationEvaluation {
name?: string;
excellent?: string;
qualified?: string;
basicallyQualified?: string;
unqualified?: string;
remark?: string;
}
export interface WorkLedger {
id?: number;
ledgerType?: string;
unitName?: string;
responsiblePerson?: string;
useStartMonth?: string;
useEndMonth?: string;
secretaryName?: string;
branchCount?: string;
memberTotal?: string;
facultyMemberCount?: string;
studentMemberCount?: string;
minorityMemberCount?: string;
femaleMemberCount?: string;
youth14To28Count?: string;
youth29To35Count?: string;
cadreTotal?: string;
facultyCadreCount?: string;
studentCadreCount?: string;
lastElectionTime?: string;
feeBalance?: string;
firstHalfFeeDue?: string;
firstHalfFeePaid?: string;
secondHalfFeeDue?: string;
secondHalfFeePaid?: string;
schoolSocietyConnectionRate?: string;
smartLeagueEntryRate?: string;
branchSecretaryName?: string;
branchSecretaryPhone?: string;
totalPeopleCount?: string;
partyMemberCount?: string;
youthCount?: string;
leagueYouthRatio?: string;
branchAnnualSummary?: string;
standardLevel?: string;
annualSummary?: string;
committeeMembers?: WorkLedgerCommitteeMember[];
feeRecords?: WorkLedgerFeeRecord[];
subordinateOrgs?: WorkLedgerSubordinateOrg[];
honorRecords?: WorkLedgerHonorRecord[];
activistRecommendations?: WorkLedgerActivistRecommendation[];
disciplineRecords?: WorkLedgerDisciplineRecord[];
meetingRecords?: WorkLedgerMeetingRecord[];
activityRecords?: WorkLedgerActivityRecord[];
educationEvaluations?: WorkLedgerEducationEvaluation[];
branchCommitteeMembers?: WorkLedgerBranchCommitteeMember[];
leagueMemberRegisters?: WorkLedgerLeagueMemberRegister[];
youthRegisters?: WorkLedgerYouthRegister[];
branchHonorRecords?: WorkLedgerBranchHonorRecord[];
memberFeeRecords?: WorkLedgerMemberFeeRecord[];
branchMeetingRecords?: WorkLedgerBranchMeetingRecord[];
branchActivityRecords?: WorkLedgerBranchActivityRecord[];
branchEducationEvaluations?: WorkLedgerBranchEducationEvaluation[];
year?: number | string;
createTime?: string;
updateTime?: string;
}
export interface WorkLedgerParam extends PageParam {
id?: number;
unitName?: string;
responsiblePerson?: string;
year?: number | string;
keywords?: string;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { WshqtwForm, WshqtwFormParam } from './model';
/**
* 分页查询WshqtwForm
*/
export async function pageWshqtwForm(params: WshqtwFormParam) {
const res = await request.get<ApiResult<PageResult<WshqtwForm>>>('/gxmu/wshqtw-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询WshqtwForm
*/
export async function userPageWshqtwForm(params: WshqtwFormParam) {
const res = await request.get<ApiResult<PageResult<WshqtwForm>>>('/gxmu/wshqtw-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询WshqtwForm列表
*/
export async function listWshqtwForm(params?: WshqtwFormParam) {
const res = await request.get<ApiResult<WshqtwForm[]>>('/gxmu/wshqtw-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询WshqtwForm
*/
export async function getWshqtwForm(id: number) {
const res = await request.get<ApiResult<WshqtwForm>>('/gxmu/wshqtw-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加WshqtwForm
*/
export async function addWshqtwForm(data: WshqtwForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/wshqtw-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改WshqtwForm
*/
export async function updateWshqtwForm(data: WshqtwForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/wshqtw-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除WshqtwForm
*/
export async function removeWshqtwForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wshqtw-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除WshqtwForm
*/
export async function removeBatchWshqtwForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wshqtw-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出WshqtwForm
*/
export async function exportWshqtwForm(params?: WshqtwFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/wshqtw-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* WshqtwForm
*/
export interface WshqtwForm {
id?: number;
year?: string;
orgName?: string;
leader?: string;
phone?: string;
memberTotal?: string;
memberDeveloped2024?: string;
smartSystemLogin?: string;
committeeCount?: string;
fulltimeCadreCount?: string;
parttimeCadreCount?: string;
lastElectionTime?: string;
feeReceivable2024?: string;
feeReceived2024?: string;
feePayable2024?: string;
feePaid2024?: string;
branchCount?: string;
standardizedWork2024?: string;
recommendActivist2024?: string;
activistConfirmed?: string;
recommendDevTarget2024?: string;
devTargetConfirmed?: string;
honorsFiveYears?: string;
workSummaryThreeYears?: string;
partyOpinion?: string;
schoolOpinion?: string;
reviewList?: ReviewList[];
}
/**
* WshqtwForm搜索条件
*/
export interface WshqtwFormParam extends PageParam {
id?: number;
year?: string;
orgName?: string;
leader?: string;
phone?: string;
keywords?: string;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { WshqtzbForm, WshqtzbFormParam } from './model';
/**
* 分页查询WshqtzbForm
*/
export async function pageWshqtzbForm(params: WshqtzbFormParam) {
const res = await request.get<ApiResult<PageResult<WshqtzbForm>>>('/gxmu/wshqtzb-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询WshqtzbForm
*/
export async function userPageWshqtzbForm(params: WshqtzbFormParam) {
const res = await request.get<ApiResult<PageResult<WshqtzbForm>>>('/gxmu/wshqtzb-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询WshqtzbForm列表
*/
export async function listWshqtzbForm(params?: WshqtzbFormParam) {
const res = await request.get<ApiResult<WshqtzbForm[]>>('/gxmu/wshqtzb-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询WshqtzbForm
*/
export async function getWshqtzbForm(id: number) {
const res = await request.get<ApiResult<WshqtzbForm>>('/gxmu/wshqtzb-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加WshqtzbForm
*/
export async function addWshqtzbForm(data: WshqtzbForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/wshqtzb-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改WshqtzbForm
*/
export async function updateWshqtzbForm(data: WshqtzbForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/wshqtzb-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除WshqtzbForm
*/
export async function removeWshqtzbForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wshqtzb-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除WshqtzbForm
*/
export async function removeBatchWshqtzbForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wshqtzb-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出WshqtzbForm
*/
export async function exportWshqtzbForm(params?: WshqtzbFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/wshqtzb-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,52 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* WshqtzbForm
*/
export interface WshqtzbForm {
id?: number;
year?: string;
branchName?: string;
secondOrg?: string;
secretary?: string;
politics?: string;
contact?: string;
establishTime?: string;
lastElectionTime?: string;
smartSystemLogin?: string;
memberTotal?: string;
memberDeveloped2024?: string;
feeReceivable2024?: string;
feeReceived2024?: string;
feePayable2024?: string;
feePaid2024?: string;
recommendActivist2024?: string;
activistConfirmed?: string;
recommendDevTarget2024?: string;
devTargetConfirmed?: string;
branchCommitteeMeetingCount?: string;
branchMemberMeetingCount?: string;
eduEvalDone?: string;
annualRegDone?: string;
classCount?: string;
smartSystem100?: string;
honorsFiveYears?: string;
workSummaryThreeYears?: string;
leagueOpinion?: string;
partyOpinion?: string;
schoolOpinion?: string;
reviewList?: ReviewList[];
}
/**
* WshqtzbForm搜索条件
*/
export interface WshqtzbFormParam extends PageParam {
id?: number;
year?: string;
branchName?: string;
secretary?: string;
contact?: string;
keywords?: string;
}

View File

@@ -0,0 +1,187 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type {
WxxzxArchiveRecord,
WxxzxDocxValidationResult,
WxxzxForm,
WxxzxFormParam,
WxxzxProjectQualityReviewResult
} from './model';
export interface WxxzxMaterialsPayload {
fundingBudgetFile?: string;
fundingAllocationFile?: string;
midtermRemark?: string;
midtermMaterials?: string;
finalRemark?: string;
finalMaterials?: string;
archiveAwards?: string;
archiveProofs?: string;
archiveRecords?: WxxzxArchiveRecord[];
}
/**
* 分页查询WxxzxForm
*/
export async function pageWxxzxForm(params: WxxzxFormParam) {
const res = await request.get<ApiResult<PageResult<WxxzxForm>>>('/gxmu/wxxzx-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询WxxzxForm
*/
export async function userPageWxxzxForm(params: WxxzxFormParam) {
const res = await request.get<ApiResult<PageResult<WxxzxForm>>>('/gxmu/wxxzx-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询WxxzxForm列表
*/
export async function listWxxzxForm(params?: WxxzxFormParam) {
const res = await request.get<ApiResult<WxxzxForm[]>>('/gxmu/wxxzx-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询WxxzxForm
*/
export async function getWxxzxForm(id: number) {
const res = await request.get<ApiResult<WxxzxForm>>('/gxmu/wxxzx-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加WxxzxForm
*/
export async function addWxxzxForm(data: WxxzxForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/wxxzx-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改WxxzxForm
*/
export async function updateWxxzxForm(data: WxxzxForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/wxxzx-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 更新未来学术之星过程材料
*/
export async function updateWxxzxMaterials(
id: number,
data: WxxzxMaterialsPayload
) {
const res = await request.put<ApiResult<unknown>>(
'/gxmu/wxxzx-form/materials/' + id,
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 校验未来学术之星项目申报书 docx 文件格式
*/
export async function validateWxxzxProjectBook(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<WxxzxDocxValidationResult>>(
'/gxmu/wxxzx-form/validate-project-book',
formData
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 项目书质量初审
*/
export async function reviewWxxzxProjectBookQuality(
newProject: File,
customRubric?: File
) {
const formData = new FormData();
formData.append('newProject', newProject);
if (customRubric) {
formData.append('customRubric', customRubric);
}
const res = await request.post<ApiResult<WxxzxProjectQualityReviewResult>>(
'/ai/project-quality-review',
formData
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '项目书质量初审失败'));
}
/**
* 删除WxxzxForm
*/
export async function removeWxxzxForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wxxzx-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除WxxzxForm
*/
export async function removeBatchWxxzxForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/wxxzx-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出WxxzxForm
*/
export async function exportWxxzxForm(params?: WxxzxFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/wxxzx-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,123 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
export interface WxxzxGuidanceTeacher {
year?: string;
name?: string;
gender?: string;
title?: string;
dept?: string;
sign?: string;
}
export interface WxxzxApplicant {
year?: string;
name?: string;
grade?: string;
className?: string;
gender?: string;
major?: string;
role?: string;
}
export interface WxxzxBudget {
year?: string;
item?: string;
amount?: string;
reason?: string;
}
export interface WxxzxReviewMember {
year?: string;
name?: string;
gender?: string;
nation?: string;
politics?: string;
birthMonth?: string;
title?: string;
duty?: string;
department?: string;
remark?: string;
}
export interface WxxzxArchiveRecord {
id?: number;
year?: string;
awardName?: string;
awardTime?: string;
remark?: string;
proofFile?: string;
}
export interface WxxzxForm {
id?: number;
year?: string;
topicName?: string;
leader?: string;
collegeGradeClass?: string;
phone?: string;
advisor?: string;
topicType?: string;
guidanceTeachers?: WxxzxGuidanceTeacher[];
applicants?: WxxzxApplicant[];
budgets?: WxxzxBudget[];
rationale?: string;
teacherOpinion?: string;
teacherSign?: string;
reviewOpinion?: string;
reviewScore?: string;
reviewLeaderSign?: string;
collegeOpinion?: string;
schoolOpinion?: string;
promiseSigner?: string;
promiseSignature?: string;
reviewCollege?: string;
reviewReporter?: string;
reviewDate?: string;
reviewMembers?: WxxzxReviewMember[];
archiveRecords?: WxxzxArchiveRecord[];
fundingBudgetFile?: string;
fundingAllocationFile?: string;
midtermRemark?: string;
midtermMaterials?: string;
finalRemark?: string;
finalMaterials?: string;
archiveAwards?: string;
archiveProofs?: string;
reviewList?: ReviewList[];
}
export interface WxxzxDocxValidationItem {
rule: string;
passed: boolean;
detail: string;
suggestion?: string;
paragraphIndex?: number;
paragraphText?: string;
}
export interface WxxzxDocxValidationResult {
fileName?: string;
passed: boolean;
summary?: string;
totalIssues?: number;
items: WxxzxDocxValidationItem[];
}
export interface WxxzxProjectQualityReviewResult {
answer?: string;
taskId?: string;
workflowRunId?: string;
outputs?: Record<string, any>;
raw?: Record<string, any>;
[key: string]: any;
}
export interface WxxzxFormParam extends PageParam {
id?: number;
year?: string;
topicName?: string;
leader?: string;
collegeGradeClass?: string;
keywords?: string;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { YxgqtdgbForm, YxgqtdgbFormParam } from './model';
/**
* 分页查询YxgqtdgbForm
*/
export async function pageYxgqtdgbForm(params: YxgqtdgbFormParam) {
const res = await request.get<ApiResult<PageResult<YxgqtdgbForm>>>('/gxmu/yxgqtdgb-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询YxgqtdgbForm
*/
export async function userPageYxgqtdgbForm(params: YxgqtdgbFormParam) {
const res = await request.get<ApiResult<PageResult<YxgqtdgbForm>>>('/gxmu/yxgqtdgb-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询YxgqtdgbForm列表
*/
export async function listYxgqtdgbForm(params?: YxgqtdgbFormParam) {
const res = await request.get<ApiResult<YxgqtdgbForm[]>>('/gxmu/yxgqtdgb-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询YxgqtdgbForm
*/
export async function getYxgqtdgbForm(id: number) {
const res = await request.get<ApiResult<YxgqtdgbForm>>('/gxmu/yxgqtdgb-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加YxgqtdgbForm
*/
export async function addYxgqtdgbForm(data: YxgqtdgbForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/yxgqtdgb-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改YxgqtdgbForm
*/
export async function updateYxgqtdgbForm(data: YxgqtdgbForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/yxgqtdgb-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除YxgqtdgbForm
*/
export async function removeYxgqtdgbForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/yxgqtdgb-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除YxgqtdgbForm
*/
export async function removeBatchYxgqtdgbForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/yxgqtdgb-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出YxgqtdgbForm
*/
export async function exportYxgqtdgbForm(params?: YxgqtdgbFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/yxgqtdgb-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,42 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* YxgqtdgbForm
*/
export interface YxgqtdgbForm {
id?: number;
year?: string;
name?: string;
gender?: string;
nation?: string;
birthMonth?: string;
politics?: string;
position?: string;
identity?: string;
organization?: string;
contact?: string;
memberNo?: string;
currentDutyTime?: string;
cadreYears?: string;
assessment2024?: string;
volunteerRegTime?: string;
cadreExperience?: string;
honorsFiveYears?: string;
mainStory?: string;
leagueOpinion?: string;
partyOpinion?: string;
reviewList?: ReviewList[];
}
/**
* YxgqtdgbForm搜索条件
*/
export interface YxgqtdgbFormParam extends PageParam {
id?: number;
year?: string;
name?: string;
organization?: string;
contact?: string;
keywords?: string;
}

View File

@@ -0,0 +1,114 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { FileRecord } from '@/api/system/file/model';
import type { YxgqtyForm, YxgqtyFormParam } from './model';
/**
* 分页查询YxgqtyForm
*/
export async function pageYxgqtyForm(params: YxgqtyFormParam) {
const res = await request.get<ApiResult<PageResult<YxgqtyForm>>>('/gxmu/yxgqty-form/page', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 用户分页查询YxgqtyForm
*/
export async function userPageYxgqtyForm(params: YxgqtyFormParam) {
const res = await request.get<ApiResult<PageResult<YxgqtyForm>>>('/gxmu/yxgqty-form/userPage', {
params: { ...params, backendAccess: true }
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询YxgqtyForm列表
*/
export async function listYxgqtyForm(params?: YxgqtyFormParam) {
const res = await request.get<ApiResult<YxgqtyForm[]>>('/gxmu/yxgqty-form', {
params
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询YxgqtyForm
*/
export async function getYxgqtyForm(id: number) {
const res = await request.get<ApiResult<YxgqtyForm>>('/gxmu/yxgqty-form/' + id);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加YxgqtyForm
*/
export async function addYxgqtyForm(data: YxgqtyForm) {
const res = await request.post<ApiResult<unknown>>('/gxmu/yxgqty-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改YxgqtyForm
*/
export async function updateYxgqtyForm(data: YxgqtyForm) {
const res = await request.put<ApiResult<unknown>>('/gxmu/yxgqty-form', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除YxgqtyForm
*/
export async function removeYxgqtyForm(id?: number) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/yxgqty-form/' + id);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除YxgqtyForm
*/
export async function removeBatchYxgqtyForm(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>('/gxmu/yxgqty-form/batch', {
data
});
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出YxgqtyForm
*/
export async function exportYxgqtyForm(params?: YxgqtyFormParam) {
const res = await request.post<ApiResult<FileRecord>>('/gxmu/yxgqty-form/export', {
...params,
backendAccess: true
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
import type { ReviewList } from '@/api/gxmu/reviewList/model';
/**
* YxgqtyForm
*/
export interface YxgqtyForm {
id?: number;
year?: string;
name?: string;
gender?: string;
nation?: string;
politics?: string;
birthMonth?: string;
joinTime?: string;
collegeMajorClass?: string;
position?: string;
volunteerRegTime?: string;
eduEval2024?: string;
smartSystem?: string;
contact?: string;
totalVolunteerHours?: string;
volunteerHours2024?: string;
memberNo?: string;
honorsFiveYears?: string;
mainStory?: string;
leagueOpinion?: string;
partyOpinion?: string;
schoolOpinion?: string;
reviewList?: ReviewList[];
}
/**
* YxgqtyForm搜索条件
*/
export interface YxgqtyFormParam extends PageParam {
id?: number;
year?: string;
name?: string;
collegeMajorClass?: string;
contact?: string;
keywords?: string;
}

View File

@@ -1,116 +0,0 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { LawLegalAid, LawLegalAidParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询法律援助申请
*/
export async function pageLawLegalAid(params: LawLegalAidParam) {
const res = await request.get<ApiResult<PageResult<LawLegalAid>>>(
MODULES_API_URL + '/law/law-legal-aid/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询法律援助申请列表
*/
export async function listLawLegalAid(params?: LawLegalAidParam) {
const res = await request.get<ApiResult<LawLegalAid[]>>(
MODULES_API_URL + '/law/law-legal-aid',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加法律援助申请
*/
export async function addLawLegalAid(data: LawLegalAid) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-aid',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改法律援助申请
*/
export async function updateLawLegalAid(data: LawLegalAid) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-aid',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除法律援助申请
*/
export async function removeLawLegalAid(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-aid/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除法律援助申请
*/
export async function removeBatchLawLegalAid(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-aid/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询法律援助申请
*/
export async function getLawLegalAid(id: number) {
const res = await request.get<ApiResult<LawLegalAid>>(
MODULES_API_URL + '/law/law-legal-aid/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function lawLegalAidExport() {
const res = await request.post<ApiResult<LawLegalAid>>(
MODULES_API_URL + '/law/law-legal-aid/export'
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,43 +0,0 @@
import type { PageParam } from '@/api';
/**
* 法律援助申请
*/
export interface LawLegalAid {
//
id?: number;
//
userId?: number;
//
name?: string;
//
gender?: number;
//
phone?: string;
//
birthday?: string;
//
idCard?: string;
// 住所地址
liveAddress?: string;
// 户籍地址
householdAdderss?: string;
// 说明
content?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 法律援助申请搜索条件
*/
export interface LawLegalAidParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -1,106 +0,0 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { LawLegalAppraisal, LawLegalAppraisalParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询司法鉴定申请
*/
export async function pageLawLegalAppraisal(params: LawLegalAppraisalParam) {
const res = await request.get<ApiResult<PageResult<LawLegalAppraisal>>>(
MODULES_API_URL + '/law/law-legal-appraisal/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询司法鉴定申请列表
*/
export async function listLawLegalAppraisal(params?: LawLegalAppraisalParam) {
const res = await request.get<ApiResult<LawLegalAppraisal[]>>(
MODULES_API_URL + '/law/law-legal-appraisal',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加司法鉴定申请
*/
export async function addLawLegalAppraisal(data: LawLegalAppraisal) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-appraisal',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改司法鉴定申请
*/
export async function updateLawLegalAppraisal(data: LawLegalAppraisal) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-appraisal',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除司法鉴定申请
*/
export async function removeLawLegalAppraisal(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-appraisal/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除司法鉴定申请
*/
export async function removeBatchLawLegalAppraisal(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-appraisal/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询司法鉴定申请
*/
export async function getLawLegalAppraisal(id: number) {
const res = await request.get<ApiResult<LawLegalAppraisal>>(
MODULES_API_URL + '/law/law-legal-appraisal/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,47 +0,0 @@
import type { PageParam } from '@/api';
/**
* 司法鉴定申请
*/
export interface LawLegalAppraisal {
//
id?: number;
//
userId?: number;
//
name?: string;
//
gender?: number;
//
phone?: string;
//
birthday?: string;
//
idCard?: string;
// 住所地址
liveAddress?: string;
// 户籍地址
householdAddress?: string;
//
orgId?: number;
// 说明
content?: string;
// 详情
detail?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 司法鉴定申请搜索条件
*/
export interface LawLegalAppraisalParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -1,116 +0,0 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { LawLegalArbitrate, LawLegalArbitrateParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询法律仲裁申请
*/
export async function pageLawLegalArbitrate(params: LawLegalArbitrateParam) {
const res = await request.get<ApiResult<PageResult<LawLegalArbitrate>>>(
MODULES_API_URL + '/law/law-legal-arbitrate/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询法律仲裁申请列表
*/
export async function listLawLegalArbitrate(params?: LawLegalArbitrateParam) {
const res = await request.get<ApiResult<LawLegalArbitrate[]>>(
MODULES_API_URL + '/law/law-legal-arbitrate',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加法律仲裁申请
*/
export async function addLawLegalArbitrate(data: LawLegalArbitrate) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-arbitrate',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改法律仲裁申请
*/
export async function updateLawLegalArbitrate(data: LawLegalArbitrate) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-arbitrate',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除法律仲裁申请
*/
export async function removeLawLegalArbitrate(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-arbitrate/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除法律仲裁申请
*/
export async function removeBatchLawLegalArbitrate(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-arbitrate/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询法律仲裁申请
*/
export async function getLawLegalArbitrate(id: number) {
const res = await request.get<ApiResult<LawLegalArbitrate>>(
MODULES_API_URL + '/law/law-legal-arbitrate/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function lawLegalArbitrateExport() {
const res = await request.post<ApiResult<LawLegalArbitrate>>(
MODULES_API_URL + '/law/law-legal-arbitrate/export'
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -1,57 +0,0 @@
import type { PageParam } from '@/api';
/**
* 法律仲裁申请
*/
export interface LawLegalArbitrate {
//
id?: number;
//
userId?: number;
//
name?: string;
//
gender?: number;
//
phone?: string;
//
birthday?: string;
//
idCard?: string;
// 住所地址
liveAddress?: string;
// 户籍地址
householdAddress?: string;
// 事实和理由
content?: string;
// 仲裁请求
requestContent?: string;
// 被申请人
beenName?: string;
// 被申请人地址
beenAddress?: string;
// 被申请人代码
beenCode?: string;
// 被申请人联系方式
beenPhone?: string;
// 法定代表人
beenLegalName?: string;
// 职位
beenLegalPosition?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 法律仲裁申请搜索条件
*/
export interface LawLegalArbitrateParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -1,106 +0,0 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { LawLegalCalConfig, LawLegalCalConfigParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询法律计算器配置
*/
export async function pageLawLegalCalConfig(params: LawLegalCalConfigParam) {
const res = await request.get<ApiResult<PageResult<LawLegalCalConfig>>>(
MODULES_API_URL + '/law/law-legal-cal-config/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询法律计算器配置列表
*/
export async function listLawLegalCalConfig(params?: LawLegalCalConfigParam) {
const res = await request.get<ApiResult<LawLegalCalConfig[]>>(
MODULES_API_URL + '/law/law-legal-cal-config',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加法律计算器配置
*/
export async function addLawLegalCalConfig(data: LawLegalCalConfig) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-cal-config',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改法律计算器配置
*/
export async function updateLawLegalCalConfig(data: LawLegalCalConfig) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-cal-config',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除法律计算器配置
*/
export async function removeLawLegalCalConfig(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-cal-config/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除法律计算器配置
*/
export async function removeBatchLawLegalCalConfig(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/law/law-legal-cal-config/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询法律计算器配置
*/
export async function getLawLegalCalConfig(id: number) {
const res = await request.get<ApiResult<LawLegalCalConfig>>(
MODULES_API_URL + '/law/law-legal-cal-config/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

Some files were not shown because too many files have changed in this diff Show More