diff --git a/docs/按钮样式规范.md b/docs/按钮样式规范.md
index 882fb0f..00790d4 100644
--- a/docs/按钮样式规范.md
+++ b/docs/按钮样式规范.md
@@ -20,10 +20,11 @@
|---------|------|-------|------|---------|
| 主要操作 | `primary` | - | 蓝色实心 | 新增、保存、提交 |
| 查询 | `primary` | - | 蓝色实心 | 查询 |
-| 重置 | `primary` | ✓ | 蓝色边框 | 重置 |
+| 重置 | - | - | 灰色 | 重置 |
| 导出操作 | `warning` | ✓ | 橙色边框 | 导出、下载 |
| 导入操作 | `primary` | ✓ | 蓝色边框 | 导入、上传 |
| 设置操作 | `primary` | ✓ | 蓝色边框 | 设置、配置 |
+| 同步操作 | `primary` | ✓ | 蓝色边框 | 同步、连接 |
| 状态锁定 | - | - | 灰色 | 状态锁定、解锁 |
| 危险操作 | `danger` | - | 红色实心 | 删除、清空 |
@@ -39,14 +40,15 @@
```
### 2. Plain按钮(边框样式)
-- **使用场景**:重置、导出、导入、设置等次要操作
+- **使用场景**:重置、导出、导入、设置、同步等次要操作
- **代码**:`type="primary" plain` 或 `type="warning" plain`
```vue
-重置
+重置
导出
导入
设置
+同步
```
### 3. 设置按钮
@@ -57,7 +59,15 @@
设置
```
-### 4. 默认按钮(灰色)
+### 4. 同步按钮
+- **使用场景**:同步、连接等操作
+- **代码**:`type="primary" plain`
+
+```vue
+同步
+```
+
+### 5. 默认按钮(灰色)
- **使用场景**:状态锁定、解锁等中性操作
- **代码**:不设置 `type` 属性
@@ -65,7 +75,7 @@
状态锁定
```
-### 5. 表格操作列按钮(link)
+### 6. 表格操作列按钮(link)
- **使用场景**:表格操作列,使用 `link` 属性
- **代码**:`link` 属性,配合 `type` 使用
- **说明**:表格内的操作按钮统一使用 `link` 样式,节省空间
@@ -100,16 +110,18 @@
| 设置/配置 | `Setting` |
| 锁定/解锁 | `Lock` |
| 用户相关 | `User` |
-| 调动/转换 | `Switch`|
+| 调动/转换 | `Switch` |
+| 同步/连接 | `Connection` |
### 使用示例
```vue
新 增
查询
-重置
+重置
导出
导入
+同步
```
## 五、间距
@@ -122,6 +134,7 @@
重置
导出
导入
+同步
```
## 六、完整示例
@@ -149,8 +162,6 @@
重置
@@ -182,6 +193,15 @@
class="ml10"
@click="handleSetting">设置
+
+
+ 同步
+
```
diff --git a/src/api/admin/dict.ts b/src/api/admin/dict.ts
index 045cfd7..47270ed 100644
--- a/src/api/admin/dict.ts
+++ b/src/api/admin/dict.ts
@@ -18,14 +18,13 @@ export function getTypeValue(type: string | number) {
});
}
+
// 批量获取字典类型值
export function getDictsByTypes(types: string[]) {
return request({
url: '/admin/dict/item/typeList',
method: 'post',
- data: {
- typeList: types,
- },
+ data: types
});
}
diff --git a/src/api/admin/user.ts b/src/api/admin/user.ts
index e2f8abf..5133fc3 100644
--- a/src/api/admin/user.ts
+++ b/src/api/admin/user.ts
@@ -143,3 +143,14 @@ export function validatePhone(rule: any, value: any, callback: any, isEdit: bool
}
});
}
+
+/**
+ * 根据角色代码获取用户列表
+ */
+export function getUserListByRole(obj: string) {
+ return request({
+ url: '/admin/user/info/roleuser/' + obj,
+ method: 'get'
+ });
+}
+
diff --git a/src/api/asset/loading.ts b/src/api/asset/loading.ts
index ae1e312..39ce001 100644
--- a/src/api/asset/loading.ts
+++ b/src/api/asset/loading.ts
@@ -1,16 +1,15 @@
import { NextLoading } from '/@/utils/loading';
/**
- * 显示加载动画
+ * 显示加载状态
*/
export const showLoading = () => {
NextLoading.start();
};
/**
- * 隐藏加载动画
+ * 隐藏加载状态
*/
export const hideLoading = () => {
NextLoading.done();
};
-
diff --git a/src/api/finance/financenormalstu.ts b/src/api/finance/financenormalstu.ts
index debb406..79842fd 100644
--- a/src/api/finance/financenormalstu.ts
+++ b/src/api/finance/financenormalstu.ts
@@ -1,26 +1,208 @@
+/*
+ * Copyright (c) 2018-2025, cyweb All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ */
+
import request from '/@/utils/request';
/**
- * 更新缴费状态(单个学生)
- * @param data 包含 serialNumber 的对象
+ * 获取列表
+ * @param query 查询参数
*/
-export const updateFs = (data: { serialNumber: string }) => {
+export function fetchList(query?: any) {
return request({
- url: '/finance/financenormalstu/updateFs',
- method: 'post',
- data,
+ url: '/finance/financenormalstu/page',
+ method: 'get',
+ params: query
});
-};
+}
+
+/**
+ * 新增
+ * @param obj 对象数据
+ */
+export function addObj(obj: any) {
+ return request({
+ url: '/finance/financenormalstu',
+ method: 'post',
+ data: obj
+ });
+}
+
+/**
+ * 获取详情
+ * @param id ID
+ */
+export function getObj(id: string | number) {
+ return request({
+ url: '/finance/financenormalstu/' + id,
+ method: 'get'
+ });
+}
+
+/**
+ * 删除
+ * @param id ID
+ */
+export function delObj(id: string | number) {
+ return request({
+ url: '/finance/financenormalstu/' + id,
+ method: 'delete'
+ });
+}
+
+/**
+ * 更新
+ * @param obj 对象数据
+ */
+export function putObj(obj: any) {
+ return request({
+ url: '/finance/financenormalstu',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 班级提交
+ * @param obj 对象数据
+ */
+export function classSubmit(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/classSubmit',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 自动学费
+ * @param obj 对象数据
+ */
+export function autoXF(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/autoXF',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 获取学生信息
+ * @param obj 对象数据
+ */
+export function getStuInfo(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/getStuInfo',
+ method: 'post',
+ data: obj
+ });
+}
+
+/**
+ * 班级缴费
+ * @param obj 对象数据
+ */
+export function fsClass(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/fsClass',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 学生缴费
+ * @param obj 对象数据
+ */
+export function stuFs(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/stuFs',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 学生缴费2
+ * @param obj 对象数据
+ */
+export function stuFs2(obj: any) {
+ return request({
+ url: '/finance/financePay/stuFs',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 更新缴费状态
+ * @param obj 对象数据,包含 serialNumber
+ */
+export function updateFs(obj: any) {
+ return request({
+ url: '/finance/financePay/updateFs',
+ method: 'put',
+ data: obj
+ });
+}
/**
* 批量更新缴费状态
- * @param data 包含 year 和 stuSource 的对象
+ * @param obj 对象数据
*/
-export const updateAllFS = (data: { year: string; stuSource: string }) => {
+export function updateAllFS(obj: any) {
return request({
- url: '/finance/financenormalstu/updateAllFS',
- method: 'post',
- data,
+ url: '/finance/financePay/updateFsAll',
+ method: 'put',
+ data: obj
});
-};
+}
+/**
+ * 更新普通缴费状态
+ * @param obj 对象数据
+ */
+export function updateNoramlFs(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/updateNoramlFs',
+ method: 'put',
+ data: obj
+ });
+}
+
+/**
+ * 导出信息
+ * @param query 查询参数
+ */
+export function exportInfo(query?: any) {
+ return request({
+ url: '/finance/financenormalstu/exportInfo',
+ method: 'get',
+ params: query
+ });
+}
+
+/**
+ * 更新班级学费
+ * @param obj 对象数据
+ */
+export function updateClassXF(obj: any) {
+ return request({
+ url: '/finance/financenormalstu/updateClassXF',
+ method: 'put',
+ data: obj
+ });
+}
diff --git a/src/api/recruit/recruitprestudent.ts b/src/api/recruit/recruitprestudent.ts
index b9f8677..4546144 100644
--- a/src/api/recruit/recruitprestudent.ts
+++ b/src/api/recruit/recruitprestudent.ts
@@ -30,7 +30,7 @@ export const fetchListStatic = (query?: any) => {
*/
export const addObj = (obj: any) => {
return request({
- url: '/recruit/recruitprestudent',
+ url: '/recruit/recruitprestudent/add',
method: 'post',
data: obj,
});
@@ -42,7 +42,7 @@ export const addObj = (obj: any) => {
*/
export const addObjStu = (obj: any) => {
return request({
- url: '/recruit/recruitprestudent/saveStuData',
+ url: '/recruit/recruitprestudent/add',
method: 'post',
data: obj,
});
@@ -54,8 +54,9 @@ export const addObjStu = (obj: any) => {
*/
export const getObj = (id: string | number) => {
return request({
- url: `/recruit/recruitprestudent/${id}`,
+ url: `/recruit/recruitprestudent/getById`,
method: 'get',
+ params: {id:id}
});
};
@@ -65,8 +66,9 @@ export const getObj = (id: string | number) => {
*/
export const delObj = (id: string | number) => {
return request({
- url: `/recruit/recruitprestudent/${id}`,
- method: 'delete',
+ url: `/recruit/recruitprestudent/deleteById`,
+ method: 'post',
+ data:{id:id}
});
};
@@ -76,8 +78,8 @@ export const delObj = (id: string | number) => {
*/
export const putObj = (obj: any) => {
return request({
- url: '/recruit/recruitprestudent',
- method: 'put',
+ url: '/recruit/recruitprestudent/edit',
+ method: 'post',
data: obj,
});
};
@@ -89,7 +91,7 @@ export const putObj = (obj: any) => {
export const sureDJ = (obj: any) => {
return request({
url: '/recruit/recruitprestudent/sureDJ',
- method: 'put',
+ method: 'post',
data: obj,
});
};
diff --git a/src/api/recruit/recruitschoolcode.ts b/src/api/recruit/recruitschoolcode.ts
index 6c53b75..1704cc0 100644
--- a/src/api/recruit/recruitschoolcode.ts
+++ b/src/api/recruit/recruitschoolcode.ts
@@ -18,7 +18,7 @@ export const fetchList = (query?: any) => {
*/
export const addObj = (obj: any) => {
return request({
- url: '/recruit/recruitschoolcode',
+ url: '/recruit/recruitschoolcode/add',
method: 'post',
data: obj,
});
@@ -30,8 +30,9 @@ export const addObj = (obj: any) => {
*/
export const getObj = (id: string | number) => {
return request({
- url: `/recruit/recruitschoolcode/${id}`,
+ url: `/recruit/recruitschoolcode/getById`,
method: 'get',
+ params:{id:id}
});
};
@@ -41,8 +42,9 @@ export const getObj = (id: string | number) => {
*/
export const delObj = (id: string | number) => {
return request({
- url: `/recruit/recruitschoolcode/${id}`,
- method: 'delete',
+ url: `/recruit/recruitschoolcode/deleteById`,
+ method: 'post',
+ data:{id:id}
});
};
@@ -52,8 +54,8 @@ export const delObj = (id: string | number) => {
*/
export const putObj = (obj: any) => {
return request({
- url: '/recruit/recruitschoolcode',
- method: 'put',
+ url: '/recruit/recruitschoolcode/edit',
+ method: 'post',
data: obj,
});
};
diff --git a/src/api/recruit/recruitstudentplan.ts b/src/api/recruit/recruitstudentplan.ts
index effd89c..57591b2 100644
--- a/src/api/recruit/recruitstudentplan.ts
+++ b/src/api/recruit/recruitstudentplan.ts
@@ -60,6 +60,18 @@ export const putObj = (obj: any) => {
});
};
+/**
+ * 单字段快速更新
+ * @param obj
+ */
+export const editQuickField = (obj: any) => {
+ return request({
+ url: '/recruit/recruitstudentplan/editQuickField',
+ method: 'post',
+ data: obj,
+ });
+};
+
/**
diff --git a/src/api/recruit/recruitstudentplancorrectscoreconfig.ts b/src/api/recruit/recruitstudentplancorrectscoreconfig.ts
index f3cb553..26aa1bc 100644
--- a/src/api/recruit/recruitstudentplancorrectscoreconfig.ts
+++ b/src/api/recruit/recruitstudentplancorrectscoreconfig.ts
@@ -30,7 +30,7 @@ export const list = (query?: any) => {
*/
export const addObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentplancorrectscoreconfig',
+ url: '/recruit/recruitstudentplancorrectscoreconfig/add',
method: 'post',
data: obj,
});
@@ -42,8 +42,9 @@ export const addObj = (obj: any) => {
*/
export const getObj = (id: string | number) => {
return request({
- url: `/recruit/recruitstudentplancorrectscoreconfig/${id}`,
+ url: `/recruit/recruitstudentplancorrectscoreconfig/getById`,
method: 'get',
+ params:{id:id}
});
};
@@ -53,8 +54,9 @@ export const getObj = (id: string | number) => {
*/
export const delObj = (id: string | number) => {
return request({
- url: `/recruit/recruitstudentplancorrectscoreconfig/${id}`,
- method: 'delete',
+ url: `/recruit/recruitstudentplancorrectscoreconfig/deleteById`,
+ method: 'post',
+ data:{id:id}
});
};
@@ -64,8 +66,8 @@ export const delObj = (id: string | number) => {
*/
export const putObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentplancorrectscoreconfig',
- method: 'put',
+ url: '/recruit/recruitstudentplancorrectscoreconfig/edit',
+ method: 'post',
data: obj,
});
};
diff --git a/src/api/recruit/recruitstudentplangroup.ts b/src/api/recruit/recruitstudentplangroup.ts
index df62c43..03cf67b 100644
--- a/src/api/recruit/recruitstudentplangroup.ts
+++ b/src/api/recruit/recruitstudentplangroup.ts
@@ -16,7 +16,7 @@ export const fetchList = (query?: any) => {
* 列表
* @param query
*/
-export const list = (query?: any) => {
+export const getList = (query?: any) => {
return request({
url: '/recruit/recruitstudentplangroup/list',
method: 'get',
@@ -71,3 +71,15 @@ export const putObj = (obj: any) => {
data: obj,
});
};
+
+/**
+ * 更新
+ * @param obj
+ */
+export const editQuickField = (obj: any) => {
+ return request({
+ url: '/recruit/recruitstudentplangroup/editQuickField',
+ method: 'post',
+ data: obj,
+ });
+};
diff --git a/src/api/recruit/recruitstudentschool.ts b/src/api/recruit/recruitstudentschool.ts
index 516b980..154970b 100644
--- a/src/api/recruit/recruitstudentschool.ts
+++ b/src/api/recruit/recruitstudentschool.ts
@@ -54,7 +54,7 @@ export const areaSonList = (query?: any) => {
*/
export const addObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentschool',
+ url: '/recruit/recruitstudentschool/add',
method: 'post',
data: obj,
});
@@ -66,8 +66,9 @@ export const addObj = (obj: any) => {
*/
export const getObj = (id: string | number) => {
return request({
- url: `/recruit/recruitstudentschool/${id}`,
+ url: `/recruit/recruitstudentschool/getById`,
method: 'get',
+ params:{id:id}
});
};
@@ -77,8 +78,9 @@ export const getObj = (id: string | number) => {
*/
export const delObj = (id: string | number) => {
return request({
- url: `/recruit/recruitstudentschool/${id}`,
- method: 'delete',
+ url: `/recruit/recruitstudentschool/deleteByid`,
+ method: 'post',
+ data:{id:id}
});
};
@@ -88,8 +90,8 @@ export const delObj = (id: string | number) => {
*/
export const putObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentschool',
- method: 'put',
+ url: '/recruit/recruitstudentschool/edit',
+ method: 'post',
data: obj,
});
};
diff --git a/src/api/recruit/recruitstudentsignup.ts b/src/api/recruit/recruitstudentsignup.ts
index bf1b79f..010ad66 100644
--- a/src/api/recruit/recruitstudentsignup.ts
+++ b/src/api/recruit/recruitstudentsignup.ts
@@ -162,7 +162,7 @@ export const fetchListStuDorm = (query?: any) => {
*/
export const addObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentsignup',
+ url: '/recruit/recruitstudentsignup/add',
method: 'post',
data: obj,
});
@@ -289,8 +289,8 @@ export const delFw = (id: string | number) => {
*/
export const putObj = (obj: any) => {
return request({
- url: '/recruit/recruitstudentsignup',
- method: 'put',
+ url: '/recruit/recruitstudentsignup/edit',
+ method: 'post',
data: obj,
});
};
@@ -460,7 +460,7 @@ export const BMPGL = (ak: string) => {
return new Promise(function (resolve, reject) {
window.init = function () {
// eslint-disable-next-line
- resolve(BMapGL);
+ // resolve(BMapGL);
};
const script = document.createElement('script');
script.type = 'text/javascript';
diff --git a/src/api/stuwork/dormroom.ts b/src/api/stuwork/dormroom.ts
index 164aa91..abdeebd 100644
--- a/src/api/stuwork/dormroom.ts
+++ b/src/api/stuwork/dormroom.ts
@@ -87,15 +87,36 @@ export const fetchDormRoomTreeList = (dormdataType?: string) => {
});
};
-/**
- * 根据房间号查询宿舍数据
- * @param data 包含 roomNo 的对象
- */
-export const getDataByRoomNo = (data: { roomNo: string }) => {
+//宿舍房间
+export function dormRoomList() {
+ return request({
+ url:'/stuwork/dormroom/list',
+ method:'get'
+ })
+}
+
+
+export function dormRoomByRoleList() {
+ return request({
+ url:'/stuwork/dormroom/dormRoomByRoleList',
+ method:'get'
+ })
+}
+
+//根据楼号查宿舍
+export function getDormRoomDataByBuildingNo(query: any) {
+ return request({
+ url:'/stuwork/dormroom/getDormRoomDataByBuildingNo',
+ method:'get',
+ params: query
+ })
+}
+
+export function getDataByRoomNo(data: any) {
return request({
url: '/stuwork/dormroom/getDataByRoomNo',
- method: 'get',
- params: data
- });
-};
+ method:'get',
+ params:data
+ })
+}
diff --git a/src/components/DateRangePicker/index.vue b/src/components/DateRangePicker/index.vue
new file mode 100644
index 0000000..7394a56
--- /dev/null
+++ b/src/components/DateRangePicker/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ separator }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SearchForm/index.vue b/src/components/SearchForm/index.vue
index 95c23a1..17b2d18 100644
--- a/src/components/SearchForm/index.vue
+++ b/src/components/SearchForm/index.vue
@@ -84,17 +84,40 @@ const checkCollapsibleContent = () => {
}
// 否则,通过检查隐藏的检测元素是否有内容来判断
- // 需要等待 DOM 渲染完成
+ // 需要等待 DOM 渲染完成,可能需要多次尝试以确保数据加载完成
+ let retryCount = 0
+ const maxRetries = 5
+
+ const check = () => {
nextTick(() => {
+ setTimeout(() => {
if (detectionWrapperRef.value) {
// 检查检测元素是否有子元素(排除文本节点)
+ // 检查是否有 el-form-item 元素(因为表单项会被渲染为 el-form-item)
const hasContent = detectionWrapperRef.value.children.length > 0 ||
+ detectionWrapperRef.value.querySelector('.el-form-item') !== null ||
(!!detectionWrapperRef.value.textContent && detectionWrapperRef.value.textContent.trim() !== '')
+
+ if (hasContent || retryCount >= maxRetries) {
hasCollapsibleContent.value = hasContent
+ } else {
+ // 如果还没检测到内容且未达到最大重试次数,继续重试
+ retryCount++
+ setTimeout(check, 100)
+ }
+ } else {
+ if (retryCount < maxRetries) {
+ retryCount++
+ setTimeout(check, 100)
} else {
hasCollapsibleContent.value = false
}
+ }
+ }, 50)
})
+ }
+
+ check()
}
// 是否有需要折叠的项
diff --git a/src/config/global.ts b/src/config/global.ts
index 3c6f2a4..80c4684 100644
--- a/src/config/global.ts
+++ b/src/config/global.ts
@@ -2,23 +2,52 @@
* 全局常量配置
*/
-/**
- * 角色代码常量
- */
+/*角色标记*/
export const ROLE_CODE = {
- ROLE_RECRUIT: 'ROLE_RECRUIT',
- ROLE_RECRUIT_SECOND: 'ROLE_RECRUIT_SECOND'
+ "ROLE_ADMIN": "ROLE_ADMIN", //管理员
+ "ROLE_SUPPORT_MEMBER": "ROLE_SUPPORT_MEMBER", //后勤维修组人员
+ "ROLE_SUPPORT_LEADER": "ROLE_SUPPORT_LEADER",
+ "ROLE_TRAIN_AUDITOR": "ROLE_TRAIN_AUDITOR",
+ "ROLE_RECRUIT_SECOND": "ROLE_RECRUIT_SECOND",
+ "ROLE_RECRUIT": "ROLE_RECRUIT",
+ "ROLE_TRAIN_MONEY_ARRIVED": "ROLE_TRAIN_MONEY_ARRIVED", //培训处项目申报审批人
};
/**
- * 当前学期
- * 注意:这个值可能需要从后端获取或从配置中读取
+ * 流程类型
*/
-export const CURRENT_SCHOOL_TERM = '1'; // 默认值,实际应该从后端获取
+export const PROC_DEF_KEY = {
+ "TRAIN_PROJECT_MONEY_ARRIVED": "train_project_money_arrived",
+ "TRAIN_PROJECT_APPROVAL": "train_project_approval",
+ "ASSETS_TRANSFER": "assetsTransfer",
+ "ASSET_INVALID": "asset_invalid",
+ "process": "process",
+ "processWander": "processWander",
+};
+
+/*当前学年*/
+export const CURRENT_SCHOOL_YEAR = "2021-2022";
+
+/*当前学期*/
+export const CURRENT_SCHOOL_TERM = "2";
/**
- * 当前学年
- * 注意:这个值可能需要从后端获取或从配置中读取
+ * 流程状态
+ * 0: 等待部门审核
+ * 10: 等待部门审批
+ * 20: 审批通过
+ * -10: 经办人修改
+ * -20: 撤销申请
*/
-export const CURRENT_SCHOOL_YEAR = ''; // 默认值,实际应该从后端获取
+export const BXSTATUS = {
+ '0': '待审核',
+ '10': '待审批',
+ '20': '通过',
+ '-10': '驳回修改',
+ '-20': '撤销'
+};
+/**
+ * 前端URL
+ */
+export const FRONT_URL = "https://zhxy.czjsy.com";
diff --git a/src/hooks/dict.ts b/src/hooks/dict.ts
index a7f4c9a..779d148 100644
--- a/src/hooks/dict.ts
+++ b/src/hooks/dict.ts
@@ -1,29 +1,54 @@
import { dict } from '/@/stores/dict';
-import { getDicts } from '/@/api/admin/dict';
+import { getDictsByTypes } from '/@/api/admin/dict';
import { ref, toRefs } from 'vue';
/**
* 获取字典数据
+ * 支持批量获取,自动使用批量 API 减少请求次数
*/
export function useDict(...args: any): any {
const res = ref({});
return (() => {
+ // 初始化所有字典类型为空数组
args.forEach((dictType: String) => {
// @ts-ignore
res.value[dictType] = [];
+ });
+
+ // 分离已缓存和未缓存的字典类型
+ const cachedDicts: string[] = [];
+ const uncachedDicts: string[] = [];
+
+ args.forEach((dictType: String) => {
const dicts = dict().getDict(dictType);
if (dicts) {
// @ts-ignore
res.value[dictType] = dicts;
+ cachedDicts.push(dictType as string);
} else {
- getDicts(dictType).then((resp) => {
+ uncachedDicts.push(dictType as string);
+ }
+ });
+
+ // 如果有未缓存的字典,使用批量 API 获取
+ if (uncachedDicts.length > 0) {
+ getDictsByTypes(uncachedDicts).then((resp) => {
+ uncachedDicts.forEach((dictType: string) => {
// @ts-ignore
- res.value[dictType] = resp.data.map((p: any) => ({ label: p.label, value: p.value, elTagType: p.listClass, elTagClass: p.cssClass }));
+ const dictData = resp.data[dictType] || [];
+ // @ts-ignore
+ res.value[dictType] = dictData.map((p: any) => ({
+ label: p.label,
+ value: p.value,
+ elTagType: p.listClass,
+ elTagClass: p.cssClass
+ }));
// @ts-ignore
dict().setDict(dictType, res.value[dictType]);
});
+ });
}
- });
+
return toRefs(res.value);
})();
}
diff --git a/src/views/recruit/backSchoolCheckin/index.vue b/src/views/recruit/backSchoolCheckin/index.vue
index e97f078..7462fdf 100644
--- a/src/views/recruit/backSchoolCheckin/index.vue
+++ b/src/views/recruit/backSchoolCheckin/index.vue
@@ -20,10 +20,10 @@
-
+
-
+
@@ -54,4 +54,13 @@ const handleTabClick = (tab: any) => {
diff --git a/src/views/recruit/backSchoolCheckin/staticIndex.vue b/src/views/recruit/backSchoolCheckin/staticIndex.vue
index a2fef80..e3ff9cb 100644
--- a/src/views/recruit/backSchoolCheckin/staticIndex.vue
+++ b/src/views/recruit/backSchoolCheckin/staticIndex.vue
@@ -16,12 +16,12 @@
-->
-
-
-
-
+
+
+
+
-
+
查询
- 重置
+ 重置
+
-
+
+
{{ getPlanName(scope.row.groupId) }}
-
+
@@ -66,10 +69,8 @@
diff --git a/src/views/recruit/backSchoolCheckin/statistics.vue b/src/views/recruit/backSchoolCheckin/statistics.vue
index b073ae8..5f7d74c 100644
--- a/src/views/recruit/backSchoolCheckin/statistics.vue
+++ b/src/views/recruit/backSchoolCheckin/statistics.vue
@@ -101,7 +101,7 @@ import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { getDeptList } from '/@/api/basic/basicclass'
import { queryAllClass } from '/@/api/basic/basicclass'
import axios from 'axios'
@@ -153,7 +153,7 @@ const init = async () => {
// 查看所有入学年份
const getGradeData = async () => {
try {
- const data = await list()
+ const data = await getList()
gradeList.value = data.data || []
} catch (error) {
console.error('获取入学年份失败', error)
diff --git a/src/views/recruit/backSchoolCheckin/tabIndex.vue b/src/views/recruit/backSchoolCheckin/tabIndex.vue
index 76416d8..a42646f 100644
--- a/src/views/recruit/backSchoolCheckin/tabIndex.vue
+++ b/src/views/recruit/backSchoolCheckin/tabIndex.vue
@@ -16,12 +16,12 @@
-->
-
-
-
-
+
+
+
+
-
+
-
-
+
+
@@ -54,7 +54,7 @@
-
+
-
+
-
+
查询
- 重置
+ 重置
+
-
-
-
+
+
@@ -145,10 +148,10 @@
-
+
- {{ getDeptName(scope.row.xy) }}
+ {{ getDeptName(scope.row.deptCode) }}
@@ -162,7 +165,7 @@
- {{ getGender(scope.row.gender) }}
+
@@ -188,13 +191,16 @@
-
+
+
-
+
@@ -226,26 +232,24 @@
-
diff --git a/src/views/recruit/newstucheckin/index.vue b/src/views/recruit/newstucheckin/index.vue
index c0d6c9c..61914ab 100644
--- a/src/views/recruit/newstucheckin/index.vue
+++ b/src/views/recruit/newstucheckin/index.vue
@@ -19,32 +19,34 @@
-
+
查询
- 重置
-
- 导出
-
+ 重置
+
+
+
+ 导出
+
+
+
-
+
-
-
-
+
- {{ scope.row.gender === '1' ? '男' : scope.row.gender === '2' ? '女' : '' }}
+
+
+
+
+
+
@@ -88,7 +93,7 @@
-
+
@@ -125,12 +130,14 @@ import { ref, reactive, computed, onMounted, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
-import { useMessage, useMessageBox } from '/@/hooks/message'
+import { useMessage } from '/@/hooks/message'
import { fetchList } from '/@/api/recruit/newstucheckin'
import { getTypeValue } from '/@/api/admin/dict'
import request from '/@/utils/request'
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
+const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
+const GenderTag = defineAsyncComponent(() => import('/@/components/GenderTag/index.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
@@ -147,7 +154,6 @@ const permissions = computed(() => {
// 消息提示 hooks
const message = useMessage()
-const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
@@ -255,7 +261,7 @@ const getCheckInStatusData = async () => {
const data = await getTypeValue('check_in_status')
checkInStatusData.value = data.data || []
} catch (error) {
- console.error('获取报到状态字典失败', error)
+ // 获取报到状态字典失败
}
}
diff --git a/src/views/recruit/newstucheckin/statistics.vue b/src/views/recruit/newstucheckin/statistics.vue
index af50a42..44de9d0 100644
--- a/src/views/recruit/newstucheckin/statistics.vue
+++ b/src/views/recruit/newstucheckin/statistics.vue
@@ -101,7 +101,7 @@ import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { getDeptList } from '/@/api/basic/basicclass'
import { queryAllClass } from '/@/api/basic/basicclass'
import axios from 'axios'
@@ -153,7 +153,7 @@ const init = async () => {
// 查看所有入学年份
const getGradeData = async () => {
try {
- const data = await list()
+ const data = await getList()
gradeList.value = data.data || []
} catch (error) {
console.error('获取入学年份失败', error)
diff --git a/src/views/recruit/newstucheckin/stu-check-in.vue b/src/views/recruit/newstucheckin/stu-check-in.vue
index 05e6521..6bf2e40 100644
--- a/src/views/recruit/newstucheckin/stu-check-in.vue
+++ b/src/views/recruit/newstucheckin/stu-check-in.vue
@@ -94,7 +94,7 @@ import { ref, reactive, watch } from 'vue'
import { useMessage } from '/@/hooks/message'
import { getDataByRoomNo } from "/@/api/stuwork/dormroom"
import { fearchRoomStuNum } from "/@/api/stuwork/dormroomstudent"
-import { getDictByType } from "/@/api/contract/contract"
+import { getDicts } from "/@/api/admin/dict"
import { putObj } from '@/api/recruit/newstucheckin'
// Emits
@@ -222,7 +222,7 @@ const init = (formData: any, pageData: any) => {
remoteMethod(formData.roomNo)
fearchRoomStuNums(formData.bedNo)
}
- getDictByType('check_in_status').then(data => {
+ getDicts('check_in_status').then(data => {
checkInStatusData.value = data.data
})
console.log("OKKK")
diff --git a/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue b/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue
index 36b6782..c9b6cce 100644
--- a/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue
+++ b/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue
@@ -4,8 +4,9 @@
:close-on-click-modal="false"
v-model="visible"
append-to-body
+ width="600px"
>
-
+
-
+
-
+
-
+
-
+
-
+
+ :key="item.majorCode"
+ :label="item.majorName+' | '+item.learnYear+'年 | '+item.majorCode"
+ :value="item.majorCode">
@@ -97,9 +98,9 @@
diff --git a/src/views/recruit/recruitexampeople/index.vue b/src/views/recruit/recruitexampeople/index.vue
index 7cd2c1e..17ec062 100644
--- a/src/views/recruit/recruitexampeople/index.vue
+++ b/src/views/recruit/recruitexampeople/index.vue
@@ -27,7 +27,7 @@
-
+
查询
- 重置
+ 重置
@@ -71,7 +71,7 @@
-
+
{
try {
- await messageBox.confirm(`是否确认删除ID为${row.id}的记录?`)
+ await messageBox.confirm(`是否确认删除工号为${row.teacherNo}的记录?`)
await delObj(row.id)
message.success('删除成功')
getDataList()
diff --git a/src/views/recruit/recruitplanmajor/detaiform.vue b/src/views/recruit/recruitplanmajor/detaiform.vue
index 72a3cac..db750b2 100644
--- a/src/views/recruit/recruitplanmajor/detaiform.vue
+++ b/src/views/recruit/recruitplanmajor/detaiform.vue
@@ -4,8 +4,6 @@
:close-on-click-modal="false"
v-model="visible"
width="600px"
- destroy-on-close
-
>
@@ -20,14 +18,11 @@
-
-
+
+
-
-
-
-
-
+
+
@@ -39,8 +34,8 @@
-
-
+
+
-
-
+
+
{{ item.label }}
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -121,9 +114,9 @@ import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '/@/api/recruit/recruitstudentplan'
import { getDeptList } from '/@/api/basic/basicclass'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { getMajorNameList } from '/@/api/basic/major'
-import { getDicts } from '/@/api/admin/dict'
+import { getDictsByTypes } from '/@/api/admin/dict'
import { useDict } from '/@/hooks/dict'
// Emits
@@ -150,51 +143,42 @@ const majorYears = ref([])
const dataForm = reactive({
id: "",
groupId: "",
- zydm: "",
- zymc: "",
- zygfmc: "",
+ majorCode: "",
+ majorName: "",
deptCode: "",
- xz: "",
- cc: "",
+ learnYear: "",
+ majorLevel: "",
isZd: "0",
isOrder: "0",
remarks: "",
- offcialZydm: "",
+ stuworkMajorCode: "",
isUnion: "0",
tuitionFee: 0,
- cityPlanId: null as string | null,
- cityPlanIds: [] as string[],
- cityPlanName: "",
- cityPlanYear: "",
sort: 0
})
const dataRule = {
- zydm: [
+ majorCode: [
{ required: true, message: '专业代码不能为空', trigger: 'blur' },
{ min: 1, max: 6, message: '专业代码长度不大于6个字符', trigger: 'blur' }
],
tuitionFee: [
{ required: true, message: '学费不能为空', trigger: 'blur' }
],
- zymc: [
+ majorName: [
{ required: true, message: '专业名称不能为空', trigger: 'blur' },
{ min: 1, max: 200, message: '专业名称长度不大于200个字符', trigger: 'blur' }
],
- zygfmc: [
- { required: true, message: '专业规范名称不能为空', trigger: 'blur' },
- { min: 1, max: 200, message: '专业规范名称长度不大于200个字符', trigger: 'blur' }
- ],
groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }
],
- xz: [
+ learnYear: [
{ required: true, message: '学制不能为空', trigger: 'blur' }
],
deptCode: [
{ required: true, message: '学院不能为空', trigger: 'blur' }
],
- cc: [
+ majorLevel: [
{ required: true, message: '层次不能为空', trigger: 'blur' }
],
isOrder: [
@@ -227,21 +211,16 @@ const initData = () => {
getDeptList().then((data: any) => {
deptList.value = data.data
})
- list().then((data: any) => {
+ getList().then((data: any) => {
planList.value = data.data
- if (!dataForm.id) {
- dataForm.groupId = planList.value[0]?.id || ""
- }
})
getMajorNameList().then((data: any) => {
offcialZydmList.value = data.data
})
- // 获取数据字典
- getDicts('basic_major_years').then((res: any) => {
- majorYears.value = res.data || []
- })
- getDicts('basic_major_level').then((res: any) => {
- ccList.value = res.data || []
+ // 获取数据字典(一次获取多个)
+ getDictsByTypes(['basic_major_years', 'basic_major_level']).then((res: any) => {
+ majorYears.value = res.data?.basic_major_years || []
+ ccList.value = res.data?.basic_major_level || []
})
}
@@ -287,22 +266,39 @@ const dataFormSubmit = () => {
// 初始化方法
const init = (id: string | null) => {
- dataForm.id = id || ""
visible.value = true
canSubmit.value = true
- initData()
+ dataForm.id = ""
+
+ // 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields()
- if (dataForm.id) {
- getObj(dataForm.id).then((response: any) => {
+ })
+
+ initData()
+
+ // 获取详情数据
+ if (id) {
+ dataForm.id = id
+ getObj(id).then((response: any) => {
+ if (response && response.data) {
Object.assign(dataForm, response.data)
// 获取市平台对应年份下的招生计划
// getCityPlan({ id: dataForm.id }).then((data: any) => {
// cityPlanIdList.value = data.data
// })
- })
- }
- })
+ }
+ }).catch(() => {
+ // 错误处理
+ })
+ } else {
+ // 新增模式:设置默认招生计划
+ getList().then((data: any) => {
+ if (data.data && data.data.length > 0) {
+ dataForm.groupId = data.data[0]?.id || ""
+ }
+ })
+ }
}
// 暴露方法给父组件
diff --git a/src/views/recruit/recruitplanmajor/index.vue b/src/views/recruit/recruitplanmajor/index.vue
index 624fe39..fd6a32d 100644
--- a/src/views/recruit/recruitplanmajor/index.vue
+++ b/src/views/recruit/recruitplanmajor/index.vue
@@ -40,14 +40,14 @@
/>
-
-
+
+
-
-
+
+
-
-
+
+
查询
@@ -58,7 +58,7 @@
-
-
-
+
+
{{ getDeptName(scope.row.deptCode) }}
-
-
-
+
+
+
- {{ getYesNoLabel(scope.row.isOrder) }}
-
-
-
-
- {{ getYesNoLabel(scope.row.isZd) }}
-
-
-
-
- {{ getYesNoLabel(scope.row.isUnion) }}
+ {{ getYesNoLabel(scope.row.isOrder) }}|{{ getYesNoLabel(scope.row.isZd) }}|{{ getYesNoLabel(scope.row.isUnion) }}
+
-
+
- {{ getMajorCodeName(scope.row.offcialZydm) }}
+ {{ getMajorCodeName(scope.row.stuworkMajorCode) }}
-
+
+
-
- 调整
-
-
- 确认对接
-
-
- 删除
-
-
-
-
-
- {{ scope.row.djName }}
- {{ scope.row.djTime }}
+
+ -
@@ -166,6 +142,38 @@
{{ getSchoolName(scope.row.schoolId) }}
+
+
+
+ 修改
+
+
+ 确认对接
+
+
+ 删除
+
+
+
@@ -188,33 +196,19 @@
diff --git a/src/views/recruit/recruitprestudent/static.vue b/src/views/recruit/recruitprestudent/static.vue
index 13a32bd..e7f8749 100644
--- a/src/views/recruit/recruitprestudent/static.vue
+++ b/src/views/recruit/recruitprestudent/static.vue
@@ -30,7 +30,7 @@
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
-
+
@@ -45,7 +45,7 @@ import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { fetchListStatic } from '/@/api/recruit/recruitprestudent'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
// @ts-ignore
import global from '/@/components/tools/commondict.vue'
@@ -98,7 +98,7 @@ const { getDataList, tableStyle, downBlobFile } = useTable(state)
// 初始化
const init = async () => {
try {
- const data = await list()
+ const data = await getList()
planList.value = data.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
diff --git a/src/views/recruit/recruitschoolcode/detaiform.vue b/src/views/recruit/recruitschoolcode/detaiform.vue
index c555b75..073fff9 100644
--- a/src/views/recruit/recruitschoolcode/detaiform.vue
+++ b/src/views/recruit/recruitschoolcode/detaiform.vue
@@ -2,11 +2,11 @@
-
-
+
-
+
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
-import { addObj, getObj, putObj } from '@/api/recruit/recruitschoolcode'
-import { list } from "@/api/recruit/recruitstudentplangroup"
+import { addObj, getObj, putObj } from '/@/api/recruit/recruitschoolcode'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
// Emits
const emit = defineEmits<{
@@ -75,10 +75,10 @@ const dataRule = {
// 初始化数据
const initData = () => {
- list().then((data: any) => {
+ getList().then((data: any) => {
planList.value = data.data
if (!dataForm.id) {
- dataForm.groupId = planList.value[0]?.id || ""
+ dataForm.groupId = planList.value[0]?.id || null
}
})
}
@@ -117,7 +117,7 @@ const dataFormSubmit = () => {
// 初始化方法
const init = (id: string | null) => {
- dataForm.id = id || ""
+ dataForm.id = id || null
visible.value = true
canSubmit.value = true
initData()
diff --git a/src/views/recruit/recruitschoolcode/index.vue b/src/views/recruit/recruitschoolcode/index.vue
index 3ba7408..3847e6a 100644
--- a/src/views/recruit/recruitschoolcode/index.vue
+++ b/src/views/recruit/recruitschoolcode/index.vue
@@ -19,7 +19,7 @@
-
+
查询
- 重置
+ 重置
新增
-
+
-
+
@@ -163,30 +163,15 @@
-
diff --git a/src/views/recruit/recruitstudentschool/detaiform.vue b/src/views/recruit/recruitstudentschool/detaiform.vue
index b0a6cfe..133d533 100644
--- a/src/views/recruit/recruitstudentschool/detaiform.vue
+++ b/src/views/recruit/recruitstudentschool/detaiform.vue
@@ -4,7 +4,6 @@
:close-on-click-modal="false"
v-model="visible"
width="600px"
- destroy-on-close
>
@@ -20,8 +19,8 @@
-
-
+
+
{
deptList.value = data.data
deptList.value.push({ deptCode: "190", deptName: "招生就业处" })
})
- list().then((data: any) => {
+ getList().then((data: any) => {
planList.value = data.data
- if (!dataForm.id) {
- dataForm.groupId = planList.value[0]?.id || ""
- }
})
// 获取所有省
areaList({ type: "0", parentId: 112 }).then((res: any) => {
@@ -147,21 +143,42 @@ const dataFormSubmit = () => {
// 初始化方法
const init = (id: string | null) => {
- dataForm.id = id || ""
visible.value = true
canSubmit.value = true
- initData()
+ dataForm.id = ""
+
+ // 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields()
- if (dataForm.id) {
- getObj(dataForm.id).then((response: any) => {
+ })
+
+ initData()
+
+ // 获取详情数据
+ if (id) {
+ dataForm.id = id
+ getObj(id).then((response: any) => {
+ if (response && response.data) {
Object.assign(dataForm, response.data)
if (dataForm.area) {
dataForm.area = String(dataForm.area)
}
- })
- }
- })
+ // 确保 deptCode 正确映射(如果 API 返回的是 xy 字段)
+ if (response.data.xy && !response.data.deptCode) {
+ dataForm.deptCode = response.data.xy
+ }
+ }
+ }).catch(() => {
+ // 错误处理
+ })
+ } else {
+ // 新增模式:设置默认招生计划
+ getList().then((data: any) => {
+ if (data.data && data.data.length > 0) {
+ dataForm.groupId = data.data[0]?.id || ""
+ }
+ })
+ }
}
// 暴露方法给父组件
diff --git a/src/views/recruit/recruitstudentschool/index.vue b/src/views/recruit/recruitstudentschool/index.vue
index c62c103..7f1517f 100644
--- a/src/views/recruit/recruitstudentschool/index.vue
+++ b/src/views/recruit/recruitstudentschool/index.vue
@@ -35,7 +35,7 @@
查询
- 重置
+ 重置
@@ -63,9 +63,9 @@
>
-
+
- {{ getDeptName(scope.row.xy) }}
+ {{ getDeptName(scope.row.deptCode) }}
@@ -86,7 +86,7 @@
{
provinceList.value = areaData.data || []
// 获取招生计划列表
- const planData = await list()
+ const planData = await getList()
planList.value = planData.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
diff --git a/src/views/recruit/recruitstudentsignup/DelayPayTimeDialog.vue b/src/views/recruit/recruitstudentsignup/DelayPayTimeDialog.vue
index 515d546..8996974 100644
--- a/src/views/recruit/recruitstudentsignup/DelayPayTimeDialog.vue
+++ b/src/views/recruit/recruitstudentsignup/DelayPayTimeDialog.vue
@@ -2,8 +2,8 @@
{
- list().then((data: any) => {
+ getList().then((data: any) => {
planList.value = data.data
if (planList.value.length > 0) {
dataForm.groupId = planList.value[0].id
diff --git a/src/views/recruit/recruitstudentsignup/areaStaticByOther.vue b/src/views/recruit/recruitstudentsignup/areaStaticByOther.vue
index 6b34ac1..e7e25d6 100644
--- a/src/views/recruit/recruitstudentsignup/areaStaticByOther.vue
+++ b/src/views/recruit/recruitstudentsignup/areaStaticByOther.vue
@@ -42,7 +42,7 @@
-
diff --git a/src/views/recruit/recruitstudentsignup/inSchoolSocreStatic.vue b/src/views/recruit/recruitstudentsignup/inSchoolSocreStatic.vue
index 9d7b6c1..b9ad54b 100644
--- a/src/views/recruit/recruitstudentsignup/inSchoolSocreStatic.vue
+++ b/src/views/recruit/recruitstudentsignup/inSchoolSocreStatic.vue
@@ -48,7 +48,7 @@ import { ref, reactive, onMounted } from 'vue'
import { useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { inSchoolSocreStatic } from '/@/api/recruit/recruitstudentsignup'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { getDeptListByLevelTwo } from '/@/api/basic/basicdept'
// 消息提示 hooks
@@ -75,7 +75,7 @@ const init = async () => {
try {
const [deptResponse, planData] = await Promise.all([
getDeptListByLevelTwo(),
- list()
+ getList()
])
deptCodes.value = deptResponse.data || []
diff --git a/src/views/recruit/recruitstudentsignup/index.vue b/src/views/recruit/recruitstudentsignup/index.vue
index 5045e84..885f174 100644
--- a/src/views/recruit/recruitstudentsignup/index.vue
+++ b/src/views/recruit/recruitstudentsignup/index.vue
@@ -1,10 +1,17 @@
-
-
-
+
+
+
+
+
+
-
+
-
-
+
+
-
- -
-
+
+ -
+
-
- -
-
+
+ -
+
-
+
+
+
-
+
+ :key="item.majorCode"
+ :label="item.majorName+'('+item.learnYear+'年制)'"
+ :value="item.majorCode">
-
+
+ :key="item.majorCode"
+ :label="item.majorName+'('+item.learnYear+'年制)'"
+ :value="item.majorCode">
-
+
-
+
-
+
-
+
@@ -100,10 +124,9 @@
-
+
@@ -115,7 +138,6 @@
v-model="dataForm.auditor"
filterable
remote
- style="width: 90%"
clearable
reserve-keyword
placeholder="请选择经办人"
@@ -127,19 +149,9 @@
:value="item.teacherNo">
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -160,10 +171,9 @@
-
+
@@ -171,8 +181,7 @@
-
+
-
+
-
+
-
+
@@ -218,8 +224,7 @@
-
+
-
+
-
+
+
+
+
+
- 查询
+ 查询
+ 重置
+
+
+
+
+
+
+
+ 新增
- 清空
-
- 招生名单打包导出
- 名单导出
-
-
-
-
-
-
-
-
-
-
- 图片同步
+ @click="handleSendImg()">图片同步
-
+
+
-
-
-
-
+
+ :cell-style="tableStyle.cellStyle"
+ :header-cell-style="tableStyle.headerCellStyle">
退学
+ @click="handleUpdate(scope.row.id,scope.row.groupId,scope.row.feeAgency)">退学
+ type="text" size="small" @click="majorChange(scope.row.id)">
调整专业
支付二维码
- 重新推送
-
+
+
+
+
信息表
- 推送市局
-
+
+
+
@@ -411,10 +425,10 @@
录取专业:
- {{ getMajorLabelWithYears(planMajorList, scope.row.confirmedMajor, { key: 'zydm', value: 'zymc' }) }}
+ {{ getMajorLabelWithYears(planMajorList, scope.row.confirmedMajor, { key: 'majorCode', value: 'majorName' }) }}
- 录取时间:{{ dateFormat(scope.row.auditTime, "yyyy-MM-dd HH:mm:ss") }}
+ 录取时间:{{ dateFormat(scope.row.auditTime) }}
面试结果:{{ getLabelValue(interviewDicList, scope.row.interview) }}
@@ -435,7 +449,7 @@
- {{ getLabelValueByProps(deptList, scope.row.xy, { key: 'deptCode', value: 'deptName' }) }}
+ {{ getLabelValueByProps(deptList, scope.row.deptCode, { key: 'deptCode', value: 'deptName' }) }}
({{scope.row.auditorName}})
@@ -475,71 +489,69 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
+
diff --git a/src/views/recruit/recruitstudentsignup/indexClass.vue b/src/views/recruit/recruitstudentsignup/indexClass.vue
index 72f9a6e..f6490fa 100644
--- a/src/views/recruit/recruitstudentsignup/indexClass.vue
+++ b/src/views/recruit/recruitstudentsignup/indexClass.vue
@@ -1,9 +1,17 @@
-
-
-
+
+
+
+
+
+
-
+
-
-
+
+
-
-
- -
-
+
+
+ -
+
-
+
+
+
+
+
+
+
+
+
-
+
+ :key="item.majorCode"
+ :label="item.majorName+'('+item.learnYear+'年制)'"
+ :value="item.majorCode">
-
+
+ :key="item.majorCode"
+ :label="item.majorName+'('+item.learnYear+'年制)'"
+ :value="item.majorCode">
-
+
-
+
-
+
@@ -75,9 +107,9 @@
-
+
@@ -85,7 +117,7 @@
-
+
-
+
-
+
@@ -115,9 +147,9 @@
-
+
@@ -125,7 +157,7 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
- 查询
+ 查询
+ 重置
+
+
+
+
+
+
+
+ 分班导出
- 清空
+ 一键分班
+ 一键分学号
+
+ 同步学工
+
+
+
-
分班导出
-
一键分班
-
一键分学号
-
同步学工
-
-
-
-
-
-
-
+
+
- {{getGender(scope.row.gender)}}
+
- {{getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'zydm','value':'zymc'})}}
+ {{getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'majorCode','value':'majorName'})}}
- {{getLabelValueByPropes(deptList,scope.row.xy,{'key':'deptCode','value':'deptName'})}}
+ {{getLabelValueByPropes(deptList,scope.row.deptCode,{'key':'deptCode','value':'deptName'})}}
- 否
- 是
+ 是
+ 否
@@ -287,25 +334,28 @@
align="center"
label="操作">
- 查看
- 调整班级
+
+ 查看
+
+
+
+ 调整班级
+
-
-
+
-
+
+
@@ -321,7 +371,10 @@
- 立即查询
+
+
+ 立即查询
+
@@ -414,21 +467,21 @@
-
+
-
diff --git a/src/views/recruit/recruitstudentsignup/update.vue b/src/views/recruit/recruitstudentsignup/update.vue
index 8679736..cadf814 100644
--- a/src/views/recruit/recruitstudentsignup/update.vue
+++ b/src/views/recruit/recruitstudentsignup/update.vue
@@ -193,7 +193,7 @@ import { useUserInfo } from '/@/stores/userInfo'
import { Session } from '/@/utils/storage'
import axios from 'axios'
import { getObj, updateInfo } from '@/api/recruit/recruitstudentsignup'
-import { list } from "@/api/recruit/recruitstudentplangroup"
+import { getList } from "@/api/recruit/recruitstudentplangroup"
import { queryAllTeacher } from "@/api/professional/teacherbase"
// 使用 Pinia store
@@ -529,7 +529,7 @@ const upload6Success = (res: any, file: any) => {
// 初始化数据
const initData = () => {
- list().then((data: any) => {
+ getList().then((data: any) => {
planList.value = data.data
})
// 联系人(教职工)
@@ -563,7 +563,7 @@ const dataFormSubmit = (submitType: string) => {
// 初始化方法
const init = (id: string | null) => {
- dataForm.id = id || ""
+ dataForm.id = id || null
visible.value = true
canSubmit.value = true
initData()
diff --git a/src/views/recruit/recruitstudentsignupturnover/index.vue b/src/views/recruit/recruitstudentsignupturnover/index.vue
index 9e60390..6d0feb9 100644
--- a/src/views/recruit/recruitstudentsignupturnover/index.vue
+++ b/src/views/recruit/recruitstudentsignupturnover/index.vue
@@ -19,7 +19,7 @@
-
+
查询
- 重置
+ 重置
@@ -65,7 +65,7 @@
{{ getTypeLabel(scope.row.type) }}
-
+
@@ -82,10 +82,9 @@
-
+
- {{ getMajor(scope.row.isMajorChange) }}
- {{ getMajor(scope.row.isMajorChange) }}
+
@@ -111,7 +110,7 @@
/>
-
+
@@ -150,9 +149,12 @@ import { ref, reactive, computed, onMounted, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
-import { useMessage, useMessageBox } from '/@/hooks/message'
+import { useMessage } from '/@/hooks/message'
import { fetchList, putObj } from '/@/api/recruit/recruitstudentsignupturnover'
-import { list } from '/@/api/recruit/recruitstudentplangroup'
+import { getList } from '/@/api/recruit/recruitstudentplangroup'
+import type { StateOption } from '/@/components/AuditState/index.vue'
+
+const AuditState = defineAsyncComponent(() => import('/@/components/AuditState/index.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
@@ -169,7 +171,6 @@ const permissions = computed(() => {
// 消息提示 hooks
const message = useMessage()
-const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
@@ -182,8 +183,31 @@ const majorChangeVisible = ref(false)
// 数据
const planList = ref([])
const typeList = ref([{ label: '专业变更', value: '1' }, { label: '退学', value: '2' }])
-const isMajorChangeList = ref([{ label: '通过', value: '3' }, { label: '驳回', value: '2' }])
-const majorChangeList = ref([{ label: '通过', value: '3' }, { label: '驳回', value: '2' }, { label: '待审核', value: '1' }])
+
+// 审核状态选项配置(用于 AuditState 组件和检索条件)
+const auditStateOptions = ref([
+ { value: '1', label: '待审核', type: 'warning', icon: 'fa-regular fa-clock', effect: 'light' },
+ { value: '2', label: '驳回', type: 'danger', icon: 'fa-solid fa-circle-xmark', effect: 'dark' },
+ { value: '3', label: '通过', type: 'success', icon: 'fa-solid fa-circle-check', effect: 'dark' }
+])
+
+// 从 auditStateOptions 派生检索条件列表(只包含 label 和 value)
+const majorChangeList = computed(() => {
+ return auditStateOptions.value.map(item => ({
+ label: item.label,
+ value: item.value
+ }))
+})
+
+// 审核弹窗中的选项(只包含通过和驳回)
+const isMajorChangeList = computed(() => {
+ return auditStateOptions.value
+ .filter(item => item.value === '2' || item.value === '3')
+ .map(item => ({
+ label: item.label,
+ value: item.value
+ }))
+})
// 查询表单
const queryForm = reactive({
@@ -214,17 +238,6 @@ const getTypeLabel = (type: string) => {
return item ? item.label : ''
}
-// 获取审核状态
-const getMajor = (type: string) => {
- if (type == '1') {
- return '待审核'
- } else if (type == '2') {
- return '驳回'
- } else if (type == '3') {
- return '已通过'
- }
- return ''
-}
// 表格状态
const state: BasicTableProps = reactive({
@@ -247,14 +260,14 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTa
// 初始化
const init = async () => {
try {
- const data = await list()
+ const data = await getList()
planList.value = data.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
getDataList()
} catch (error) {
- console.error('初始化失败', error)
+ message.error('初始化失败')
}
}
@@ -290,9 +303,9 @@ const update = async () => {
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
- Object.keys(queryForm).forEach(key => {
- queryForm[key] = ''
- })
+ queryForm.groupId = ''
+ queryForm.search = ''
+ queryForm.isMajorChange = ''
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
diff --git a/src/views/recruit/recruitstudentsignupturnovermoneychange/form.vue b/src/views/recruit/recruitstudentsignupturnovermoneychange/form.vue
new file mode 100644
index 0000000..488bcef
--- /dev/null
+++ b/src/views/recruit/recruitstudentsignupturnovermoneychange/form.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/recruit/recruitstudentsignupturnovermoneychange/index.vue b/src/views/recruit/recruitstudentsignupturnovermoneychange/index.vue
index c36f238..3617453 100644
--- a/src/views/recruit/recruitstudentsignupturnovermoneychange/index.vue
+++ b/src/views/recruit/recruitstudentsignupturnovermoneychange/index.vue
@@ -19,15 +19,24 @@
-
+
+
+
+
+
+ 新 增
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+